MRM ドメインのメッセージの混合内容へのアクセス

複合タイプをメッセージ・モデルに定義する場合、その内容が混合するように任意で指定することができます。 XML スキーマで混合内容をサポートするこの設定によって、メッセージ内でエレメント間に含まれているデータを操作できます。

次の例をご覧ください。

<MRM>
  <Mess1>
    abc
    <Elem1>def</Elem1>
    ghi
    <Elem2>jkl</Elem2>
    mno
    <Elem3>pqr</Elem3>
  </Mess1>
</MRM>

ストリング abc、ghi、および mno は、特定のエレメントの値を表しません (たとえば、エレメント Elem1 の値である def とは異なります)。 こうしたストリングがあることは、混合内容で Mess1 をモデル化する必要があることを示しています。この XML メッセージを、以下のオブジェクトを使用して MRM でモデル化することができます。

メッセージ
メッセージ Name プロパティーは、XML タグに合うように Mess1 に設定されます。

Type プロパティーは tMess1 に設定されます。

タイプ
複合タイプ Name プロパティーは tMess1 に設定されます。

Composition プロパティーは OrderedSet に設定されます。

複合タイプには、混在内容が存在します。

複合タイプには次のオブジェクトが含まれます。

エレメント
Name プロパティーは、XML タグに合うように Elem1 に設定されます。

Type プロパティーは、単純タイプ xsd:string に設定されます。

エレメント
Name プロパティーは、XML タグに合うように Elem2 に設定されます。

Type プロパティーは、単純タイプ xsd:string に設定されます。

エレメント
Name プロパティーは、XML タグに合うように Elem3 に設定されます。

Type プロパティーは、単純タイプ xsd:string に設定されます。

次の ESQL をコーディングする場合、

SET OutputRoot.MRM.*[1] = InputBody.Elem3;
SET OutputRoot.MRM.Elem1 = InputBody.*[5];
SET OutputRoot.MRM.*[3] = InputBody.Elem2;
SET OutputRoot.MRM.Elem2 = InputBody.*[3];
SET OutputRoot.MRM.*[5] = InputBody.Elem1;
SET OutputRoot.MRM.Elem3 = InputBody*[1];

混合内容は次の出力メッセージに正常にマップされます。

<MRM>
  <Mess1>
    pqr
    <Elem1>mno</Elem1>
    jkl
    <Elem2>ghi</Elem2>
    def
    <Elem3>abc</Elem3>
  </Mess1>
</MRM>

関連概念
メッセージ・フロー
ESQL
メッセージのモデル化

関連タスク
メッセージ・フローの設計
メッセージ・フローの内容の定義
ESQL ファイルの管理
メッセージ・モデルの開発

関連資料
Compute ノード
Database ノード
Filter ノード
ESQL
IF ステートメント
SET ステートメント