Home > リファレンスガイド > ユーティリティ > データマッパーユーティリティ > 送り元と送り先のプロパティペイン > [XML]プロパティ > XMLポジショニングフォワード
XMLポジショニングフォワード機能は、XMLソースとフロー呼出送り先でのみ使用できます。これは、追加処理のために現在処理された複合物を呼び出されたフローに渡すことができます。XMLポジショニングフォワード機能が使用されている場合、マッピングされた複合要素は呼び出されたフローのルートとして見なされます。
これは、現在の親の複合物の繰り返しに対して、すべての複合子要素にアクセスできるようにするためです。現在渡されている親の直接の非複合子は、呼び出されたフロー内でアクセスされるべきではないことに注意してください。マップされた親の複合の子だけが呼び出されたフローでアクセスされるべきです。直接の子が呼び出されたフローでアクセス可能になるようにしたい場合は、それらを呼び出したフロースキーマの変数として渡します。
まとめると、呼び出されたフローに渡される親複合物については、その複合物の子も親複合物の反復ごとに使用可能になります。
親の直接の非複合子をマッピングすると、意図した結果が得られます。そのたびに、親コンテキストのすべての出現箇所が呼び出されたフロー内で処理されるためです。
次の例では、xmlソースにルート要素としてRegionsが含まれ、その中に複数回出現するRegion要素があります。各Regionには、その内部に複数のCompany要素があります。別のフローでそのRegionのすべてのCompany複合要素にアクセスするには、各Regionで処理する必要があります。
このために、まずCallFow Flow-2にRegions / Regionをマッピングする必要があります。そのため、各Regionに対してFlow-2が呼び出されます。Flow-2では、現在のRegionにCompany複合物を取ります。Flow2でアクセス可能にするためにRegionのName要素が必要な場合は、Name要素をflowという変数に渡す必要があります(たとえばC.UserString)。違いに注意してください。ここで、Name要素はCall Flowスキーマの変数にマッピングされていますが、Company複合の場合は、XMLソースからFlow-2へのマッピングは不要です。現在の地域ではFlow-2で自動的に利用可能になります。
上記のように、Flow-2ではRegion / Nameにアクセスしてはいけません。その代わりにC.UserStringはそれが呼び出し側フローからのRegion / Nameを含むので使用されるべきです。
これは、バージョン4.9以降の動作の変更です。
XMLポジショニングフォワード機能を使用するには:
送り元の[XML]プロパティを呼び出されたフローで定義した場合、[XSDサブタイプ]プロパティのドロップダウンリストから[XMLポジショニングフォワード]を選択してください。次に、[XMLポジショニングフォワード]プロパティの隣のをクリックしてください。
スキーマリストが開きます。ここには、現在のデータマッパーを呼び出している全てのデータマッパステップのリストが表示されます。これらのステップの一つを呼出データマッパーとして選択します。
必要な呼出しデータマッパーを選択した場合、呼び出す[データマッパー]プロパティに基づいて、以下のフィールドは[XML送り元プロパティ]ダイアログボックスで更新されます:
XSDファイル …… 読み込み専用。呼び出しフローのXSDパスを表示します。
データソース …… 読み込み専用。呼び出しマッパのデータソースを表示します。
XMLルート …… 読み込み専用。呼び出されたフローにマップされた複合要素までのXMLのフルパスを表示します。
再帰の深さ …… 読み込み専用。呼び出しフローからの繰返階層設定を表示します。
呼び出されたフローの送り元のマッピングは、他のマッピングと同様に全てのマップされた複合メンバーとその複合要素を処理することができます。
|