COBOL2002 XML連携機能ガイド
COBOL2002のUnicode機能に対応したXML連携機能を使用する場合,Unicode機能に対応したデータ定義ファイル(DDF)を作成し,cblxmlコマンドでUnicode機能に対応したXMLアクセスルーチンを生成する必要があります。
また,生成したXMLアクセスルーチン(COBOLソース)やXMLアクセス用データ定義(登録集原文),それを呼び出すユーザプログラムのCOBOLソースは,コンパイル時に-UniObjGenオプションを指定して,Unicode機能に対応したコンパイルを行う必要があります。
次にUnicode機能に対応したプログラムの作成手順を示します。
Unicode機能に対応したCOBOLソースの作成については,マニュアル「COBOL2002 使用の手引 手引編」または「COBOL2002 ユーザーズガイド」を参照してください。
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)を作成してください。
Unicode機能に対応したXMLアクセスルーチンやXMLアクセス用データ定義を生成するため,cblxmlコマンドに-unisrcオプションを指定してください。-unisrcオプションを指定した場合,cblxmlコマンドの-oオプションにUnicodeに変換すると多バイトになる文字は指定できません。
-unisrcオプションを指定したUnicode機能に対応したXMLアクセスルーチンやXMLアクセス用データ定義,Unicode機能に対応したユーザプログラムのCOBOLソースをコンパイルする場合,ccbl2002コマンドに-UniObjGenオプションを指定します。また,日本語項目の定数のバイトオーダを指定したい場合は-UniEndianオプションを指定します。
-UniObjGenオプションを指定して,生成されたオブジェクトをリンクします。
図H-1にXML連携機能を使用するUnicode機能に対応したCOBOLプログラムの作成の概略を示します。
図H-1 Unicode機能に対応したXML連携機能を使用するCOBOLプログラムの作成概略
All Rights Reserved. Copyright (C) 2003, 2016, Hitachi, Ltd.