Interface要素は,COBOLプログラムとXMLとを対応づけるインタフェースを宣言する要素です。Interface要素を定義すると,XMLドキュメントにアクセスするためのCOBOL副プログラム(XMLアクセスルーチン)や登録集原文(XMLアクセス用データ定義)などのインタフェースが対応して生成されます。
Interface要素は,ドキュメントのルート(最上位の要素)としてDDL中に1回だけ記述できます。また,子要素として一つ以上のBaseElement要素を持つ必要があります。
<?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="person">
<Group elemName="person">
<Item elemName="name" cobName="FULLNAME"
type="alphanumeric" size="30"/>
<Item elemName="address" cobName="FULLADDRESS"
type="alphanumeric" size="120"/>
</Group>
</BaseElement>
</Interface>
01 person.
02 FULLNAME PIC X(30).
02 FULLADDRESS PIC X(120).
:
CALL 'CBLXML-OP-EXAMPLE'
USING XML-FILE-NAME-POINTER XML-FILE-LENGTH
XML-FILE-MODE XML-POINTER
RETURNING CBLXML-RETURN-CODE.
:
<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE root [
<!ELEMENT root (item01, item02)>
<!ELEMENT item01 (#PCDATA)>
<!ELEMENT item02 (itema, itemb)*>
<!ELEMENT itema (#PCDATA)>
<!ELEMENT itemb (#PCDATA)>
]>
<root/>
<?xml version="1.0" encoding="Shift_JIS"?>
<Interface interfaceName="EXAMPLE"
accessInfo="yes">
<BaseElement elemName="root">
<Group cobName="root">
<Item elemName="item01" type="alphanumeric"
size="10" />
<Array max="10">
<Group cobName="item02">
<Item elemName="itema"
type="alphanumeric" size="10" />
<Item elemName="itemb"
type="alphanumeric" size="10" />
</Group>
</Array>
</Group>
</BaseElement>
</Interface>
01 root-BASE.
02 root.
03 item01 PIC X(10).
03 item02 OCCURS 10.
04 itema PIC X(10).
04 itemb PIC X(10).
* Access Information
02 root-GROUP.
03 item01-FLG PIC 1(32) USAGE BIT.
03 item01-LEN PIC 9(9) COMP.
03 item02-TOTAL PIC 9(9) COMP.
03 item02-COUNT PIC 9(9) COMP.
03 item02-GROUP OCCURS 10.
04 itema-FLG PIC 1(32) USAGE BIT.
04 itema-LEN PIC 9(9) COMP.
04 itemb-FLG PIC 1(32) USAGE BIT.
04 itemb-LEN PIC 9(9) COMP.