XML 有线格式支持在消息内处理空值。XML 的编码空属性只在消息集上设置并应用于消息集中所有已定义的对象。
您可以使用以下两个属性来表示 XML 内数值空和非数值空的编码:
这些分别表示数值和非数值编码空。
- 数值数据类型为:
- 十进制模式类型:decimal、integer、negativeInteger、nonNegativeInteger、nonPositiveInteger、positiveInteger
- 浮点模式类型:double、float
- 整数模式类型:byte、int、long、short、unsignedByte、unsignedInt、unsignedLong、unsignedShort
- 非数值数据类型是:
- 二进制模式类型:base64Binary、hexBinary
- 布尔模式类型:Boolean
- DateTime 模式类型:date、dateTime、gDay、gMonth、gMonthDay、gYear、gYearMonth、time
- 字符串模式类型:anyURI、duration、ENTITIES、ENTITY、ID、IDREF、IDREFS、language、Name、NCName、NMTOKEN、NMTOKENS、normalizedString、NOTATION、QName、string、token
每个编码具有以下枚举值:
- NULLEmpty(缺省)
- NULLValue
- NULLXMLSchema
- NULLValueAttribute
- NULLAttribute(不推荐)
- NULLElement(不推荐)
您不必为 NULLEmpty、NULLXMLSchema 和 NULLValueAttribute提供附加的说明,但是如果您选择 NULLValue、NULLAttribute 或 NULLElement,您必须定义指派进一步的值,以表示编码数值空值和编码非数值空值消息集属性中的空条件。
下表显示了每个编码是怎样工作的。对于每个编码,示例 XML 将会导致给予元素 myElem 空值:
注: - 使用布尔 True 值。
- 这仅对于 XMLElementAttrVal 元素呈现有效,如XML 呈现选项 中指定的那样。用这种方法呈现元素并设置为空等于除去详细描述元素值的元素的属性。
- 这仅对于 XMLElementAttrIdVal 元素呈现有效,如XML 呈现选项 中指定的那样。用这种方法呈现元素并设置为空等于除去详细描述元素值的元素的属性,但是不除去属性标识。
编码数值空
编码非数值空
|
编码数值空值
编码非数值空值
|
示例 XML |
NULLEmpty |
|
<myElem/>
<myElem></myElem>
|
NULLValue |
zzz |
<myElem>zzz</myElem> |
NULLXMLSchema |
|
<myElem xsi:nil='true'/>1 |
NULLValueAttribute |
|
<myElem></myElem>2
<parent id="myElem"></parent>3
|
NULLElement |
空 4 |
<myElem><null/></myElem> |
NULLAttribute |
空 4 |
<myElem null='true'/>1 |
注: - 属性必须为 true,所以值必须为 “true”、“1” 或 布尔 True 值 属性。
- 这仅对于 XMLElementAttrVal 元素呈现有效,如XML 呈现选项 中指定的那样。用这种方法呈现元素并设置为空等于除去提供元素值的元素的属性。
- 这仅对于 XMLElementAttrIdVal 元素呈现有效,如XML 呈现选项 中指定的那样。用这种方法呈现元素并设置为空等于除去提供元素值的元素的属性,但是不除去提供元素名称的属性。
- NULLElement 和 NULLAttribute 都不推荐。所提供的元素名或属性名不应该包含名称空间 URI 或前缀。
如果已为消息集启用了名称空间那么名称匹配任何名称空间。
您不必为 NULLEmpty 和 NULLValAttr 提供附加的说明,但是如果您选择 NULLValue、NULLAttribute 或 NULLElement,您必须定义指派进一步的值,以表示 编码数值空和编码非数值空消息集属性中的空条件(请参阅上表)。