以下の 2 つのプロパティーを使用して、XML ワイヤー・フォーマット内の NULL の数値エンコードと非数値エンコードを表すことができます。
- 数値のヌルのエンコード方式
- 非数値のヌルのエンコード方式
これらのプロパティーは、ヌルの数値エンコードと非数値エンコードをそれぞれ表します。
- 数値データ・タイプは以下のとおりです。
- 10 進スキーマ・タイプ: decimal、integer、negativeInteger、nonNegativeInteger、nonPositiveInteger、positiveInteger、unsignedLong
- 浮動小数点スキーマ・タイプ: double、float
- 整数スキーマ・タイプ: byte、int、long、short、unsignedByte、unsignedInt、unsignedShort
- 非数値データ・タイプは以下のとおりです。
- バイナリー・スキーマ・タイプ: base64Binary、hexBinary
- ブール・スキーマ・タイプ: Boolean
- 日時スキーマ・タイプ: date、dateTime、gDay、gMonth、gMonthDay、gYear、gYearMonth、time
- ストリング・スキーマ・タイプ: anyURI、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 を選択する場合には、「数値のヌル値のエンコード方式」および「非数値のヌル値のエンコード方式」メッセージ・セット・プロパティー内に、追加の値を定義し、NULL 条件を表すよう割り当てなければなりません。
以下の表は、それぞれのエンコードの働きを示しています。
エンコードごとに、XML の例で、エレメント myElem に値 NULL が与えられます。
数値のヌルのエンコード方式
非数値のヌルのエンコード方式
|
ヌル数値の値のエンコード
ヌル非数値の値のエンコード
|
XML の例 |
NULLEmpty |
|
<myElem/>
<myElem></myElem>
|
NULLValue |
zzz |
<myElem>zzz</myElem> |
NULLXMLSchema |
|
<myElem xsi:nil='true'/>1 5 |
NULLValueAttribute |
|
<myElem></myElem>2
<parent id="myElem"></parent>3
|
NULLElement |
null4 |
<myElem><null/></myElem> |
NULLAttribute |
null4 |
<myElem null='true'/>1 |
注: - 属性は true に評価される必要があります。そのため、値は true、1、または「ブールの True 値」プロパティーでなければなりません。
- この値は、XML レンダリング・オプションで指定されている XMLElementAttrVal エレメントのレンダリングの場合だけ有効です。
エレメントをこのようにレンダー対象とマーキングしてヌルに設定することは、エレメントの値を提供するエレメント属性を除去することと同じです。
- この値は、XML レンダリング・オプションで指定されている XMLElementAttrIdVal エレメントのレンダリングの場合だけ有効です。
エレメントをこのようにレンダー対象とマーキングしてヌルに設定することは、エレメントの値を提供するエレメント属性を除去する (ただし、エレメント名を提供する属性は除去しない) ことと同じです。
- NULLElement と NULLAttribute はどちらも推奨されません。
提供されるエレメントまたは属性名には、ネーム・スペース URI または接頭部を含めてはなりません。メッセージ・セットのネーム・スペースを使用可能にしている場合、名前は任意のネーム・スペースに一致します。
xsi:nil は MRM-XML の複合エレメントではサポートされていません。