空のエレメントおよびヌル値は 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 のエレメント値 | 空ストリング、ヌル、またはフォルダー | <element xsi:nil="true"/> ただし、XMLNSC パーサーからは、メッセージ・ツリーに既に含まれている xsi:nil 属性だけが生成されます。それは、ヌル値を持ち、「nil 可能」であるすべてのメッセージ・ツリー・エレメントに対して xsi:nil 属性を自動的に生成することはありません。 |
- <element/>
- <element></element>
XMLNSC パーサーはどちらの形式も同じように扱います。 エレメントはメッセージ・ツリーに "" の値 (空ストリング) とともに追加されます。
メッセージ・ツリーが XMLNSC パーサーにより生成される場合、入力 XML メッセージの中の "" (空ストリング) の値を持つエレメントには必ず最初の形式を使用します。
フローに対して妥当性検査が有効化されている場合、XMLNSC パーサーは、次の妥当性検査を実行します。
文書内のエレメントに値が「true」の xsi:nil 属性がある場合、このエレメントでは、値または子エレメントは使用不可です。
入力文書内のエレメントでは、xsi:nil 属性は使用不可です。
入力文書内のエレメントに xsi:nil 属性がある場合、XMLNSC パーサーは、値が「true」または「false」に設定された xsi:nil 子属性を含む、値がないエレメントを、メッセージ・ツリーに作成します。
XMLNSC パーサーによりメッセージ・ツリーがビット・ストリームに書き込まれるとき、エレメントの値が空、ヌル、または値なしで、かつエレメントに子エレメントがない場合、そのエレメントは <element/> として書き込まれます。エレメントに xsi:nil 属性がある場合、他の属性とまったく同じように書き込まれます。
ただし、XMLNSC パーサーからは、メッセージ・ツリーに既に含まれている xsi:nil 属性だけが生成されます。それは、ヌル値を持ち、「nil 可能」であるすべてのメッセージ・ツリー・エレメントに対して xsi:nil 属性を自動的に生成することはありません。