手順
-
tXMLMapコンポーネントをダブルクリックして、[Map Editor] (マップエディター)を開きます。
入力エリアにはデフォルトの基本的なXMLストラクチャーが既に入力されており、一番上のテーブルがメインの入力テーブルになっています。
-
row1
入力テーブルでdocノードを右クリックし、コンテキストメニューから[Import From File] (ファイルからインポート)を選択します。ポップアップダイアログボックスでXMLソースファイルを参照して、tXMLMapが受信するデータが使うXMLストラクチャーをインポートします。このシナリオでは、XMLソースファイルはProductsIn.xmlで、tFileInputXMLへの入力データが含まれています。 -
インポートしたXMLツリーで
manufacturer
ノードを右クリックし、コンテキストメニューから[As loop element] (ループエレメントとして)を選択して、ループエレメントとして設定します。同じ手順で、types
ノードとsale
ノードをそれぞれループエレメントとして設定します。 -
マップエディターの下側にある[Schema editor] (スキーマエディター)タブをクリックして、対応するビューを開きます。次に、このビューの右側で[Document] (ドキュメント)タイプの1カラムのoutDocをスキーマテーブルに追加します。対応するXMLルートは、出力フローを表す右上の出力テーブルに自動的に追加されます。
-
outDoc出力テーブルで、予期される出力データを含み、予期されるXMLストラクチャーを提供するXMLファイルから、使用するXMLデータストラクチャーをインポートします。このシナリオでは、このファイルはProductsOut.xmlです。
出力テーブルの
sale
ノードを右クリックし、コンテキストメニューから[As loop element] (ループエレメントとして)を選択します。同じ手順で、manufacturer
ノードとtypes
ノードをそれぞれループエレメントとして設定します。 -
row1
入力テーブルで@category
ノードをクリックし、outDoc出力テーブル内にある@category
ノードの[Expression] (式)フィールドにドロップします。同じ手順で、他のノードを入力テーブルから出力テーブルにマップします:
-
@name
ノードを@name
ノードに -
summary
ノードの下にある@unit
ノードを@unit
ノードに -
@id
ノードを@id
ノードとmanufacturer_id
ノードに -
@date
ノードを@date
ノードに -
name
ノードをmanufacturer
の下にある@name
ノードに -
type
ノードをtype
ノードに -
@type
ノードを@sales_type
ノードに -
income
ノードをsale (loop)
ノードに
-
- outDoc出力テーブルの上部にあるレンチアイコンをクリックし、[All in one] (オールインワン)プロパティの値をtrueに設定して、単一のXMLフローを生成します。[All in one] (オールインワン)機能については、 Talend Studioユーザーガイドをご覧ください。
-
manufacturer
ループエレメントの横にある[...]ボタンをクリックし、[Configure source loops] (ソースループの設定)ポップアップダイアログボックスで[+]ボタンをクリックして、1つのソースループmanufacturer
を追加します。同じ手順で、sale
ループエレメントに1つのソースループsale
を追加します。 -
types
ループエレメントの横にある[...]ボタンをクリックし、[Configure source loops] (ソースループの設定)ポップアップダイアログボックスで2つのソースループ、types
とmanufacturer
を追加します。types
ソースループのシーケンス番号が0
であることを確認して、出力フローの相対部分がtype
エレメントの値に基づいてソートされるようにします。ループエレメントが入力フローの複数のループエレメントからマッピングを受け取る場合、入力ループのシーケンスを設定できます。たとえば、このシナリオの出力フローの
types
ループエレメントは、manufacturer
ループエレメントに属する@id
ノード、および入力フローのtypes
ループエレメントに属するtype
ノードにマッピングされます。出力フローは、主要なtypes
ループに従ってソートされます。 - [OK]をクリックしてマッピングを確定し、[Map Editor] (マップエディター)を閉じます。