COBOL2002 XML連携機能ガイド

[目次][用語][索引][前へ][次へ]

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

<この項の構成>
(1) CBLXML-SET-ENCODINGサービスルーチン

(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
(PC,HP-UX(IPF),AIX,Linux(x86),Linux(x64)の場合)
3 UTF-8
CBLXML-UTF16-ENCODING
(PC,HP-UX(IPF),AIX,Linux(x86),Linux(x64)の場合)
4 PC,Linux(x86),Linux(x64)の場合:UTF-16,リトルエンディアン
HP-UX(IPF),AIXの場合:UTF-16,ビッグエンディアン
CBLXML-UTF16BE-ENCODING
(PC,HP-UX(IPF),AIX,Linux(x86),Linux(x64)の場合)
5 UTF-16,ビッグエンディアン
CBLXML-UTF16LE-ENCODING
(PC,HP-UX(IPF),AIX,Linux(x86),Linux(x64)の場合)
6 UTF-16,リトルエンディアン

規則
  • 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を返します。