COBOL2002 XML連携機能ガイド


9.3.5 文字エンコーディングが指定されたXMLドキュメント

〈この項の構成〉

(1) CBLXML-SET-ENCODINGサービスルーチン

出力するXMLドキュメントの文字エンコーディングは,CBLXML-SET-ENCODINGサービスルーチンで指定できます。

形式

CALL 'CBLXML-SET-ENCODING' USING XML-POINTER ENCODING-CODE.

引数

引数のデータ型

指定

説明

01 XML-POINTER USAGE POINTER.

XMLドキュメントのポインタを受け取るポインタ項目を指定する。

01 ENCODING-CODE PIC 9(9) COMP.

文字エンコーディングフラグを設定する領域を4バイトの2進項目で指定する。指定する値は,XMLアクセス用データ定義(CBLXMLRC.cbl)に登録されている文字エンコーディングフラグの値でなければならない。

(凡例)

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

戻り値

戻り値

内容

1

文字エンコーディングが無効である。

0

正常終了した。

-1

CBLXML-SET-ENCODINGサービスルーチンの引数の値が不正である。

-2

文字エンコーディングを変えることができない。

戻り値は,RETURN-CODE特殊レジスタに設定されます。

表9‒6 文字エンコーディングフラグ

登録集原文"CBLXMLRC.cbl"の定義名(78レベル)

文字エンコーディングフラグ値

文字エンコーディングの意味

CBLXML-EUC-ENCODING

1

EUC-JP

CBLXML-SJIS-ENCODING

2

Shift_JIS

CBLXML-UTF8-ENCODING

3

UTF-8

CBLXML-UTF16-ENCODING

4

Windows,Linuxの場合:UTF-16,リトルエンディアン

AIXの場合:UTF-16,ビッグエンディアン

CBLXML-UTF16BE-ENCODING

5

UTF-16,ビッグエンディアン

CBLXML-UTF16LE-ENCODING

6

UTF-16,リトルエンディアン

CBLXML-WIN31J-ENCODING

7

Windows-31J

規則
  • CBLXML-SET-ENCODINGサービスルーチンは,CBLXML-CREATE-XML-POINTERサービスルーチン,CBLXML-OP-Interfaceアクセスルーチン,またはCBLXML-OB-InterfaceアクセスルーチンでXMLドキュメントのポインタを作成後,CBLXML-WR-Interface-BaseElementアクセスルーチンを呼び出す前に実行してください。

  • XMLアクセスルーチンのアクセスモード'R'を指定して開いたXMLドキュメントに対しては,CBLXML-SET-ENCODINGサービスルーチンの呼び出しは無効となり,戻り値として1を返します。

  • CBLXML-SET-ENCODINGサービスルーチンを複数回呼び出した場合,最後の呼び出しが有効となります。

  • XMLアクセスルーチンのアクセスモード'W',または'U'を指定して開いたXMLドキュメントに対して,CBLXML-WR-Interface-BaseElementアクセスルーチンを呼び出したあと,CBLXML-CL-Interfaceアクセスルーチン,またはCBLXML-CN-Interfaceアクセスルーチンを呼び出す前にCBLXML-SET-ENCODINGサービスルーチンを実行した場合は出力エンコーディングを変えることはできません。この場合,CBLXML-SET-ENCODINGサービスルーチンは戻り値として-2を返します。