XML マッピング・エディターとは、XML スキーマ、DTD、または
XML 文書からなる任意の組み合わせを変換して、デプロイ可能な変換文書を作成するために設計された、
ビジュアル・データ・マッピング・ツールです。
XML ベースの文書は、ソース文書の要素をターゲット文書の要素に接続することで、
グラフィックにマップすることができます。
カスタム XPath 式および XSLT テンプレートを使用して、標準装備の変換機能を拡張できます。
このマッピング・ツールは、XSL コード生成を自動化し、ユーザーが提供したマッピング情報を基にして
変換文書を作成します。
マッピング変換のサンプル |
説明 |
購入オーダーから配送オーダーへのマップ |
このサンプルは、2 つのビジネス・ユニットが情報を円滑に交換する必要がある
ビジネス・シナリオを表しています。
このシナリオでは、販売部門からの購入オーダー文書が、物流管理部門の配送オーダー文書にマップされます。
このマッピングは、次のキー変換から構成されます。
- 移動
- 連結
- インライン・マップ
- サブストリング
- グループ
- カスタム
|
移動 |
このサンプルは、ソース文書の要素の値がターゲット文書の要素にどのように移動されるかを表しています。 |
連結 |
このサンプルは、ソース文書の品目セットの値がターゲット文書の品目の単一値にどのように連結されるかを表しています。 |
インライン・マップ |
このサンプルは、マップ内にマップを作成して、
複合要素の変換をそれら独自のコンテキストで実行できるようにする方法を表しています。 |
サブストリング |
このサンプルは、ソース文書の要素の値を分割し、
その結果をターゲット文書の要素にコピーする方法を表しています。 |
グループ |
このサンプルは、ソース文書の要素をグループ化し、
その結果をターゲット文書に保管する方法を表しています。 |
カスタム |
このサンプルは、XPath 式を使用して、マッピング・ツールの標準装備の変換機能を拡張する
方法を表しています。 |
購入オーダーから配送オーダーへのマップ
このサンプルでは、
配送オーダー文書を生成するために、販売部門からの購入オーダー文書を
物流管理部門で処理する必要があります。
- 「XML マッピング」ウィザードを起動するため、の順に選択します。「次へ」をクリックします。
- 「ファイル名」フィールドで、MyOrderMapping.map
と入力し、「次へ」をクリックします。
- 「ルート入力 (Root inputs)」ペインで、「追加」をクリックします。
- 「次のタイプのファイル」ドロップダウン・リストから「XML
スキーマ」を選択し、「参照」をクリックします。 と展開して、「PurchaseOrder.xsd」を選択し、
「OK」をクリックします。
- ソース・ルート要素として「PurchaseOrder」を選択し、
「OK」をクリックします。
- 「ルート出力 (Root outputs)」ペインで、「追加」をクリックします。
- 「次のタイプのファイル」ドロップダウン・リストから「XML
スキーマ」を選択し、「参照」をクリックします。 と展開して、「ShippingOrder.xsd」を選択し、
「OK」をクリックします。
- ターゲット・ルート要素として「ShippingOrder」を選択し、
「OK」をクリックします。
- 「次へ」をクリックします。
- サンプル XML 入力ファイルを選択するため、「追加」をクリックします。
「PurchaseOrder.xml」を選択し、「OK」をクリックします。
注: サンプル XML
入力ファイルを使用して、マッピング変換をテストします。
- 「終了」をクリックします。
移動
このサンプルでは、PurchaseOrder
文書の OrderID 要素の値が、ShippingOrder 文書の
PurchaseOrderReference 属性の値に移動されます。
- XML マッピング・エディターで、PurchaseOrder の「OrderID」要素をクリックし、
その要素を ShippingOrder の「PurchaseOrderReference」属性にドラッグします。

連結
このサンプルでは、
PurhchaseOrder 文書のファーストネーム、ミドルネーム、およびラストネームの
要素が、ShippingOrder
文書の CustomerName 要素の単一値に連結されます。
- XML マッピング・エディターで、PurchaseOrder の「FirstName」要素をクリックし、
その要素を ShippingOrder の「CustomerName」要素にドラッグします。
- PurchaseOrder の「LastName」要素をクリックし、
PurchaseOrder と ShippingOrder の間の変換タイプ・ボックスにその要素をドラッグします。
注: 2
番目の要素を変換タイプ・ボックスにドラッグした後、変換タイプは自動的に「Concat」に変更されるはずです。
- PurchaseOrder の「MiddleInitial」要素をクリックし、
その要素を変換タイプ・ボックスにドラッグします。

- 変換タイプ・ボックスを右クリックし、「プロパティー・ビューで表示
(Show in Properties)」を選択します。
- 連結値の順序を変更するには、「プロパティー」ビューの 「順序
(Order)」タブをクリックします。「MiddleInitial」をクリックし、上矢印の
「再配列」アイコンをクリックします。
注: 順序付け、区切り、
接頭部付け、接尾部付けのために連結オプションをカスタマイズすることができます。
インライン・マップ
このサンプルでは、
ソース文書とターゲット文書の両方に、複合要素 ShippingAddress が含まれています。
- XML マッピング・エディターで、PurchaseOrder
の「ShippingAddress」要素をクリックして、その要素を ShippingOrder
の「ShippingAddress」要素にドラッグします。

