COBOL2002 XML連携機能ガイド


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>