エレメントの論理的な「ヌル可能」プロパティーが設定されていれば、TDS はメッセージ内の Null 値の処理をサポートします。
メッセージ・セット・プロパティー「ブールの Null 表現」を使用して、ブールの Null 表現で使用する値を指定できます。 オブジェクト・プロパティー「ヌルのエンコード方式」およびヌルのエンコード値 を使用して、個別のオブジェクトに関しての Null 処理を表現する方法を制御できます。
「ヌルのエンコード方式」プロパティーは、列挙された値 NULLPadFill、NULLLogicalValue、NULLLiteralValue、および NULLLiteralFill から選択できます。
リテラル値のほうが短い場合、出力時に「ヌルのエンコード値」に埋め込みが行われます (「埋め込み文字」を使って)。 入力時に NULLLiteralValue の長さが「長さ」フィールドに一致しない場合、 埋め込まれるヌルが正しく解析されるようにメッセージ・セット・レベルの「固定長ストリングのトリム」プロパティーを設定しなければなりません。
「ヌルのエンコード値」プロパティーの使用は、上で説明した「ヌルのエンコード方式」プロパティーに選択した値に依存します。 ヌル値はバイナリー・タイプには定義されていません。 そのため、プロパティー「ヌルのエンコード方式」および「ヌルのエンコード値」は、バイナリー・タイプには設定されません。
This is Line 1<CR><LF>
<CR><LF>
This is Line 3<CR><LF>
This is Line 4
親の複合タイプの TDS プロパティー「不在エレメント区切り文字の抑制」が「しない」に設定されている場合は、この種のメッセージは正常に構文解析されますが、メッセージ・ツリーにブランク行は表示されません。 MRM
- line1 = 'This is Line 1'
- line3 = 'This is Line 3'
- line4 = 'This is Line 4'
MRM
- line1 = 'This is Line 1'
- line2 = NULL
- line3 = 'This is Line 3'
- line4 = 'This is Line 4'
上の例は、各行が単純タイプのストリングのエレメントとしてモデル化されていることを想定しています。 各行が複合タイプのエレメントとしてモデル化されており、各行が複数の反復される単語エレメントで構成されている場合は、複合タイプのエレメントはヌル値を使用できないので、代わりに単語エレメント上で 3 つのヌル処理プロパティーを設定してください。
MRM
- line1
- word = 'This'
- word = 'is'
- word = 'Line'
- word = '1'
- line2
- word = NULL
- line3
- word = 'This'
- word = 'is'
- word = 'Line'
- word = '3'
- line4
- word = 'This'
- word = 'is'
- word = 'Line'
- word = '4'