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>