COBOL2002 XML連携機能ガイド


4.1.1 cblxmlコマンドの使用方法

〈この項の構成〉

(1) cblxmlコマンドの実行に必要な環境変数の設定

cblxmlコマンドを実行する場合は,次に示す環境変数を設定しておく必要があります。

(UNIXの場合)
  • システム環境変数PATH

    cblxmlコマンドの格納パスを設定します。次の値を指定してください。

    COBOL2002のインストールディレクトリ/bin

  • システム環境変数LIBPATH(AIXの場合)

    共用ライブラリの格納パスを設定します。次の値を指定してください。

    COBOL2002のインストールディレクトリ/lib

  • システム環境変数LD_LIBRARY_PATH(Linuxの場合)

    共用ライブラリの格納パスを設定します。次の値を指定してください。

    COBOL2002のインストールディレクトリ/lib:COBOL2002のインストールディレクトリ/lib/cblxml

  • システム環境変数NLSPATH

    XMLパーサが出力するメッセージのパスを設定します。次の値を指定してください。

    COBOL2002のインストールディレクトリ/lib/cblxml/cat/%L/%N

(例)

sh(Bシェル)の場合

NLSPATH=/opt/HILNGcbl2k/lib/cblxml/cat/%L/%N
export NLSPATH
  • システム環境変数LANG

     メッセージの言語種別を設定します。次の値を指定してください。

     AIXの場合

      Ja_JP

      ja_JP

     Linuxの場合

      ja_JP.UTF-8

    文字コードについては,「付録G.2 文字コード」を参照してください。

COBOL2002のインストールディレクトリは,OSによって異なります。

AIX(32),Linux(x86)の場合

 /opt/HILNGcbl2k

AIX(64),Linux(x64)の場合

 /opt/HILNGcbl2k64

(Windowsの場合)
  • システム環境変数PATH

    cblxmlコマンドの格納パスを設定します。次の値を指定してください。

    COBOL2002のインストールフォルダ\bin

  • システム環境変数LIB

    共用ライブラリの格納パスを設定します。次の値を指定してください。

    COBOL2002のインストールフォルダ\lib

(例)

set LIB=COBOL2002のインストールフォルダ\lib

(2) cblxmlコマンドの実行

cblxmlコマンドの実行方法について説明します。

形式
cblxml DDFファイル名 -dtd DTDファイル名
       -o 生成するCOBOL副プログラムのファイル名
       〔-catalog カタログファイル名〕
       〔-nopeconv〕 〔-chkovflow〕 〔-chkchar〕
       〔-gen 生成アクセスルーチンキーワード〕
       〔-outencoding エンコーディングキーワード〕
       〔-unisrc〕〔-bigendianbin〕〔-bigendianfloat〕
DDFファイル名

DTDに対応して作成したDDFファイル名を指定します。DDFファイル名の拡張子は「.cxd」でなければなりません。

DDFファイルでは,使用する文字エンコーディングをXML宣言で指定します。使用できる文字エンコーディングについては,「付録G.1 XMLドキュメントの文字エンコーディング」を参照してください。使用できない文字エンコーディングを指定した場合,動作は保証しません。

DDFファイルに文字エンコーディングの指定がない場合,「UTF-8」を仮定します。

-dtd DTDファイル名

COBOLプログラムのアクセス対象とするXMLドキュメントのDTDファイル名を指定します。DTDファイル名の拡張子は「.xml」または「.dtd」でなければなりません。

DTDファイルでは,使用する文字エンコーディングをXML宣言で指定します。使用できる文字エンコーディングについては,「付録G.1 XMLドキュメントの文字エンコーディング」を参照してください。使用できない文字エンコーディングを指定した場合,動作は保証しません。

DTDファイルに文字エンコーディングの指定がない場合,「UTF-8」を仮定します。

注※

 「.dtd」はWindowsの場合だけで有効です。

-o 生成するCOBOL副プログラムのファイル名

