WebSphere Message Broker バージョン 8.0.0.5 オペレーティング・システム: AIX、HP-Itanium、Linux、Solaris、Windows、z/OS

製品の最新バージョンについては、IBM Integration Bus バージョン 9.0 をご覧ください。

リストと反復エレメントの間のマッピング

このタスクは、リストと反復エレメントの間のマッピング方法を示します。

次のような形式の XML 入力メッセージがあるとします。
   <MRM>
     <inner>abcde fghij 12345</inner>
   </MRM> 
ここで、inner エレメントのタイプは xsd:list であるため、1 つではなく 3 つのストリング値が関連付けられています。
次に示すように、各値が反復エレメントの 1 つのインスタンスに関連付けられる形式で 3 つの値を出力メッセージにコピーする場合、
   <MRM>
     <str1>abcde</str1>
     <str1>fghij</str1>
     <str1>12345</str1>
   </MRM> 
以下のような ESQL 構文は適切に作動すると期待するかもしれません。
   DECLARE D INTEGER;
   SET D = CARDINALITY(InputBody.str1.*[]);
   DECLARE M INTEGER 1;
   WHILE M <= D DO
      SET OutputRoot.MRM.str1[M] = InputBody.inner.*[M];
      SET M = M + 1;
   END WHILE;
しかし、次のステートメントの場合、
	SET OutputRoot.MRM.str1[M] = InputBody.inner.*[M];
入力から出力へのツリー・コピーが要求されます。 出力エレメントがまだ存在しないため、ステートメントはそれを作成し、その値とタイプは入力から設定されます。
したがって、タイプが xsd:list である入力エレメントが与えられている場合に、必要なフォーマットを持つ出力メッセージを作成するには、FIELDVALUE 関数を使用して、入力エレメントの値だけを明示的に取り出してください。
	SET OutputRoot.MRM.str1[M] = FIELDVALUE(InputBody.inner.*[M]);
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2014Copyright IBM Corporation 1999, 2014.

        
        最終更新:
        
        最終更新: 2015-02-28 17:47:32


タスク・トピックタスク・トピック | バージョン 8.0.0.5 | ak20820_