全てコピー接続

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

ホーム >  マッピングのデザイン > マッピング接続の種類 >

全てコピー接続

全てコピーという種類の接続方法では、作業領域にあるマッピングをより単純なものとして、ソースならびにターゲットコンポーネントにある全ての同一アイテムを自動的に接続します。つまり、ソースならびにターゲットコンポーネントにおける型に従うかたちで、ソースならびにターゲットアイテムの同一の場合か、またはターゲットの型が xs:anyType の場合、該当する全てのソースアイテムがターゲットコンポーネントへコピーされます。

 

ソースならびにターゲットの同一で無い場合、かつターゲットの型が xs:anyType で無い場合、ソースデータは同一の階層にある同一名のアイテムにマッピングされます。ターゲットアイテムの名前が異なる場合、そのターゲットアイテムに対するマッピングは作成されません。

 

conn_copyAll

全てコピー接続

マッピング上の2つの構造間にマッピングを描く場合シースとターゲット構造に互換性があると検出した場合、MapForce は、 「全てコピー」 接続を自動的に作成します (これは、両方の構造が同じ型、または、ターゲットがソース型のサブ型であることを意味します)。 マッピングのランタイムでは、子を含む全てのインスタンスデータはソースからターゲットに再帰的にコピーされます。

 

「全てコピー」接続を手動で作成するには、子アイテムを持つ同類の2つのノード間の既存の接続を右クリックし、コンテキストメニューから全てコピー (子アイテムのコピー) を選択します。

 

次に注意してください:

 

「全てコピー」接続が意味を成さない、または、サポートされていないコンテキストでは、この種類の接続を手動で作成することはできません。
「全てコピー」接続を XML/スキーマ コンポーネントの root 要素に対して作成することはできません。
ユーザー定義関数のスキーマとパラメーター間に「全てコピー」接続を作成する場合、2つのコンポーネントは同じスキーマをベースにしている必要があります。しかしながら、同じルート要素を持つ必要はありません。

 

「全てコピー」接続の例は次のステップで作成することができます:

 

1.新規マッピングを作成します。
2.「挿入」 メニューから XML スキーマ/ファイル をクリックし、フォルダー <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ 内にある books.xml ファイルを参照してください。
3.「挿入」 メニューから XML スキーマ/ファイル をクリックし、フォルダー <マイ ドキュメント>\Altova\MapForce2019\MapForceExamples\Tutorial\ 内にあるlibrary.xsd ファイルを参照してください。
4.「books」 コンポーネントの book ノード と 「library」 コンポーネントの publication ノード間にマッピング接続を描きます 。
5.新規の接続を右クリックして、コンテキストメニューから 全てコピー (子アイテムのコピー) を選択します。

mf_copy-all_example

 

ソースとターゲット 構造間に差異が存在する場合、 「全てコピー」接続が列挙します。マッピングのランタイムでは、 (要素と属性などの) ソース アイテムは、ターゲット型内に存在するものだけがコピーされます。これは再帰的に繰り返されます。

 

例えば、上のマッピングでは、2つの構造 (authortitle)の2つの 子アイテムが同一です、ですから、ターゲットにマップすることができます。アイテム id は、ソース属性内の属性とターゲット内の要素であるため、自動的には含まれません。マップする必要がある場合、 例えば、 category から genre, へマップする場合、異なるアイテムのため、「全てコピー」接続を使用することはできません。

 

入力コネクタが(コンポーネントの横の小さい三角で表示されている)「全てコピー」接続を受け取る場合、他の接続を受け入れることはできません。上のサンプルでは、categorygenre 間の接続を作成する場合、MapForce 置換え、または、入力の複製を行うようにプロンプトします。

mf_copy-all_override

 

ここでは必要ありませんが、入力の複製は、ターゲットが1つ以上の入力からデータを受け入れる場合に役に立ちます (次を参照: 入力の複製)。 「全てコピー」接続を置き換える場合、メッセージボックスは、「全てコピー」接続を解決、または、削除するようにプロンプトします。

mf_copy-all_resolve

 

「全てコピー」接続を対応する子アイテムの標準のターゲット優先 接続と置換えるには、 全てコピー 接続を解決する をクリックします。「全てコピー」接続を削除するには、「子接続の削除」をクリックします。


(C) 2019 Altova GmbH