cblxmlコマンドが出力するXMLアクセスルーチンのファイル名を指定します。指定するファイル名の拡張子は,「.cbl」でなければなりません。

なお,cblxmlコマンドが出力するXMLアクセス用データ定義のファイル名は,XMLアクセスルーチンのファイル名の末尾に「-COPY」を付けた名称となります。

出力するCOBOL原始プログラムは固定形式正書法で出力されます。

-catalog カタログファイル名

公開識別子を使用するためのカタログファイル名を指定します。拡張子は「.cxc」でなければなりません。

詳細については,「9.3.3 公開識別子が指定されたXMLドキュメント」を参照してください。

-nopeconv

verbatim属性に"yes"を指定していない場合,XMLドキュメントの出力時に定義済み実体を変換しません。

詳細については,「付録D.1 定義済み実体参照」を参照してください。

-chkovflow

XMLドキュメントの入力時にオーバフローが発生した場合,ステータス10を返します。

詳細については,「9.1 入力時のオーバフローをステータスで返す機能」を参照してください。

-chkchar

XMLドキュメントの入出力時に不当な文字のチェック範囲を拡張します。

詳細については,「9.2 入出力時に不当な文字をチェックする機能」を参照してください。

-gen 生成アクセスルーチンキーワード

生成アクセスルーチンキーワードに指定したXMLアクセスルーチンだけを生成します。

詳細については,「4.1.2 -genオプション」を参照してください。

-outencoding エンコーディングキーワード

XMLアクセスルーチンで出力するXMLドキュメントの文字エンコーディングを指定します。指定できるエンコーディングキーワードは,sjis,euc,utf8,utf16,utf16beまたはutf16leです。大文字は指定できません。エンコーディングキーワードと出力するXMLドキュメントの文字エンコーディングの対応を次に示します。詳細については,「付録G.1 表G-3 出力するXMLドキュメントの文字エンコーディングの設定方法」を参照してください。

エンコーディングキーワード

出力するXMLドキュメントの文字エンコーディング(encoding属性の値)

sjis

Shift_JIS

win31j

Windows-31J

euc

EUC-JP

utf8

UTF-8

utf16

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

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

utf16be

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

utf16le

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

-unisrc

Unicode機能に対応したXMLアクセスルーチンを生成します。詳細については,「付録H Unicode機能」を参照してください。

-bigendianbin(Windows,Linuxの場合)

XMLデータに対応する2進形式の数字項目をビッグエンディアン形式として扱う場合に指定します。詳細については,「4.1.4 -bigendianbinオプション(Windows,Linuxの場合)」を参照してください。

-bigendianfloat(Windows,Linuxの場合)

XMLデータに対応する浮動小数点形式の数字項目をビッグエンディアン形式として扱う場合に指定します。詳細については,「4.1.5 -bigendianfloatオプション(Windows,Linuxの場合)」を参照してください。

cblxmlコマンドの戻り値

戻り値

内容

0

正常終了した。

1

正常終了した。

ただし,警告メッセージが出力されている。

2

エラー終了した。

指定例
cblxml data.cxd -dtd data.xml -o subprog.cbl

DTD「data.xml」とDDF「data.cxd」の定義を基に,XMLアクセスルーチンの副プログラムファイル「subprog.cbl」とXMLアクセス用データ定義の登録集原文ファイル「subprog-COPY.cbl」が生成されます。

注意事項
  • cblxmlコマンドによって生成されたCOBOL副プログラム(XMLアクセスルーチン),および登録集原文(XMLアクセス用データ定義)の内容を編集しないでください。これらのファイルを編集した場合,実行時の動作は保証しません。

  • cblxmlコマンドでは,生成するCOBOL副プログラム(XMLアクセスルーチン),および登録集原文(XMLアクセス用データ定義)の領域の大きさについて,COBOL2002コンパイラの制限を超えたかどうかをチェックしません。コンパイラの制限値については,マニュアル「COBOL2002 使用の手引 手引編」または「COBOL2002 ユーザーズガイド」を参照してください。