Home > リファレンスガイド > ユーティリティ > データマッパーユーティリティ > 送り元と送り先のプロパティペイン > [XML]プロパティ > 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ポジショニングフォワード機能を使用するには:

  1. 送り元の[XML]プロパティを呼び出されたフローで定義した場合、[XSDサブタイプ]プロパティのドロップダウンリストから[XMLポジショニングフォワード]を選択してください。次に、[XMLポジショニングフォワード]プロパティの隣のをクリックしてください。

  2. スキーマリストが開きます。ここには、現在のデータマッパーを呼び出している全てのデータマッパステップのリストが表示されます。これらのステップの一つを呼出データマッパーとして選択します。

必要な呼出しデータマッパーを選択した場合、呼び出す[データマッパー]プロパティに基づいて、以下のフィールドは[XML送り元プロパティ]ダイアログボックスで更新されます:

呼び出されたフローの送り元のマッピングは、他のマッピングと同様に全てのマップされた複合メンバーとその複合要素を処理することができます。

  • 有効なフロー変数が一つしかない場合、[フロー選択]フォームは表示されず、現在のマッパを呼び出す全てのマッパが含まれたフォームが表示されます。ユーザは一つのマッパしか選択できません。

  • 複数のフローがある場合、[フロー選択]フォームが表示され、ユーザ選択時に[データマッパー選択]フォームが表示されます。

  • 呼び出されたフロー内の、オリジナルの送り元に対するマッピングは、他のマッピングのようにマッピングされた複合要素の全てを処理します。

  • 呼び出されたフローでは、ルート要素のマッピングとルート要素より上位の全ての複合要素は呼び出しフローに基づいています。これらのマッピングの変更は予期せぬ結果をもたらすことがあります。

  • XMLポジショニングフォワードに動作していないソースフローを定義すると実行時に予期せぬ結果をもたらすことがあります。