# 繰り返し項目のマッピング

XMLのツリーにおいて、1レコード中に同じ要素が繰り返し出現する場合があるかもしれません。その場合の繰り返し項目のマッピングの方法について説明します。要素の繰り返しは、マッピングによるノードの実体化後に起こるノードの増加によって表されます。

= 備考 =

最大ノード数は9999ノードです。それ以上は増加できません。

(1) sequenceの子要素である要素ノード

マッピングしたノード数がその要素ノードの「maxOccurs」の値に達しない場合は、「maxOccurs」の値に達するまで未実体化状態のノードが1つずつ増加します。

さらに、sequence 1セットの要素がすべて実体化した後に、実体化したセット数がsequenceの「maxOccurs」の値に達していなければ、もう1セット未実体化状態のノードが同一階層に増加します。

このノードをマッピングすることでsequence内の次の繰り返しを項目として使用できます。

= 備考 =

未実体化状態のsequence 1セットを自動で増加させるかどうかを設定できます。

自動で増加させる場合は、以下の手順で設定してください。

1. DataMagic管理画面の上部にある［設定］ボタンをクリック
2. 設定画面の［マッピング画面で、XMLのsequence/choice要素を自動で展開する］チェックボックスをオン

［マッピング画面で、XMLのsequence/choice要素を自動で展開する］チェックボックスをオフにしている場合は、

sequenceを右クリックして「次の子要素を展開」を選択することで、未実体化状態のノードを追加できます。

要素ノードについてはこの設定に関係なく、「maxOccurs」の値に達するまで未実体化状態のノードが1つずつ増加します。

画面4.47 増加したsequenceの子要素

(2) choiceの子要素である要素ノード

マッピングしたノード数がその要素ノードの「maxOccurs」の値に達しない場合は、「maxOccurs」の値に達するまで未実体化状態のノードが1つずつ増加します。

さらに、choice 1セットの要素1つが実体化した後に、実体化したセット数がchoiceの「maxOccurs」の値に達していなければ、もう1セット未実体化状態のノードが同一階層に増加します。

このノードをマッピングすることでchoice内の次の繰り返しを項目として使用できます。

= 備考 =

未実体化状態のchoice 1セットを自動で増加させるかどうかを設定できます。

自動で増加させる場合は、以下の手順で設定してください。

1. DataMagic管理画面の上部にある［設定］ボタンをクリック
2. 設定画面の［マッピング画面で、XMLのsequence/choice要素を自動で展開する］チェックボックスをオン

［マッピング画面で、XMLのsequence/choice要素を自動で展開する］チェックボックスをオフにしている場合は、

choiceを右クリックして「次の子要素を展開」を選択することで、未実体化状態のノードを追加できます。

要素ノードについてはこの設定に関係なく、「maxOccurs」の値に達するまで未実体化状態のノードが1つずつ増加します。

画面4.48 増加したchoiceの子要素

(3) allの子要素である要素ノード

allそのものの中で繰り返し項目は定義できません。allが持つ子要素が実体化しても、ノードの増加は発生しません。

画面4.49 増加しないallの子要素

(4) データを無視する

前ページまでの使用方法では、常に繰り返しの1回目をマッピングして出力しないことには、2回目以降の項目のマッピングをできないことになります。1回目を出力せずに2回目の繰り返しだけを出力したい場合は、無視したいノードを選択した状態で右クリックし、コンテキストメニュー内の［データを無視する］をクリックしてください。そのノードは実体化され、次の項目をマッピングできるようになります。

入力側ツリーでのみ指定できます。

画面4.50 コンテキストメニュー（無視する）