COBOL2002 XML連携機能ガイド
XMLドキュメントの更新をする場合のXMLアクセスルーチンの呼び出し順を次に示します。
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE root [ <!ELEMENT root (X)> <!ELEMENT X (A,B?)> <!ELEMENT A (#PCDATA)> <!ELEMENT B (#PCDATA)> ]> <root/>
<?xml version="1.0" encoding="Shift_JIS"?> <Interface interfaceName="EXAMPLE"> <BaseElement elemName="X"> <Group elemName="X" update="yes"> <Item elemName="A" size="5"/> <Item elemName="B" size="5"/> </Group> </BaseElement> </Interface>
01 X. 02 A PIC X(5). 02 B PIC X(5).
: * open MOVE 'U' TO XML-MODE. MOVE 'data.xml' TO FILE-NAME. MOVE 8 TO XML-FILE-NAME-LENGTH. COMPUTE XML-FILE-NAME = FUNCTION ADDR(FILE-NAME). CALL 'CBLXML-OP-EXAMPLE' …1. USING XML-FILE-NAME XML-FILE-NAME-LENGTH XML-MODE XML-POINTER RETURNING CBLXML-RETURN-CODE. * read CALL 'CBLXML-RD-EXAMPLE-X' …2. USING XML-POINTER X RETURNING CBLXML-RETURN-CODE. MOVE 'new A' TO A. MOVE 'new B' TO B. * write CALL 'CBLXML-WR-EXAMPLE-X' …3. USING XML-POINTER X RETURNING CBLXML-RETURN-CODE. * close CALL 'CBLXML-CL-EXAMPLE' …4. USING XML-POINTER RETURNING CBLXML-RETURN-CODE. :
XMLドキュメント
<?xml version="1.0" encoding="Shift_JIS"?> <root> <X> <A>AAA01</A> <B>BBB01</B> </X> </root>
<?xml version="1.0" encoding="Shift_JIS"?> <root> <X> <A>new A</A> <B>new B</B> </X> </root>
CBLXML-OP-xyz ("U"更新モードでXMLドキュメントを開く) CBLXML-RD-xyz-row (1回目のrow要素を入力する) CBLXML-RD-xyz-row (2回目のrow要素を入力する) CBLXML-RD-xyz-row (3回目のrow要素を入力する) ADD 1 TO QUANTITY OF ROW (更新したい要素に値を指定する) CBLXML-WR-xyz-row (3回目のrow要素を更新する) CBLXML-CL-xyz (XMLドキュメントを閉じる)
update属性に"yes"を指定したGroup要素をelemName属性で対応づけた場合,Group要素以下が更新の対象になります。cobName属性だけで対応づけた場合は,Group要素の直下のGroup要素,およびItem要素以下が更新の対象となります。
次に,elemName属性で対応づけた場合と,cobName属性で対応づけた場合の例を示します。
<?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE root [ <!ELEMENT root (X)> <!ELEMENT X (A,B)> <!ELEMENT A (#PCDATA)> <!ELEMENT B (#PCDATA)> ]> <root/>
<?xml version="1.0" encoding="Shift_JIS"?> <Interface interfaceName="EXAMPLE"> <BaseElement elemName="X"> <Group elemName="X" update="yes"> <Item elemName="A" size="5"/> <Item elemName="B" size="5"/> </Group> </BaseElement> </Interface>
<?xml version="1.0" encoding="Shift_JIS"?> <Interface interfaceName="EXAMPLE"> <BaseElement elemName="X"> <Group cobName="X" update="yes"> <Item elemName="A" size="5"/> <Item elemName="B" size="5"/> </Group> </BaseElement> </Interface>
01 X. 02 A PIC X(5). 02 B PIC X(5).
<?xml version="1.0" encoding="Shift_JIS"?> <root> <X> <A>AAA</A> <!-- COMMENT --> <B>BBB</B> </X> </root>
<?xml version="1.0" encoding="Shift_JIS"?> <root> <X> <A>New A</A> <B>New B</B> </X> </root>
<root> <X> <A>New A</A> <!-- COMMENT --> <B>New B</B> </X> </root>
All Rights Reserved. Copyright (C) 2003, 2016, Hitachi, Ltd.