メイン コンテンツをスキップする 補完的コンテンツへスキップ

複数のループを持つtXMLMapを設定

手順

  1. tXMLMapコンポーネントをダブルクリックして、[Map Editor] (マップエディター)を開きます。
    入力エリアにはデフォルトの基本的なXMLストラクチャーが既に入力されており、一番上のテーブルがメインの入力テーブルになっています。
  2. row1入力テーブルでdocノードを右クリックし、コンテキストメニューから[Import From File] (ファイルからインポート)を選択します。ポップアップダイアログボックスでXMLソースファイルを参照して、tXMLMapが受信するデータが使うXMLストラクチャーをインポートします。このシナリオでは、XMLソースファイルはProductsIn.xmlで、tFileInputXMLへの入力データが含まれています。
  3. インポートしたXMLツリーでmanufacturerノードを右クリックし、コンテキストメニューから[As loop element] (ループエレメントとして)を選択して、ループエレメントとして設定します。同じ手順で、typesノードとsaleノードをそれぞれループエレメントとして設定します。
  4. マップエディターの下側にある[Schema editor] (スキーマエディター)タブをクリックして、対応するビューを開きます。次に、このビューの右側で[Document] (ドキュメント)タイプの1カラムのoutDocをスキーマテーブルに追加します。対応するXMLルートは、出力フローを表す右上の出力テーブルに自動的に追加されます。
  5. outDoc出力テーブルで、予期される出力データを含み、予期されるXML構造を提供するXMLファイルから、使用するXMLデータ構造をインポートします。
    出力テーブルのsaleノードを右クリックし、コンテキストメニューから[As loop element] (ループエレメントとして)を選択します。同じ手順で、manufacturerノードとtypesノードをそれぞれループエレメントとして設定します。
  6. row1入力テーブルで@categoryノードをクリックし、outDoc出力テーブル内にある@categoryノードの[Expression] (式)フィールドにドロップします。

    同じ手順で、他のノードを入力テーブルから出力テーブルにマップします:

    • @nameノードを@nameノードに

    • summaryノードの下にある@unitノードを@unitノードに

    • @idノードを@idノードとmanufacturer_idノードに

    • @dateノードを@dateノードに

    • nameノードを@nameノードに

    • typeノードをtypeノードに

    • @typeノードを@sales_typeノードに

    • incomeノードをsale (loop)ノードに

  7. outDoc出力テーブルの上部にあるレンチアイコンをクリックし、[All in one] (オールインワン)プロパティの値をtrueに設定して、単一のXMLフローを生成します。[All in one] (オールインワン)機能については、 Talend Studioユーザーガイドをご覧ください。
  8. manufacturerループエレメントの横にある[...]ボタンをクリックし、[Configure source loops] (ソースループの設定)ポップアップダイアログボックスで[+]ボタンをクリックして、1つのソースループmanufacturerを追加します。同じ手順で、saleループエレメントに1つのソースループsaleを追加します。
  9. typesループエレメントの横にある[...]ボタンをクリックし、[Configure source loops] (ソースループの設定)ポップアップダイアログボックスで2つのソースループ、typesmanufacturerを追加します。typesソースループのシーケンス番号が0であることを確認して、出力フローの相対部分がtypeエレメントの値に基づいてソートされるようにします。
    情報メモ注:

    ループエレメントが入力フローの複数のループエレメントからマッピングを受け取る場合、入力ループのシーケンスを設定できます。たとえば、このシナリオの出力フローのtypesループエレメントは、manufacturerループエレメントに属する@idノード、および入力フローのtypesループエレメントに属するtypeノードにマッピングされます。出力フローは、主要な typesループに従ってソートされます。

  10. [OK]をクリックしてマッピングを確定し、[Map Editor] (マップエディター)を閉じます。

このページは役に立ちましたか?

このページまたはコンテンツにタイポ、ステップの省略、技術的エラーなどの問題が見つかった場合はお知らせください。