COBOL2002 XML連携機能ガイド


4.2.2 CBLXML-OP-Interfaceアクセスルーチン

CBLXML-OP-Interfaceアクセスルーチンは,ファイル上のXMLドキュメントを開くためのアクセスルーチンです。このアクセスルーチンで開いたXMLドキュメントは,CBLXML-RD-Interface-BaseElementアクセスルーチンやCBLXML-WR-Interface-BaseElementアクセスルーチンを使ってデータを読み書きできます。

形式
CALL 'CBLXML-OP-Interface'
                USING XML-FILE-NAME
                      XML-FILE-NAME-LENGTH
                      XML-MODE
                      XML-POINTER
                RETURNING CBLXML-RETURN-CODE.
引数

引数のデータ型

指定

説明

01 XML-FILE-NAME

USAGE POINTER.

開くXMLドキュメントのファイル名を指すポインタを指定する。

01 XML-FILE-NAME-LENGTH

PIC 9(9) COMP.

開くXMLドキュメントのファイル名の長さを指定する。

01 XML-MODE PIC X(16).

XMLドキュメントのアクセスモードを指定する。

01 XML-POINTER

USAGE POINTER.

アクセスモードに'E'を指定しない場合,開いたXMLドキュメントのポインタが返される。

XMLドキュメントを開くことに失敗した場合,ポインタの値は保証しない。

アクセスモードに'E'を指定した場合,CBLXML-CREATE-XML-POINTERサービスルーチンで作成したXMLドキュメントのポインタを指定する。

01 CBLXML-RETURN-CODE

PIC 9(9) COMP.

ステータスが返される。詳細については,「7.3 XMLアクセスルーチンが返すステータス」を参照のこと。

(凡例)

○:アクセスルーチンの呼び出し時,値を設定しておく項目

△:アクセスルーチンの完了時,値が設定される項目

注※

指定できるアクセスモード文字列を示します。括弧内の文字は省略できます。また,順不同です。

  • R〔V〕〔N〕〔E〕

  • W〔E〕

  • U〔V〕〔N〕〔E〕

アクセスモード文字列と意味

文字列

意味

R

読み取りモード

W

書き込みモード

U

更新モード

V

妥当性チェックをする。妥当性チェック機能については,「7.2.8 入力XMLドキュメントの妥当性チェック機能」を参照のこと。

N

外部エンティティ参照を展開しない。

E

エラー情報取得機能や公開識別子を使用するために,サービスルーチンの設定を引き継ぐ。エラー情報取得機能や公開識別子については「9.3.2 エラー情報の取得」と「9.3.3 公開識別子が指定されたXMLドキュメント」を参照のこと。

規則
  • 引数XML-MODEには,1バイト目からアクセスモードを示す文字を指定し,残りの領域には空白を指定します。

  • XMLドキュメントを開くことに成功した場合,取得したXMLドキュメントのポインタを用いてCBLXML-CL-Interfaceアクセスルーチン,またはCBLXML-CN-InterfaceアクセスルーチンでXMLドキュメントを閉じなければなりません。

  • CBLXML-OP-Interfaceアクセスルーチンは,開こうとしているXMLドキュメントがすでに開かれているかどうかチェックしません。すでに開かれているXMLドキュメントに対してCBLXML-OP-Interfaceアクセスルーチンを実行すると,そのXMLドキュメントに対する新しいXMLドキュメントのポインタが返されます。

  • 読み取りモードまたは更新モードでは,アクセスモードに'V'と'N'を同時に指定できません。同時に指定したとき,あとに指定した文字列が有効となります。

  • アクセスモードに'N'を指定したとき,外部エンティティ参照の該当する個所にはテキストデータがないものとして解析します。

  • 環境変数CBLXML_PARSE_NOXXEに'YES'を指定した場合,アクセスモードに'V'を指定していても,入力XMLドキュメントの妥当性チェック機能は無効となります。詳細については,「付録E.4 使用できる解析モードによる動作の違い」を参照してください。

注意事項

CBLXML-OP-Interfaceアクセスルーチンが返すステータスが110の場合は,CBLXML-GET-ERRORサービスルーチンを使用して詳細なエラー情報を取得できます。詳細については,「9.3.2 エラー情報の取得」を参照してください。