複数のターゲットスキーマとの作業

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

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

複数のターゲットスキーマとの作業

前のチュートリアルの、複数のソースから1つのターゲットにマップ では、複数のソーススキーマから単一のターゲットスキーマへのデータのマッピングについて作成方法について説明しました。2 つのソースからのブックのレコードを保管する merged_library.xml と呼ばれるファイルを作成しました。他の部署からこの XML ファイルのサブセットを提供するように要請があったと仮定します。特に、 1900 年以降に出版された書籍を含む XML ファイルを提出するとします。

 
既存の MultipleSourcesToOneTarget.mfd マッピングを使用し、 完全な XML ライブラリと フィルターされたライブラリ必要に応じて、を生成することができます。変更を加えることができます。

Tutorial_Multiple_Targets

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

上の図では、データは 2 つの異なるスキーマ (books.xsdlibrary.xsd) が merged_library.xml と呼ばれる単一の XML ファイルにマージされます。第2に、データはフィルター関数を使用して変換され、filtered_library.xml と呼ばれる XML ファイルを作成する、次のコンポーネントにパスされます。「中間」コンポーネントは、データターゲットとソースとしての役割を果たします。MapForce では、このテクニックは「チェーンマッピング」と呼ばれ、このチュートリアルの主な内容です。ます。

 

このチュートリアルのゴールは、merged_library.xmlfiltered_library.xml を必要に応じて生成することです。チュートリアルの目的を達成するためには、次のステップを踏みます。

 

 

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

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

 

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

mfdMultipleSourcesToOneTarget-BAS

MultipleSourcesToOneTarget.mfd (MapForce Basic Edition)

 

ステップ 2: 2番目のターゲットコンポーネントの追加と構成

2番目のターゲットコンポーネントを追加するには、「XML スキーマ / ファイルの挿入」 ( ic-new-schema ) ツールバーボタンをクリックし、 <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ フォルダーにある library.xsd ファイルを開きます。サンプルインスタンスファイルを提供するようにプロンプトされた場合、 「スキップ」  をクリックします。マッピングは、以下のようになります:

tut-04-01-BAS

 

上に表示されるように、マッピングには2つのソースコンポーネントと: bookslibrary、と 2つのターゲットコンポーネントがあります。ターゲットコンポーネントを区別するために、2番目のターゲットコンポーネントをと filtered_library に名前を変更し、生成される XML ファイルの名前も変更します。これを行うには、右端にあるコンポーネントをダブルクリックして、コンポーネントの設定を次のように編集します:

 

tut-04-02-BAS

 

コンポーネントの新しい名前は filtered_librar となり、出力 XML ファイルには filtered_library.xml という名前が付けられます。

tut-04-03-BAS

 

ステップ 3: 接続の作成

merged_library 内のアイテム publication から filtered_library 内のアイテム publication への接続を作成します。これを行う際、通知メッセージが表示されます。

tut-04-04-BAS

 

「OK」をクリックします。次の新規のボタンがターゲットコンポーネントの右上に表示されます: 「プレビュー」 ( btn_component_preview ) と 「パススルー」 ( btn_component_pass-through )。 次のステップでこれらのボタンは使用され、説明されます。

tut-04-05-BAS

 

ステップ 4: データのフィルター

filtered_library に提供する前にデータをフィルターするには、「フィルター」 コンポーネントを使用します。フィルターコンポーネントを追加するには、 merged_libraryfiltered_library、 間の接続を右クリックして、コンテキストメニューから、 「node/row フィルターの挿入」 を選択します。

tut-04-06-BAS

フィルターコンポーネントがマッピングに追加されました。

tut-04-07-BAS

 

上に表示されるように、 ブール 入力コネクタは、入力が必要なことを示すオレンジ色にハイライトされます。コネクタ上にマウスをポイントすると、入力の型 xs:boolean が必要なことがわかります。ヒントを表示するには、 「ヒントの表示」 ( ic-show-lib-info ) ツールバーボタンが有効化されている必要があることに注意してください。

