COBOL2002 XML連携機能ガイド


付録H.1 COBOL2002のUnicode機能に対応したXML連携機能を使用するCOBOLプログラムの作成

COBOL2002のUnicode機能に対応したXML連携機能を使用する場合,Unicode機能に対応したデータ定義ファイル(DDF)を作成し,cblxmlコマンドでUnicode機能に対応したXMLアクセスルーチンを生成する必要があります。

また,生成したXMLアクセスルーチン(COBOLソース)やXMLアクセス用データ定義(登録集原文),それを呼び出すユーザプログラムのCOBOLソースは,コンパイル時に-UniObjGenオプションを指定して,Unicode機能に対応したコンパイルを行う必要があります。

次にUnicode機能に対応したプログラムの作成手順を示します。

〈この項の構成〉

(1) Unicode機能に対応したCOBOLソースの作成

Unicode機能に対応したCOBOLソースの作成については,マニュアル「COBOL2002 使用の手引 手引編」または「COBOL2002 ユーザーズガイド」を参照してください。

(2) Unicode機能に対応したデータ定義ファイル(DDF)の作成

COBOL2002のUnicode機能を使用する場合,XMLドキュメントから入力する値や,DDFでItem要素のemptyValue属性などに指定する値が,Unicodeに変換されることを考慮した設計が必要です。

例えば,COBOLの英数字項目(UTF-8)に,文字エンコーディングがShift_JIS(シフトJIS)のXMLドキュメントから値'日立'を入力する場合,表H-1に示すように文字コードによって1文字を構成するバイト数が異なるため,DDFに指定するsize属性のけた数は,UTF-8の文字列として格納できるけた数を設定する必要があります。この例ではUTF-8に変換されることを考慮し,DDFでのsize属性には6を指定する必要があります。

表H‒1 文字コードによる長さの違いの例

文字

シフトJIS

0x93FA

0x97A7

UTF-8

0xE697A5

0xE7AB8B

次の仕様に従ってデータ定義ファイル(DDF)を作成してください。

(3) Unicode機能に対応したXMLアクセスルーチンやXMLアクセス用データ定義の生成

Unicode機能に対応したXMLアクセスルーチンやXMLアクセス用データ定義を生成するため,cblxmlコマンドに-unisrcオプションを指定してください。-unisrcオプションを指定した場合,cblxmlコマンドの-oオプションにUnicodeに変換すると多バイトになる文字は指定できません。

(4) Unicode機能に対応したCOBOLソースのコンパイル

-unisrcオプションを指定したUnicode機能に対応したXMLアクセスルーチンやXMLアクセス用データ定義,Unicode機能に対応したユーザプログラムのCOBOLソースをコンパイルする場合,ccbl2002コマンドに-UniObjGenオプションを指定します。また,日本語項目の定数のバイトオーダを指定したい場合は-UniEndianオプションを指定します。

(5) オブジェクトのリンク

-UniObjGenオプションを指定して,生成されたオブジェクトをリンクします。

図H-1にXML連携機能を使用するUnicode機能に対応したCOBOLプログラムの作成の概略を示します。

図H‒1 Unicode機能に対応したXML連携機能を使用するCOBOLプログラムの作成概略

[図データ]