- 変換タイプ・ボックスの右上隅にある編集アイコンをクリックします。
注: 各 ShippingAddress 副要素を「インライン化マップの詳細 (Inline map details)」ビューでマップする必要があります。
- 「インライン化マップの詳細 (Inline map details)」ビューで、以下のマッピング変換を実行します。
- 「StreetNumber」要素をクリックして、その要素を「StreetAddress」要素にドラッグします。
- 「StreetName」要素をクリックして、その要素を変換タイプ・ボックスにドラッグします。
「Apartment」要素についても、これを繰り返します。
- 「PostalCode」要素をクリックし、その要素を右側の「PostalCode」要素にドラッグします。
- 「Province」要素をクリックし、その要素を右側の「Province」要素にドラッグします。

- メイン・マップに戻るため、「インライン化マップの詳細
(Inline map details)」ページの右上部にある矢印アイコンをクリックします。
サブストリング
このサンプルでは、
OrderDate 要素は購入オーダー文書で単一の日付型として保管されますが、配送オーダー文書では、
同じ OrderDate 要素が、year、month、および day
の整数型の副要素に分けられます。適切なサブストリング変換パラメーターを設定することで、
購入オーダーの OrderDate 要素から year、month、
および day の値を取り出し、それらの値を、配送オーダーの対応する要素に保管することができます。
- PurchaseOrder の「OrderDate」要素をクリックして、その要素を
ShippingOrder の「Year」要素にドラッグします。
- 変換タイプ・ボックスのドロップダウン矢印をクリックし、リストから「サブストリング」を選択します。
- 変換タイプ・ボックスを右クリックし、「プロパティー・ビューで表示
(Show in Properties)」を選択します。
- 「プロパティー」ビューの「区切り文字」フィールドに、-
と入力します。
- 「サブストリング・インデックス」フィールドに、0
と入力します。
- OrderDate 要素をクリックし、その要素を Month 要素にドラッグします。
- 変換タイプを「サブストリング」に変更します。
- 「プロパティー」ビューの「区切り文字」フィールドに、-
と入力します。
- 「サブストリング・インデックス」フィールドに、1
と入力します。
- OrderDate 要素をクリックし、その要素を Day 要素にドラッグします。
- 変換タイプを「サブストリング」に変更します。
- 「プロパティー」ビューの「区切り文字」フィールドに、-
と入力します。
- 「サブストリング・インデックス」フィールドに、2
と入力します。

注: サブストリング変換または連結変換を、
ストリング型だけでなく、任意の要素および属性の型に適用することができます。
グループ
このサンプルでは、
購入オーダーの各商品に配送の優先順位が関連付けられているのに対し、配送オーダーでは、
商品は配送優先順位セクション要素別にグループ化されます。
グループ変換を使用すると、購入オーダーの商品をそれらの配送優先順位別にグループ化し、
その結果得られるグループを配送オーダーの要素にマップすることができます。
グループ・プロパティーでは、グループ化パラメーターおよび順序とソート基準を設定できます。
- PurhaseOrder の「Product」要素をクリックし、その要素を
ShippingOrder の OrderSection 要素にドラッグします。
- 変換タイプ・ボックスをクリックし、「グループ」を選択します。

- 変換タイプ・ボックスを右クリックし、「プロパティー・ビューで表示
(Show in Properties)」をクリックします。
- 「プロパティー」ビューの左側のペインで、「ShippingPriority」をクリックします。
- 「追加」をクリックします。
- グループの詳細を表示するため、変換タイプ・ボックスの右上隅にある矢印アイコンをクリックします。
- グループの詳細ビューで、以下の移動操作を実行します。
- 「ID」要素を「Identifier」要素に移動します。
- 「Price」要素を右側の「Price」要素に移動します。
- 「Description」要素を「Name」要素に移動します。
- 「Quantity」要素を右側の「Quantity」要素に移動します。
- 「ShippingPriority」要素を「Priority」要素に移動します。
- メイン・マップ・ビューに戻るため、グループの詳細ページの右上部にある矢印アイコンをクリックします。
カスタム
このサンプルでは、
配送オーダー文書に、オーダーの商品の総数を指定する
NumberOfProducts 属性が含まれています。
NumberOfProducts
属性の値を生成するには、quantity
要素を使用して、購入オーダーの商品の合計を計算しなければなりません。
XPath 式を使用すると、カスタム変換を使用した加算操作を実行できます。
その結果は、ターゲット属性である
NumberOfProducts に保管されます。
- 「PurchaseOrder」要素をクリックし、その要素を ShippingOrder
の「NumberOfProducts」要素にドラッグします。
- 変換タイプ・ボックスをクリックし、「カスタム」を選択します。

- 変換タイプ・ボックスを右クリックし、「プロパティー・ビューで表示
(Show in Properties)」を選択します。
- 「プロパティー」ビューで、XPath
式を作成できます。このサンプルの場合、sum(Product/Quantity) と入力します。
