DtoXml [ options ] [ input-file.. ]
DtoXml は, input-files中のDレコードを XML形式に変換する。 通常,出力されたXMLファイルを他のXMLプログラムで処理してアプリケーションを構成する。
Dフィールド1つが,character dataだけを持つ1つのXML要素に変換される。 Dフィールド名が要素名となり,値がcharacter dataとなる。 1Dレコードは,Dフィールドから変換された要素だけを含むXML要素になる。 要素名は,デフォルトでは<record>であるが, -rオプションによって変更できる。
1入力ファイルは<file>要素としてくくられる。 全入力ファイルは<root>要素としてくくられる。 これらの要素名も,-fおよび-oオプションによって変更できる。
文字COMMERCIAL AT (@)で始まるフィールド名を持つDフィールドは, 属性に変換される。 その属性は,先行のフィールドの要素中, 先行のDフィールドが存在しないときはレコード要素中におかれる。
Dフィールド値をcharacter dataに変換する際には, XML character dataの中で許されない文字(たとえば<)は, predefined entities(たとえば<)に変換される。 Dフィールド値が,XMLのcharacter dataとしてコードされている場合, フィールド名を-nオプションにリストすることにより, この変換を抑止することができる。
出力ファイルは字下げを行わない。 開始タグ,character dataおよび終了タグを連結して1行として出力する。 root,file,recordの開始,終了タグは,それ自体で1行として出力する。 record,fileの終了タグの後ろには空行を出力する。
次の例はDtoXmlの基本的機能の説明のためである。 入力Dファイル:
@attr1:1
a:text-a
@attr2:2
b:text-b
オプションなしのDtoXmlによる出力:
<root>
<file>
<record attr1="1">
<a attr2="2">text-a</a>
<b>text-b</b>
</record>
</file>
</root>
次の例は-nの説明のためである。 入力ファイル:
a:text-a <c>text-ac</c>
b:text-b <c>text-bc</c>
DtoXml -n aコマンドの出力:
<root>
<file>
<record>
<a>text-a <c>text-ac</c></a>
<b>text-b <c>text-bc</c></b>
</record>
</file>
</root>
マニュアル D_msg参照。
MIYAZAWA Akira