このトピックでは、XML パーサーが明示的ヌルを処理する方法について説明します。
XML ドメインは、メッセージ・ビット・ストリーム内にヌル値の概念を持っていません。 XML パーサーによってメッセージ・ツリー内で明示的なヌル値の作成をもたらすバイトのシーケンスが、XML メッセージ内にはありません。パーサーは、明示的なヌル値を持つメッセージ・ツリー・フィールドを作成しませんが、 この形式のフィールドを作成するメッセージ・フロー内の ESQL をコーディングすることができます。
XML パーサーがメッセージ・ツリーから新規メッセージ・ビット・ストリームを構成する場合、 明示的なヌル値が生じる可能性があり、それらのヌル値を処理できなければなりません。 この状態では、明示的なヌル値は「書き込む文字ではない」と見なされ、フィールドは空のタグとして作成されます。
XML ドメインでは、出力 XML メッセージ内での空の XML タグの作成に結びつくいくつかの値があります。
これらが XML メッセージ内に空のタグとして書き込まれると、 XML メッセージが後で構文解析される場合、 これらの 3 つのメッセージ・ツリー・フィールドを区別できません。 空のタグが XML 内で構文解析されると、 値を持たない XML メッセージ・ツリー・フィールドが作成されます。これは、明示的なヌル値を含むメッセージ・ツリー・フィールドとは異なっており、 ゼロ長ストリングを含みます。
XML パーサーは、メッセージ・ビット・ストリーム内でこれらの 3 つの異なるメッセージ・ツリー・フィールド値を同じ結果に解決しますが、 他のメッセージ・ツリー操作は、これらのメッセージ・ツリー・フィールドを区別することができます。 XML パーサーは、明示的なヌルおよびゼロ長ストリングを含むフィールドを作成しませんが、 その処理を行える操作をメッセージ・フロー内で実行することができます。
したがって、メッセージ・フローが XML ドメイン内のメッセージを処理する場合、 ESQL は、明示的なヌル値、ゼロ長ストリング、および値を持っていないメッセージ・ツリー・フィールドを区別しなければなりません。 ESQL をコーディングしてエレメントの値を照会する場合、明示的なヌル値を含むフィールドであっても、 ヌルと見なされません。
XML 書き込みプロセスは、この条件を処理することができますが、 ESQL 内の他の操作は、この条件をヌル値として処理しません。XML ドメインはヌルの概念を持っておらず、 パーサーは、明示的なヌル値を含むフィールドを作成しません。 XML ドメインは文字ベースのドメインなので、 フィールドの値が照会されるとき、結果を文字フィールドとして戻します。 明示的なヌル値を持つ XML メッセージ・ツリー・フィールドを作成する場合、 これは、メッセージ・ツリー・フィールドの値を入手するそれらの ESQL ルーチンで、ヌル値と見なされません。
戻される値は、フィールドの内容の文字表現です。 この場合は、文字ストリング 'NULL' です。 たとえば、 IS NULL を使用してそのような比較を実行する場合、 これは、TRUE 値に評価されません。 このメッセージ・ツリー・フィールドを別のメッセージ・ツリーにコピーする場合、 ターゲット・メッセージ・ツリー・フィールドには、 文字ストリング 'NULL' が取り込まれます。
関連概念
ESQL
論理メッセージ・ツリー
相関名
注意 |
商標 |
ダウンロード |
ライブラリー |
技術サポート |
フィードバック
![]() ![]() |
ac00605_ |