空のエレメントおよびヌル値は XML 文書内にはよくあります。
堅固なメッセージ・フローは、空のエレメントとヌル値を認識し、それを処理できなければなりません。 同様に、メッセージ・ツリー内のエレメントには、ヌル値がある、空の値がある、または値がまったくないということがあります。 このトピックでは、XMLNSC ドメインによるこれらの値の構文解析および書き込みを説明します。 グラフィカル・データ・マップおよび ESQL でのヌル値の処理の詳細については、ヌル値の処理を参照してください。
説明 | XMLNSC により構文解析される XML 入力 | メッセージ・ツリー内の「エレメント」の値 |
---|---|---|
空のエレメント値 | <element/> | 空ストリング |
空のエレメント値 | <element></element> | 空ストリング |
子エレメントがあるフォルダー | <element><childElement/></element> | 値なし |
nil のエレメント値 | <element xsi:nil="true"/> | 値なし、および値「true」を持つ子 xsi:nil 属性。 |
空のエレメントのどちらの形式も、メッセージ・ツリー内では同じ値の結果になることに注意してください。
説明 | メッセージ・ツリー内の「エレメント」の値 | XMLNSC パーサーからの XML 出力 |
---|---|---|
空のエレメント値 | 空ストリング | <element/> |
ヌルのエレメント値 | NULL | <element/> |
子エレメントがあるフォルダー | 値なし | <element><childElement/></element> |
nil のエレメント値 | 空ストリング、NULL、またはフォルダー | <element xsi:nil="true"/> ただし、XMLNSC パーサーからは、メッセージ・ツリーに既に含まれている xsi:nil 属性だけが生成されます。 それは、ヌル値を持ち、「ヌル可能」であるすべてのメッセージ・ツリー・エレメントに対して xsi:nil 属性を自動的に生成することはありません。 |
- <element/>
- <element></element>
XMLNSC パーサーはどちらの形式も同じように扱います。 エレメントはメッセージ・ツリーに "" の値 (空ストリング) とともに追加されます。
メッセージ・ツリーが XMLNSC パーサーにより生成される場合は、"" (空ストリング) の値を持つエレメントには必ず最初の形式を使用します。
フローの妥当性検査が有効になっている場合、XMLNSC パーサーは以下の妥当性検査を実行します。
ドキュメントのエレメントに、値「true」が設定された xsi:nil 属性がある場合、そのエレメントに値や子エレメントが含まれてはなりません。
入力ドキュメントのエレメントに xsi:nil 属性が含まれてはなりません。
入力ドキュメントのエレメントに xsi:nil 属性がある場合、値「true」または「false」が適宜設定された子 xsi:nil 属性を持つ、値のないエレメントが XMLNSC パーサーによってメッセージ・ツリー内に作成されます。
XMLNSC パーサーによってメッセージ・ツリーがビット・ストリームに書き込まれるとき、エレメントの値が空、ヌル、または値なしである場合、そのエレメントに子エレメントがなければ、エレメントは <element/> と書き込まれます。 エレメントに xsi:nil 属性がある場合は、他の属性と正確に同じように書き込まれます。
ただし、XMLNSC パーサーからは、メッセージ・ツリーに既に含まれている xsi:nil 属性だけが生成されます。 それは、ヌル値を持ち、「ヌル可能」であるすべてのメッセージ・ツリー・エレメントに対して xsi:nil 属性を自動的に生成することはありません。