COBOL2002 XML連携機能ガイド

[目次][用語][索引][前へ][次へ]

7.2.3 +繰り返しを持つ選択要素

選択する要素に+繰り返し付きの要素がある場合,次の設定で+繰り返し付きの要素を出力しないようにできます。

DTDの条件 設定方法
countVar指定なし
countVar="yes"
+繰り返し付き要素のcountVarの値に0を設定する。
countVar="no"
accessInfo="no"
すべての繰り返し項目にemptyValue値を設定する。
countVar="no"
accessInfo="yes"
すべての繰り返し項目にCBLXML-FLAG-MISSINGを設定する。

(DTDの例)
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE root [
  <!ELEMENT root (item1 | item2+ )>
  <!ELEMENT item1  (#PCDATA)>
  <!ELEMENT item2  (#PCDATA)>
]>
<root/>

(DDFの例)
<?xml version="1.0" encoding="Shift_JIS"?>
<Interface interfaceName="EXAMPLE">
 <BaseElement elemName="root">
  <Group elemName="root">
   <Item elemName="item1" size="10"/>
   <Array max="2">
    <Item elemName="item2" size="10"/>
   </Array>
  </Group>
 </BaseElement>
</Interface>

(生成されるCOBOLデータ項目)
01 root.
 02 item1 PIC X(10).
 02 item2 PIC X(10) OCCURS 2.
 02 item2-COUNT PIC 9(9) USAGE COMP.

(COBOLプログラムのコーディング例)
       :
    MOVE 0 TO item2-COUNT.        …1.
    MOVE 'data1' TO item1.
    CALL 'CBLXML-WR-EXAMPLE-root'
        USING XML-POINTER   root
        RETURNING CBLXML-RETURN-CODE.
      :

(説明)
  1. item2を出力しないように繰り返し数0を設定してください。