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を設定してください。