リスト・タイプのエレメントの処理

XML スキーマ仕様では、それぞれの値を空白文字で区切るという簡単な種類に基づく、複数の値から成るリストを、エレメントまたは属性に含めることができます。メッセージ・ツリーでは、xsd:list エレメントは、リスト項目ごとに無名の下位ノードを持つ名前ノードとして表されます。反復リストは情報を失わずに処理できます。

次のような XML 入力メッセージがあるとします。
 <message1>
   <listE1>one two three</listE1>
 </message1>
この XML エレメントは、以下のようなメッセージ・ツリーを生成します。
 MRM
	   	listEl  (名前)
			       "one"   (値)
			       "two"   (値)
			       "three" (値)

個々のリスト項目には、ElementName.*[n] としてアクセスすることができます。

例えば、以下の ESQL を使用して、listE1 の 3 番目の項目にアクセスします。
 SET X = FIELDVALUE (InputBody.message1.listE1.*[3]);

属性のタイプを xsd:list にすることもできます。

次のような XML 入力メッセージがあるとします。
 <message1>
	<Element listAttr="one two three"/>
 </message1> 
この XML エレメントは、以下のようなメッセージ・ツリーを生成します。
 MRM
	Element	(名前)
		       	listAttr (名前)
			       "one"   (値)
			       "two"   (値)
			       "three" (値)

前の場合と同様に、個々のリスト項目には、AttrName.*[n] としてアクセスすることができます。

例えば、以下の ESQL を使用して、listAttr の 3 番目の項目にアクセスします。
 SET X = FIELDVALUE (InputBody.message1.Element.listAttr.*[3]);

1 つのリスト・エレメントは何度でも使用できます。

次の XML メッセージをご覧ください。
 <message1>
	<listE1>one two three/listE1>
	<listE1>four five six/listE1>
 </message1> 
この XML メッセージのメッセージ・ツリーは次のようになります。
 MRM
	listE1	(名前)
			       "one"   (値)
			       "two"   (値)
			       "three" (値)
	listE1	(名前)
		        "four" (値)
		        "five" (値)
		        "six"  (値)
2 番目に現れるリストの最初の項目にアクセスするには、以下の ESQL をコーディングします。
 SET X = FIELDVALUE (InputBody.message1.listE1[2].*[1]);
関連タスク
ESQL の開発
メッセージ本体のエレメントへのアクセス
リストと反復エレメントの間のマッピング
関連資料
SET ステートメント
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック

Copyright IBM Corporation 1999, 2009Copyright IBM Corporation 1999, 2009.
最終更新 : 2009-02-20 12:44:02

ak05141_