マッピングの繰り返しは、 構造またはフィールドがメッセージ内に何回も出現する場合で、 メッセージ定義ステージで定義されているときに生じます。
ソース | ターゲット |
customer
|
customer
customername[1]
customername[2]
|
ソースとターゲットはツリー・ノードを使ってマップされます。 ツリー・ノードは、スキーマ・タイプ (メッセージ・タイプを含む)、 あるいはデータベース・テーブルまたは列を表します。 別の言い方をすると、ツリー・ノードは、 特定のメッセージ・タイプのコンテナーを表します。
繰り返しノードを展開してインスタンスを表示することができます。 インスタンス、さらに厳密に言うなら、インスタンス・エレメント・ノードは、 反復エレメントの 1 オカレンスです。 たとえば、フィールドに 10 のオカレンスがある場合、 その 1 つ 1 つをインスタンス・エレメント・ノードと見なすことができます。 これはメッセージで受け取るランタイム・インスタンスと同等のものではありませんが、 このエレメント・インスタンスがメッセージにある場合、プレースホルダーとなります。 このトピックでは、インスタンスとは、 ランタイム・インスタンスではなく、開発時間タイプのインスタンスのことです。
インスタンスは繰り返し可能ノードと同じレベルで生成され、繰り返し可能ノードの兄弟です。 それらはノードの構造を反映し、 ユーザーがマッピングで使用するインスタンスを正確に識別するためのマッピング可能エンティティーを提供します。 新しい兄弟にはそれぞれ、現行インスタンスの索引番号の接尾部が付けられます。
索引は、Java の 0 ベースではなく、ESQL の 1 ベースです。
たとえば、次の構造をご覧ください。
message1 |_ top |_ middle |_bottom
middle と bottom は繰り返し可能で、 middle は n1..m1 回、 bottom は n2..m2 回繰り返します。
展開されたそれぞれのインスタンス・ノードは反復不可なので、 他の反復不可エレメントと同じようにマッピングで使用できます。 しかし、ネストされたレベルの繰り返しの場合、 これには繰り返し可能な子を含めることができます。 上記のメッセージにあるように、 内部レベルが展開されていないときにはネストされた構造のトップレベルを意味ある仕方で展開することはできないので、 ネストされた繰り返し可能ノードが必要とする最小数のインスタンスを持つように、その下の子が自動的に展開されます。 例では、middle の最小の展開によって n1 インスタンスが作成されますが、 middle の子は、ただ 1 つの bottom を持つ単一のセットとはなりません。 このインスタンスの最小数は、繰り返し回数の決定に使用されます。
以下の例は、部分的に展開されている完全ツリー・ノードを示しています。
message1 |_ top |_ middle[] |_bottom[] |_ middle[1] |_bottom[] |_bottom[All] |_bottom[1]
この例では、後に [] が続いている項目は繰り返し可能ノード、後に [All] が続いている項目はすべてのノード、後に [1] が続いている項目はインスタンス・エレメント・ノードを表わしています。
注意 |
商標 |
ダウンロード |
ライブラリー |
技術サポート |
フィードバック
![]() ![]() |
ar00970_ |