複数のソースから1つのターゲットにマップ

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  チュートリアル >

複数のソースから1つのターゲットにマップ

前のチュートリアルでは、ソースファイル (books.xml) からデータをターゲットファイル (library.xml) に変換しました。ターゲットファイル (library.xml) はマッピングの実行前は存在しておらず、マッピングの変換により生成されました。 library.xml ファイル内にすでにデータが存在すると仮定し、このデータを books.xml から変換されたデータとマージするとします。このチュートリアルの目的は、 merged_library.xml という名前のファイルを生成するマッピングをデザインすることです。生成されたファイルは、以下の2つのソースからのデータを含みます: books.xml ファイルと library.xml ファイル。 ソースとして使用されるファイル (books.xmllibrary.xml)は異なるスキーマを持つことに注意してください。 ソースファイルと同じスキーマを持つ場合、 異なるアプローチを使用してデータをマージすることができます ( ファイルを動的に処理と生成するを参照)。

Tutorial_Merge_Multiple_Sources_to_One_Target

データ変換の抽象的なモデル

チュートリアルの目的を達成するためには、次のステップを踏みます。

 

ステップ 1: マッピングデザインファイルの準備

このチュートリアルは、 <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ フォルダーからの BooksToLibrary.mfd マッピングを開始点として使用します。このマッピングは XML を新しいスキーマに変換する チュートリアル内で作成済みです。チュートリアルを開始するには、 MapForce で BooksToLibrary.mfd ファイルを開き、 新しい名前で保存します。

 

複数のファイルを参照するため、 <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ フォルダー内に新しいマッピングが保存されることを確認してください。

mfdBooksToLibrary-BAS

BooksToLibrary.mfd (MapForce Basic Edition)

 

ステップ 2: 2番目のソースコンポーネントの作成

最初に、ターゲットコンポーネントを選択して、 (「Ctrl + C」 を押して)コピーし 、同じマッピング内に(「Ctrl + V」 を押して)貼り付けます。新しいコンポーネントのヘッダーを books コンポーネントの下にドラッグします。

tut-03-01-BAS

 

マッピングには2つのソースコンポーネントと: bookslibrary、と 1つのターゲットコンポーネントがあります: library。

 

マッピングコンポーネントを4つの(左、右、上、下)方向に移動することができます。しかしながら、ソースコンポーネントをターゲットコンポーネントの左に配置することにより、マッピングの作成を簡単にし、また、他のユーザーにより読み込みやすく理解しやすくなります。このドキュメントで説明されている全てのマッピングにもこの規則は適応されており、 また、 MapForce インストールに伴うサンプルマッピングファイルにも同様の規則が適用されています。

 

ステップ 3: 入力/出力ファイルの検証とセット

前のステップでは、 新しいソースコンポーネントはターゲットコンポーネントからコピーし、貼り付けられましたので同じ設定を継承します。名前入力/出力インスタンスファイルが正確に設定されるように、各コンポーネントのヘッダーをダブルクリックし、 コンポーネント設定ダイアログボックス内で、下に表示されるように各コンポーネントの入力/出力ファイルを検証し、名前を変更します。

tut-03-03-BAS

最初のソースのコンポーネント設定 (books)

tut-03-04-BAS

2番目のソースのコンポーネント設定 (library)

tut-03-05-BAS

ターゲットのコンポーネント設定 (merged_library)

上に表示されるように、 最初のソースコンポーネントは books.xml からデータを読み込みます。2番目のソースコンポーネントは library.xml からデータを読み込みます。2番目のソースコンポーネントは merged_library.xml というファイルのターゲットコンポーネント出力データを最後に読み込みます。

 

ステップ 4: 接続の作成

MapForce に2番目のソースからターゲットにデータを書き込むように命令するには、 ソース library 内コンポーネントの publications アイテムの出力コネクタ (小さな三角形)をクリックし、ターゲット library コンポーネント内のアイテムの入力コネクタにドラッグします。ターゲット入力コネクタには既に接続があり、次の通知メッセージが表示されます。

tut-03-02-BAS

このチュートリアルでは、 接続の置換えが目的ではなく、目的は2つのソースからのデータのマッピングです。 ですから、「入力の複製」 をクリックします。これを行うことにより、ターゲットコンポーネントに新しいソースからのデータを受け入れるように構成することができます。マッピングは、以下のようになります:

tut-03-06-BAS

 

ターゲットコンポーネント内の publication アイテムが複製されました。 新規 publication(2) ノードはソース library コンポーネントからのデータを受け入れます。更に重要な点は、マッピング内でこのノードは publication(2) と表示されますが、結果 XML ファイル内での名前は、想定された目的である publication となります。

 

マッピングペインの下の 「出力」 ボタンをクリックして、マッピングの結果を確認します。library.xmlbooks.xml ファイルのデータが、新規ファイル merged_library.xml  にマージされたことを確認してください。


(C) 2019 Altova GmbH