tut-04-07a-BAS

 

フィルターコンポーネントは true または false を返す条件を必要とします。ブール型の条件は、現在の publication シーケンスのデータがターゲットにコピーされると true を返します。条件がは、 false を返すと、データはコピーされません。

 

このチュートリアルで使用される条件は1900 年以降に出版された書籍をフィルターします。条件を整えるために、 、以下を行います:

 

1.1900 の値を持つ定数の数値の型を追加します。(「挿入」 メニューから「定数」をクリックします)。「数値」 を型として選択します。

tut-04-08-BAS

2.ライブラリウィンドウ内で、関数 greater を検索し マッピングペインにドラッグします。
3. greater 関数へと greater 関数から以下に表示されるように、マッピングを接続します。これを行うことにより、 MapForce に以下を行うように命令します: 「publish_year(出版年) が 1900 以降の場合は、現在の publication ソースアイテム を publication ターゲットアイテム」 にコピーします。

tut-04-09-BAS

 

ステップ 5: 各ターゲットコンポーネントの出力をプレビューし保存する

ターゲットコンポーネントの出力をプレビューし保存することができます。複数のターゲットコンポーネントが同じマッピングに存在する場合、 「プレビュー」 ( btn_component_preview ) ボタンをクリックすることにより、 プレビューの対象を選択することができます。「プレビュー」 ボタンが押された状態 ( btn_component_preview_pressed ) の場合、特定のコンポーネントが現在プレビューのために有効化されていることを示します (そして、この特定のコンポーネントが 「プレビュー」 ペイン内に出力を生成します)。一度に1つのコンポーネントのみがプレビューのために有効化することができます。

 

ですから、 merged_library (すなわち、 「中間」) コンポーネントの出力を確認し保存する場合は、以下を行います:

 

1.merged_library コンポーネントの 「プレビュー」 ボタン ( btn_component_preview_pressed ) をクリックします。
2.「出力」 ボタン マッピングペインの下の.をクリックします。
3.出力をファイルに保存するには、 「出力」 メニューから「出力ファイルの保存」 をクリックします。

 

filtered_library コンポーネントの出力を表示して保存するには、以下を行います :

 

1.merged_lilbrary コンポーネント上の「パススルー」 ボタン ( btn_component_pass-through_pressed ) をクリックします。
2.filtered_library コンポーネント上の「プレビュー」 ボタン ( btn_component_preview_pressed ) をクリックします。
3.マッピングペインの下の「出力」 ボタン をクリックします。
4.出力をファイルに保存するには、「出力」 メニューから「出力ファイルを保存」 をクリックします。

 

「パススルー」 ( btn_component_pass-through ) ボタン—をクリックまたはクリックしないことにより、複数のターゲットコンポーネントを持つマッピングに大きな違いをもたらします。このボタンが押された状態 ( btn_component_pass-through_pressed ) である場合、MapForce は、データに中間コンポーネントをパススルーさせ、マッピング全体の残りをプレビューすることができます。

 

merged_libraryfiltered_library 間のマッピングの部分のみをプレビューするには、ボタン ( btn_component_pass-through ) をリリースします。後者の場合、 エラーが生成されます。中間コンポーネントはデータを読み込むべき妥当な入力 XML ファイルを持たないため、この振る舞いは予期されます。問題を解決するには、  コンポーネントのヘッダーをダブルクリックし、 編集して、妥当な入力 XML ファイルを提供します。

tut-04-10-BAS

 

複数のターゲット コンポーネントを持つマッピングのデザインが終わると、このチュートリアルの目的である、各ターゲットの出力を確認して保存することができます。パススルー コンポーネントに関しての詳細は、 チェーンマッピング/ パススルーコンポーネントを参照してください。


(C) 2019 Altova GmbH