エレメントの省略および切り捨て

エレメントの省略および切り捨ては、 プロパティー「不在エレメント区切り文字の抑制」の設定値に依存します。 このことについては、複合タイプの TDS プロパティーグローバル・グループの TDS プロパティー、 またはローカル・グループの TDS プロパティーで説明されています。

一部のエレメントがオプションであるメッセージを作成した場合、入力メッセージに収容されないエレメントが存在する可能性があります。 タイプの「データ・エレメント分離」プロパティーを「全エレメントを区切る」 または「可変長エレメントを区切る」 に設定して (この場合、 エレメントはそれぞれ区切り文字によって分離されて、タグは付いていない) 定義した複合タイプ内にエレメントがある場合に、 複合タイプの末尾から欠落しているエレメントがあれば、 メッセージを作成するアプリケーションが次の 2 つの方法のいずれかでそのエレメントを示さなければなりません。どちらの方法でも、不必要に長い区切り文字シーケンスを回避するためと、欠落したエレメントの一貫性のある表記を保つための技法が用いられます。

  1. 複合タイプの「区切り文字」プロパティーに設定した値が、 その複合タイプの親タイプの「区切り文字」プロパティーに設定した値と一致しない場合、 複合タイプ・データの最後の実際のエレメントの後にその 親の 1 つの区切り文字 が出現することによって、 それがメッセージの最後のエレメントであることが示されます。

    これは切り捨て方式と呼ばれますが、そこでは欠落エレメントはないものとして扱われ、データと区切り文字は両方ともビット・ストリームから除外されます。

    例えば、4 つのエレメントを持つ複合エレメント C を定義したと想定します。 「区切り文字」プロパティーはプラス記号 (+) に設定しました。 複合エレメント P を定義して、 P の「区切り文字」プロパティーをアスタリスク (*) に設定しました。 最初はストリング、2 番目は複合エレメント C、そして 3 番目はストリングと、 3 つのエレメントを P に追加します。

    メッセージの特定のインスタンスがブローカーによって受け取られたとき、 P のエレメントはすべて存在していますが、 C のエレメントは最初の 2 つだけが存在しています。 切り捨てメソッドが使用された場合、メッセージのデータは以下のように なります (PnP のエレメントの値、CnC のエレメントの値です)。

    P1*C1+C2*P3

    パーサーが 2 番目のアスタリスク区切り文字を検出したとき、 複合エレメント C の最後の 2 つのエレメントが存在しないこと、 および次のエレメントは P の 3 番目のエレメントであることが判別されます。

    切り捨てられるエレメントが固定長でなければ、除外と切り捨てのどららでもパーサーが同一の動作を示す場合にのみ、正常に切り捨てを使用することができます。

  2. 複合タイプの区切り文字 がそのいずれかの親のものと一致する場合、 切り捨てメソッドは使用できません。 これは、最後のエレメントの後に出現した区切り文字が現行の複合タイプのものかその親のものかを、 パーサーが判別できないためです。 そのため、メッセージ・データ内に欠落しているエレメントごとの区切り文字を含めて、 パーサーがエレメントをモデルと突き合わせられるようにしなければなりません。

    これは除外メソッドと呼ばれ、欠落した単純エレメントは、2 つの区切り文字にはさまれた空の文字シーケンスで表されます。

    例えば、P および C を前述の例のように定義して、 P の「区切り文字」プロパティーをプラス記号 (+) に設定したと想定します。 同じメッセージをブローカーが受け取ったとき (P のすべてのエレメントが存在し、 C の最初の 2 つのエレメントが存在する)、メッセージ内のデータは以下のようになります。

    P1+C1+C2++P3

    複合エレメント C の欠落しているエレメントに対する 2 つの区切り文字が、メッセージ・データ内に挿入されました。 もしも切り捨てメソッドが使用されたとすると、パーサーはデータ値 P3 を複合エレメント P の 3 番目の エレメントとしてではなく、複合エレメント C の 3 番目のエレメントとして解釈することになります。

関連概念
メッセージのモデル化
メッセージ・モデル
TDS 形式: 論理モデルとの関係
関連タスク
メッセージ・モデルの開発
メッセージ定義ファイルの処理
メッセージ・モデル・オブジェクトの処理
関連資料
メッセージ・モデルの参照情報
メッセージ・モデル・オブジェクトのプロパティー
追加の MRM ドメイン情報
追加の TDS 情報
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
ad09490_