7.2.6 要素に囲まれた要素の扱い

DTDで定義された要素のうち,一部の要素だけをDDFで対応づけた場合,対応づけした要素以外は空要素として出力されます。また,対応づけた要素の親要素を省略した場合,親要素が補われて出力されます。

(DTDの例)

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE table [
 <!ELEMENT table (row)+>
 <!ELEMENT row (name, address, grade, age)>
 <!ELEMENT name (#PCDATA)>
 <!ELEMENT address (addr1, addr2, city, state, zip)>
 <!ELEMENT addr1 (#PCDATA)>
 <!ELEMENT addr2 (#PCDATA)>
 <!ELEMENT city (#PCDATA)>
 <!ELEMENT state (#PCDATA)>
 <!ELEMENT zip (#PCDATA)>
 <!ELEMENT grade (#PCDATA)>
 <!ELEMENT age (#PCDATA)>
]>
<table/>

(DDFの例)

<?xml version="1.0" encoding="Shift_JIS"?>
<Interface interfaceName="EXAMPLE">
 <BaseElement elemName="row">
   <Group cobName="row">
     <Item elemName="name" cobName="full-name"
           type="alphanumeric" size="20"/>
     <Item elemName="age" type="numeric" size="3"/>
     <Item elemName="city" type="alphanumeric"
           size="30"/>
   </Group>
 </BaseElement>
</Interface>

(生成されるCOBOLデータ項目)

01 row.
02 full-name PIC X(20).
02 age PIC 9(3).
02 city PIC X(30).

(出力されるXMLドキュメント)

<?xml version="1.0" encoding="Shift_JIS"?>

<table>
 <row>
   <name>Mr. X</name>
   <address>
     <addr1/>
     <addr2/>
     <city>Tokyo</city>
     <state/>
     <zip/>
   </address>
   <grade/>
   <age>103</age>
 </row>
</table>