COBOL2002 XML連携機能ガイド
XML連携機能で処理するXMLドキュメントでは,次に示す文字エンコーディングを使用してください。
文字エンコーディングの指定を省略した場合はUTF-8を仮定します。
シフトJISコードのXMLドキュメントを解析する場合は,シフトJISコードからUnicodeへ変換して解析したあと,値をCOBOLデータ項目に入力するときに,UnicodeからシフトJISコードへ変換します。
XML不正文字は,Unicodeに変換したあとにチェックされ,エラーとして通知されます。XML不正文字については,「付録E.2(1) XML標準仕様での文字の範囲」を参照してください。シフトJISコードからUnicodeへの変換表を表E-1に示します。
表E-1 シフトJISでのコード範囲とUnicodeへの変換表
| 項番 | 説明 | コード範囲(16進数) | 備考 |
|---|---|---|---|
| 1 | 制御コード | 00-20 | ※1 |
| 2 | ASCII/JISローマ字 | 21-7e | x-sjis-cp932※2 |
| 3 | 半角かたかな | a1-df | |
| 4 | JIS X 0208-1990(第1バイト) | 81-9f e0-ec | |
| 5 | JIS X 0208-1990(第2バイト) | 40-7e 80-fc | |
| 6 | ユーザ定義文字(第1バイト) | f0-f9 | ユーザ外字※3 |
| 7 | ユーザ定義文字(第2バイト) | 40-7e 80-fc | |
| 8 | NEC選定IBM拡張漢字(第1バイト) | ed-ee | x-sjis-cp932※2 |
| 9 | NEC選定IBM拡張漢字(第2バイト) | 40-7e 80-fc | |
| 10 | IBM拡張漢字(第1バイト) | fa-fc | |
| 11 | IBM拡張漢字(第2バイト) | 40-7e 80-fc | |
| 12 | 項番1〜11以外の範囲 | 未定義※4 | |
日本語EUCのXMLドキュメントを解析する場合は,日本語EUCからUnicodeへ変換して解析したあと,値をCOBOLデータ項目に入力するときに,Unicodeから日本語EUCへ変換します。
日本語EUCでは,半角かな文字に半角英数字2文字分の領域が必要です。このため,XMLドキュメントの入出力で半角かな文字を使用する場合は,COBOLプログラム中で長さの扱いに注意してください。
XML不正文字は,Unicodeに変換したあとにチェックされ,エラーとして通知されます。XML不正文字については,「付録E.2(1) XML標準仕様での文字の範囲」を参照してください。日本語EUCからUnicodeへの変換表を表E-2に示します。
表E-2 日本語EUCでのコード範囲とUnicodeへの変換表
| 項番 | 説明 | コード範囲(16進数) | 備考 |
|---|---|---|---|
| 1 | 制御コード | 00-20 | ※1 |
| 2 | ASCII/JISローマ字 | 21-7E | x-eucjp-open-19970715-ms※2 |
| 3 | JIS X 0208-1990(第1バイト) | A1-FE | |
| 4 | JIS X 0208-1990(第2バイト) | A1-FE | |
| 5 | 半角かたかな(第1バイト) | 8E | |
| 6 | 半角かたかな(第2バイト) | A1-DF | |
| 7 | 項番1〜6以外の範囲 | 未定義※3 | |
表E-3 UTF-8でのコード範囲
| 項番 | 説明 | UTF-8のコード範囲※1(1バイト目) | UTF-8のコード範囲※1(2バイト目) | UTF-8のコード範囲※1(3バイト目) | UTF-8のコード範囲※1(4バイト目) | ISO-10646-UCS-4のコード範囲※1 | 備考 |
|---|---|---|---|---|---|---|---|
| 1 | 1バイト形式 | 00-7f | 00000000-0000007f | ||||
| 2 | 2バイト形式 | c2-df | 80-bf | 00000080-000007ff | |||
| 3 | 3バイト形式 | e0-ef | 80-bf | 80-bf | 00000800-0000ffff | ||
| 4 | 4バイト形式 | f0-f4 | 80-bf | 80-bf | 80-bf | 00010000-0010ffff※2 | |
| 5 | 項番1〜4以外の範囲 | 未定義※3 | |||||
表E-4 UTF-16でのコード範囲
| 項番 | 説明 | UTF-16のコード範囲※1 | ISO-10646-UCS-4のコード範囲※1※2 | 備考 |
|---|---|---|---|---|
| 1 | サロゲートペア以外のコード範囲※2 | 0000-d7ff | 00000000-0000d7ff | |
| 2 | e000-ffff | 0000e000-0000ffff | ||
| 3 | 上位のサロゲートのコード範囲※3 | d800-dbff | 00010000-0010ffff | |
| 4 | 下位のサロゲートのコード範囲※3 | dc00-dfff | ||
| 5 | 項番1〜4以外の範囲 | 未定義※4 | ||
表E-5 ISO-10646-UCS-2でのコード範囲
| 項番 | 説明 | コード範囲※1 | 備考 |
|---|---|---|---|
| 1 | アルファベット,かな,記号など | 0000-4dff | |
| 2 | CJK統一文字 | 4e00-9fff | |
| 3 | ユーザ定義外字領域 | e000-f8ff | |
| 4 | 全角アルファベット,半角かな文字 | f900-fffd | |
| 5 | 項番1〜4以外の範囲 | 未定義※2 | |
UnicodeからシフトJISへの変換は,シフトJISのコード範囲で,x-sjis-cp932の逆変換となります。ただし,シフトJISからUnicodeへの変換で,同じ字形を表す複数のコードから,Unicodeの一つのコードへ対応づけられているものについては,対応するコードの一つが逆変換に使用されるため,完全な逆変換とはなりません。
Unicodeから日本語EUCへの変換は,日本語EUCのコード範囲で,x-eucjp-open-19970715-msの逆変換となります。ただし,日本語EUCからUnicodeへの変換で,同じ字形を表す複数のコードから,Unicodeの一つのコードへ対応づけられているものについては,対応するコードの一つが逆変換に使用されるため,完全な逆変換とはなりません。
XML連携機能,およびXML連携機能の実行ライブラリで使用できる外字コードを,次に示します。なお,外字コードは,要素の値だけに使用できます。
シフトJIS,Unicode以外の外字コードは使用できません。
表E-6 使用できる外字コード
| 使用できるシフトJISでの外字コード(16進数) | Unicodeのユーザエリアでの文字コード(16進数) |
|---|---|
| f040〜f07e,f080〜f0fc | e000〜e0bb |
| f140〜f17e,f180〜f1fc | e0bc〜e177 |
| f240〜f27e,f280〜f2fc | e178〜e233 |
| f340〜f37e,f380〜f3fc | e234〜e2ef |
| f440〜f47e,f480〜f4fc | e2f0〜e3ab |
| f540〜f57e,f580〜f5fc | e3ac〜e467 |
| f640〜f67e,f680〜f6fc | e468〜e523 |
| f740〜f77e,f780〜f7fc | e524〜e5df |
| f840〜f87e,f880〜f8fc | e5e0〜e69b |
| f940〜f97e,f980〜f9fc | e69c〜e757 |
All Rights Reserved. Copyright (C) 2017, 2019, Hitachi, Ltd.