XMLレコード単位=“任意”の変換
出力ファイルがXML形式のとき、「XMLレコード単位」を"任意"に設定すると、条件ごとに異なる階層をレコードとして指定できます。
(1) マルチフォーマット形式ファイルからXML形式ファイルへの変換
マルチフォーマット形式ファイルからXML形式ファイルへの変換例です。
以下の入力ファイル(マルチフォーマット形式)、スキーマファイル、XML情報ツリーを例に、「要素」を“任意”に設定した場合の説明をします。

図4.71 入力ファイル

図4.72 スキーマファイル

画面4.37 XML情報ツリー
a) キー値="HDR"に対するマッピング
キー値="HDR"に対するマッピングは以下のようになります。繰り返しは設定していません。

画面4.38 マッピング情報(キー値="HDR")
b) キー値="DAT"に対するマッピング
キー値="DAT"に対するマッピングは以下のようになります。
DATの内容モデルを繰り返しの基点に設定しているので、キー値="DAT"のレコードの数だけ<DAT-id>~</DAT-id>、<ORD-list>~</ORD-list>、<DTL-list>~</DTL-list>が繰り返し出力されます。

画面4.39 マッピング情報(キー値="DAT")
c) キー値="ORD"に対するマッピング
キー値="ORD"に対するマッピングは以下のようになります。
ORD-listの内容モデルを繰り返しの基点に設定しているので、キー値="ORD"のレコードの数だけ<ORD>~</ORD>が繰り返し出力されます。

画面4.40 マッピング情報(キー値="ORD")
d) キー値="DTL"に対するマッピング
キー値="DTL"に対するマッピングは以下のようになります。
DTL-listの内容モデルを繰り返しの基点に設定しているので、キー値="DTL"のレコードの数だけ<DTL>~</DTL>が繰り返し出力されます。

画面4.41 マッピング情報(キー値="DTL")
入力ファイルを処理したときの挙動は以下のようになります。
1. 最初のレコードはキー値="HDR"なので、HDR要素が出力されます。
2. 2番目のレコードはキー値="DAT"なので、DAT-id要素が出力されます。
3. 3番目と4番目のレコードはキー値="ORD"なので、ORD-list要素の子要素としてORD要素が繰り返し出力されます。
4. 5番目のレコードはキー値="DTL"なので、DTL-list要素の子要素としてDTL要素が出力されます。
5. 6番目のレコードはキー値="DAT"です。DAT要素の内容モデルが繰り返しの基点に設定されているので、2回目のDAT-id要素が出力されます。
6. 7番目のレコードはキー値="ORD"なので、2回目のORD-list要素の子要素としてORD要素が出力されます。
7. 8番目と9番目のレコードはキー値="DTL"なので、2回目のDTL-list要素の子要素としてDTL要素が繰り返し出力されます。
出力ファイルは以下のようになります。

図4.73 出力ファイル
(2) CSV形式ファイルからXML形式ファイルへの変換
次に、入力ファイル(CSV形式)をXML形式に変換する例です。
繰り返しの基点にする内容モデルによって、出力結果が異なります。繰り返しの基点にする内容モデル別に説明します。

図4.74 入力ファイル

図4.75 スキーマファイル
a) 内容モデル「item1」を繰り返しの基点に設定した場合
内容モデルを繰り返しの基点に設定した場合、マッピングは以下のようになります。
item1を繰り返しの基点に設定しているので、キー値="item1"のレコードの数だけ<item1> ~ </item1> が繰り返し出力されます。

画面4.42 XML情報ツリー
出力ファイルは以下のようになります。

図4.76 出力ファイル
b) 内容モデル「item3」を繰り返しの基点に設定した場合
内容モデルを繰り返しの基点に設定した場合、マッピングは以下のようになります。
item3を繰り返しの基点に設定しているので、キー値="item3"のレコードの数だけ<item3> ~ </item3> が繰り返し出力されます。

画面4.43 XML情報ツリー
出力ファイルは以下のようになります。

図4.77 出力ファイル