# 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 出力ファイル