COBOL2002 XML連携機能ガイド

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

9.2 入出力時に不当な文字をチェックする機能

XMLドキュメントの入出力時に不当な文字をチェックする機能です。cblxmlコマンドの-chkcharオプションを指定することでチェックされる不当な文字のチェック範囲を拡張できます。

XMLドキュメント出力時,表9-2に従って不当な文字をチェックします。XMLドキュメント入力時,表9-3に従って不当な文字をチェックします。

CBLXML-WR-Interface-BaseElementアクセスルーチンでXMLドキュメント出力時に不当な文字を見つけた場合,ステータス11を返します。該当部分の要素,属性には空の値が出力されます。CBLXML-RD-Interface-BaseElementアクセスルーチンで,XMLドキュメントの入出力時に不当な文字を見つけた場合,ステータス8を返します。

type属性の値が「numeric」,「packed」,「binary」,「float」,および「double」のとき,数字,符号,小数点,"E",および"e"以外の文字は無視して入力されます。なお,XMLとして不正な文字は,XMLドキュメントを開く際にチェックされ,XMLアクセスルーチンのエラーステータス110(CBLXML-XML-PARSE-FAIL)が返されます。XML不正文字については,「付録E.2(1) XML標準仕様での文字の範囲」を参照してください。

表9-2 出力時にチェックする文字

type属性値 チェックする文字(-chkcharオプション指定あり) 不当な文字・数値があった場合の出力結果
alphanumeric
  • シフトJIS の場合
    0x00〜0x08,0x0b,0x0c,0x0e〜0x1f,0x80,0xa0,0xfd〜0xffとシフトJISの多バイト文字以外
  • 日本語EUCの場合
    0x00〜0x08,0x0b,0x0c,0x0e〜0x1f,0x80,0xa0,0xffと日本語EUCコードの多バイト文字以外
  • Unicodeの場合(環境変数CBLLANGがUNICODE)
    0x00〜0x08,0x0b,0x0c,0x0e〜0x1fとコード範囲(1バイト〜4バイト)以外
空の要素,属性を出力する。
national
  • シフトJIS の場合
    0x00〜0x08,0x0b,0x0c,0x0e〜0x1f,0x80,0xa0,0xfd〜0xffとシフトJISの多バイト文字以外
  • 日本語EUCの場合
    0x00〜0x08,0x0b,0x0c,0x0e〜0x1f,0x80,0xa0,0xffと日本語EUCコードの多バイト文字以外
  • Unicodeの場合(環境変数CBLLANGがUNICODE)
    UCS-2(0x0009,0x000a,0x000d,0x0020〜0x4dff,0x4e00〜0x9fff,0xe000〜0xf8ff,0xf900〜0xfffd)の範囲以外
空の要素,属性を出力する。
numeric
packed
数字・符号以外(COBOLの字類条件での数字検査(IS NUMERIC)を満たさない文字) 空の要素,属性を出力する。
binary
float
double
結果は保証しない。

(凡例)
−:チェックしない。

表9-3 入力時にチェックする文字

type属性の値 チェックする文字 不当な文字・数値があった場合の入力結果
-chkcharオプション指定なし -chkcharオプション指定あり
alphanumeric 結果は保証しない。
national
  • Unicode機能を使用しない場合:1バイトの文字
  • Unicode機能を使用する場合: −

  • Unicode機能を使用しない場合:1バイトの文字
  • Unicode機能を使用する場合: −

  • 1バイト文字は「[図データ]」(げた記号)に置き換える。
  • その他の不当な文字の結果は保証しない。
numeric
packed
binary

  • 数値以外
  • sign="unsigned"指定時に負値を入力した場合
  • けた数が320を超えた場合
結果は保証しない。
float
double

  • 数値以外
  • けた数が320を超えた場合
結果は保証しない。

(凡例)
−:チェックしない。

注※ 「[図データ]」(げた記号)は次に示すコードになります。
  • シフトJIS:0x81ac
  • 日本語EUC(UNIXの場合):0xa2ae
  • UTF-16(Unicode機能を使用した場合):0x3013