複合タイプをメッセージ・モデルに定義する場合、その内容が混合するように任意で指定することができます。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>