手順
-
デザインワークスペースでtXMLMapをダブルクリックし、エディターを開きます。この時点のエディターは次のような状態です。
-
入力フロー側(左)のメインの行テーブルでpayloadという名前のカラムを右クリックし、コンテキストメニューから[Import from Repository] (リポジトリーからインポート)を選択します。[Metadatas] (メタデータ)ウィザードが開きます。
XMLツリーの作成方法の詳細は、https://help.talend.comで『Talend Studioユーザーガイド』の「ドキュメントタイプを使用したXMLツリーの作成」を参照してください。XMLツリーの作成方法の詳細は、『Talend Studioユーザーガイド』の「ドキュメントタイプを使用したXMLツリーの作成」を参照してください。
-
このウィザードで[File XML] (XMLファイル)ノードを展開し、リクエスト側のスキーマを選択し、[OK]をクリックして選択を確定します。この例では、スキーマはgetAirportInformationByISOCountryCodeです。
- 同じ手順を実行して、応答側(右)の階層スキーマをインポートします。この例では、スキーマはgetAirportInformationByISOCountryCodeResponseです。
- 次に、ルックアップデータへの結合を作成するために、入力フロー側(左)のメインの行テーブルでCountryAbbrviationノードをクリックし、それをクリックしたまま、ルックアップフローのExp.keyカラムにドロップします。これはid行に対応するものです。
- ルックアップフローを表すテーブルで右上のレンチアイコンをクリックし、設定パネルを開きます。
-
[Lookup Model] (ルックアップモデル)を[Reload at each row] (行ごとにリロード)に設定し、[Match Model] (一致モデル)を[All matches] (すべて一致)に設定し、[Join Model] (結合モデル)を[Inner join] (内部結合)に設定します。
[Lookup Model] (ルックアップモデル)の詳細は、『Talend Studioユーザーガイド』の「ルックアップの処理」を参照してください。[Match Model] (一致モデル)の詳細は、『Talend Studioユーザーガイド』の「明示的結合の使用方法」を参照してください。[Join Model] (結合モデル)の詳細は、『Talend Studioユーザーガイド』の「内部結合の使用方法」を参照してください。Talendのテクニカルコミュニティサイトでは、この結合に関するステップバイステップのチュートリアルを利用できます。詳細は、http://talendforge.org/tutorials/tutorial.php?language=english&idTuto=101をご覧ください。
-
同じ手順を繰り返して、出力側(右)の設定パネルを開き、[All in one] (一度に1つの応答)オプションを[true] (真)に設定します。これにより、1つの要求が送信されると1つの応答のみが返されます。この設定を行わないと、所定のデータベースの空港データは複数の空港のデータを提供する場合があり、1つの要求として送信した国コードに対して複数の応答が返されることがあります。
[All in one] (オールインワン)の詳細は、https://help.talend.comで『Talend Studioユーザーガイド』の「エレメントを1つのドキュメントに出力する方法」を参照してください。[All in one] (オールインワン)の詳細は、『Talend Studioユーザーガイド』の「エレメントを1つのドキュメントに出力する方法」を参照してください。
-
ルックアップフロー(左)で名前の行をクリックし、それをクリックしたまま[Expression] (式)カラムにドロップします。これは出力フロー(このサンプルではairport_response)のXMLツリービューのtns:getAirportInformationByISOCountryCodeResultノードに対応します。
tXMLMapエディターは次の図のようになります。
注:実際には、ルックアップに階層データも追加できます。
- [OK]をクリックしてエディターを閉じ、この設定を有効にします。