Array要素は,繰り返し要素をOCCURS句を持つCOBOLデータ項目に対応づける要素です。
Array要素は,子要素としてGroup要素,Item要素,またはAttrItem要素のどれかを持ちます。
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE book [
<!ELEMENT book (chapter)*>
<!ELEMENT chapter (paragraph)*>
<!ELEMENT paragraph (sentence)*>
<!ELEMENT sentence (#PCDATA)>
]>
<book/>
<?xml version="1.0" encoding="Shift_JIS"?>
<Interface interfaceName="EXAMPLE">
<BaseElement elemName="paragraph">
<Group cobName="paragraph">
<Array max="20">
<Item elemName="sentence"
cobName="a-sentence"
type="alphanumeric"
size="1000"/>
</Array>
</Group>
</BaseElement>
</Interface>
01 paragraph.
02 a-sentence PIC X(1000) OCCURS 20.
02 a-sentence-COUNT PIC 9(9) USAGE COMP.
表2-10 余ったCOBOLデータ項目の値
Array要素のに対するcountVar属性の指定 | 余ったCOBOLデータ項目の値 |
---|---|
countVar="yes"またはcountVarを指定していない | 不定となる |
countVar="no" | emptyValue属性値を設定する |
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE table1 [
<!ELEMENT table1 (row)*>
<!ELEMENT row (item1?,item2?)>
<!ELEMENT item1 (#PCDATA)>
<!ELEMENT item2 (#PCDATA)>
]>
<table1/>
<?xml version="1.0" encoding="Shift_JIS"?>
<Interface interfaceName="EXAMPLE">
<BaseElement elemName="table1">
<Group cobName="table1">
<Array max="100">
<Group elemName="row">
<Item elemName="item1"
type="alphanumeric" size="10"/>
<Item elemName="item2"
type="alphanumeric" size="10"/>
</Group>
</Array>
</Group>
</BaseElement>
</Interface>
01 table1.
02 row OCCURS 100.
03 item1 PIC X(10).
03 item2 PIC X(10).
02 row-COUNT PIC 9(9) USAGE COMP.
<?xml version="1.0" encoding="Shift_JIS"?>
<table1>
<row>
<item2/>
</row>
<row>
</row>
<row>
<item1/>
</row>
</table1>
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE table1 [
<!ELEMENT table1 (row)*>
<!ELEMENT row (item1?,item2?)>
<!ELEMENT item1 (#PCDATA)>
<!ELEMENT item2 (#PCDATA)>
]>
<table1/>
<?xml version="1.0" encoding="Shift_JIS"?>
<Interface interfaceName="EXAMPLE">
<BaseElement elemName="table1">
<Group cobName="table1">
<Array max="100">
<Group cobName="row">
<Item elemName="item1"
type="alphanumeric" size="10"/>
<Item elemName="item2"
type="alphanumeric" size="10"/>
</Group>
</Array>
</Group>
</BaseElement>
</Interface>
01 table1.
02 row OCCURS 100.
03 item1 PIC X(10).
03 item2 PIC X(10).
02 row-COUNT PIC 9(9) USAGE COMP.
<?xml version="1.0" encoding="Shift_JIS"?>
<table1>
<row>
<item2/>
</row>
<row>
</row>
<row>
<item1/>
</row>
</table1>
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE book [
<!ELEMENT book (chapter)*>
<!ELEMENT chapter (paragraph)*>
<!ELEMENT paragraph (sentence)*>
<!ELEMENT sentence (#PCDATA)>
]>
<book/>
<?xml version="1.0" encoding="Shift_JIS"?>
<Interface interfaceName="EXAMPLE">
<BaseElement elemName="paragraph">
<Group cobName="paragraph">
<Array max="20"
nameOfCountVar="NumSentences">
<Item elemName="sentence"
cobName="a-sentence"
type="alphanumeric"
size="1000"/>
</Array>
</Group>
</BaseElement>
</Interface>
01 paragraph.
02 a-sentence PIC X(1000) OCCURS 20.
02 NumSentences PIC 9(9) USAGE COMP.
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE root [
<!ELEMENT root ((group1*, item1)*)>
<!ELEMENT group1 (item2?)>
<!ELEMENT item1 (#PCDATA)>
<!ELEMENT item2 (#PCDATA)>
]>
<root/>
<?xml version="1.0" encoding="Shift_JIS"?>
<Interface interfaceName="EXAMPLE">
<BaseElement elemName="root" cobName="BE">
<Group elemName="root">
<Array max="4">
<Group cobName="grp0">
<Array max="4">
<Group elemName="group1">
<Item elemName="item2"/>
</Group>
</Array>
</Group>
</Array>
</Group>
</BaseElement>
</Interface>
01 root.
02 grp0 OCCURS 4.
03 group1 OCCURS 4.
04 item2 PIC X(100).
03 group1-COUNT PIC 9(9) USAGE COMP.
02 grp0-COUNT PIC 9(9) USAGE COMP.
<?xml version="1.0" encoding="Shift_JIS"?>
<root>
<group1> <item2>item2a1</item2> </group1>
<group1> <item2>item2a2</item2> </group1>
<group1> <item2>item2a3</item2> </group1>
<group1> <item2>item2a4</item2> </group1>
<item1/>
<group1> <item2>item2b1</item2> </group1>
<group1> <item2>item2b2</item2> </group1>
<group1> <item2>item2b3</item2> </group1>
<group1> <item2>item2b4</item2> </group1>
<item1/>
</root>
入出力データ情報定義機能を使用した場合のnameOfCountVar属性の指定例については,「3.2.4(1) nameOfTotalVar属性とnameOfCountVar属性の指定例」を参照してください。
入出力データ情報定義機能を使用した場合のnameOfTotalVar属性の指定例については,「3.2.4(1) nameOfTotalVar属性とnameOfCountVar属性の指定例」を参照してください。
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE book [
<!ELEMENT book (chapter)*>
<!ELEMENT chapter (paragraph)*>
<!ELEMENT paragraph (sentence)*>
<!ELEMENT sentence (#PCDATA)>
]>
<book/>
<?xml version="1.0" encoding="Shift_JIS"?>
<Interface interfaceName="EXAMPLE">
<BaseElement elemName="paragraph">
<Group cobName="paragraph">
<Array max="5" countVar="no">
<Item elemName="sentence"
cobName="a-sentence" type="alphanumeric"
size="100" emptyValue="SPACE"/>
</Array>
</Group>
</BaseElement>
</Interface>
01 paragraph.
02 a-sentence PIC X(100) OCCURS 5.
MOVE "This is sentence 1." TO a-sentence(1).
MOVE SPACE TO a-sentence(2).
MOVE "This is sentence 3." TO a-sentence(3).
MOVE SPACE TO a-sentence(4).
MOVE SPACE TO a-sentence(5).
<?xml version="1.0" encoding="Shift_JIS"?>
<book>
<chapter>
<paragraph>
<sentence>This is sentence 1.</sentence>
<sentence>This is sentence 3.</sentence>
</paragraph>
</chapter>
</book>
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE table [
<!ELEMENT table (person)*>
<!ELEMENT person (name?,address?)>
<!ELEMENT name (#PCDATA)>
<!ELEMENT address (#PCDATA)>
]>
<table/>
<?xml version="1.0" encoding="Shift_JIS"?>
<Interface interfaceName="EXAMPLE">
<BaseElement elemName="table">
<Group cobName="table1">
<Array max="3" countVar="no">
<Group elemName="person">
<Item elemName="name" cobName="name1"
emptyValue="SPACE"/>
<Item elemName="address"
cobName="address1" emptyValue="SPACE"/>
</Group>
</Array>
</Group>
</BaseElement>
</Interface>
01 table1.
02 person OCCURS 3.
03 name1 PIC X(100).
03 address1 PIC X(100).
MOVE 'name-1' TO name1(1).
MOVE 'address-1' TO address1(1).
MOVE SPACE TO name1(2).
MOVE SPACE TO address1(2).
MOVE 'name-3' TO name1(3).
MOVE SPACE TO address1(3).
<?xml version="1.0" encoding="Shift_JIS"?>
<table>
<person>
<name>name-1</name>
<address>address-1</address>
</person>
<person>
<name>name-3</name>
</person>
</table>