複合タイプをメッセージ・モデルに定義する場合、その内容が混合するように任意で指定することができます。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 でモデル化することができます。
「タイプ」プロパティーは tMess1 に設定されます。
「構成」プロパティーは OrderedSet に設定されます。
複合タイプには、混在内容が存在します。
複合タイプには次のオブジェクトが含まれます。
「タイプ」プロパティーは、単純タイプ xsd:string に設定されます。
「タイプ」プロパティーは、単純タイプ xsd:string に設定されます。
「タイプ」プロパティーは、単純タイプ 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>