XML日本語プロファイル

XML Japanese Profile

 XMLは、もともと国際化を前提に作成された仕様であるため、正しくXML対応したXMLアプリケーションプログラムは、日本語の文字を扱うことができる。システムの制限によって表示できないということはあっても、日本語文字の文字コードが処理の結果化けてしまうような事態は起こらない。これは、XMLが最初からISO/IEC-10646(Unicode)だけを前提にして設計されていることによって得られるメリットである。

 ISO/IEC-10646(Unicode)は、全世界の文字を収録することを目標に作成された文字集合である。これには、JIS X 0201. JIS X 0208, JIS X 0212など、主要な日本語文字集合規格の文字が収録されており、日本語での利用に関しては、特に不自由はないものである。一部に、ISO/IEC-10646(Unicode)に対する無理解からくる「ISO/IEC-10646(Unicode)が日本語を破壊する」といった論調を主張する者達が居るのは残念なことであるが、XMLがISO/IEC-10646(Unicode)を採用したことにより、アメリカの最先端ソフトを日本語化を待つことなく日本ですぐ利用できるというメリットが生じていることは紛れもない事実である。

 XMLはISO/IEC-10646(Unicode)の文字エンコーディングスキームであるUTF-16とUTF-8を必須要件として定めているため、このどちらかを使用してXML文書を作成するかぎり、全てのXMLアプリケーションソフトで取り扱い可能という前提を置くことができる。しかし、この2つ以外のものの利用が禁止されているわけではなく、ISO/IEC-10646(Unicode)のサブセットとなる文字エンコーディングスキーム(日本語で言うとシフトJIS、EUC-JP、ISO-2022-JPなど)の利用も許されている。ただし、これらは、全てオプションであるため、あらゆるXMLアプリケーションソフトで利用可能かどうかは分からない。

 実際のXMLアプリケーションソフトの多くは、シフトJIS、EUC-JP、ISO-2022-JPなどで入力されたXML文書であっても、すべてISO/IEC-10646(Unicode)に変換してから処理する。そのため、ISO/IEC-10646(Unicode)との間の文字コード変換が行われる。ISO/IEC-10646(Unicode)に変換しないで処理するとしても、XMLには文字参照という構文によって、ISO/IEC-10646(Unicode)の文字コードを直接記述して文字を指定する機能があるため、ISO/IEC-10646(Unicode)以外で処理する場合にはその時点で文字コード変換が必要とされる。

 このとき、文字コード変換に使用される変換テーブルが世の中には複数存在する。つまり、シフトJISなどのある文字を、ISO/IEC-10646(Unicode)に変換したときに、違うコードに変換されてしまうケースが存在する。その結果、安全な情報交換はできないことになる。

 この問題を詳しく調査して、具体的な変換テーブルの相違と、変換において発生する問題点を明らかにしたものが、XML日本語プロファイルである。

 XML日本語プロファイルは、JIS TRとして作成されたが、日本人以外の国際化に興味を持つXML関係者にも重要であるため、英訳されW3CよりNoteとして公開されている。

 XML日本語プロファイルの結論は、安全なXML文書の交換のためには、シフトJIS、EUC-JP、ISO-2022-JPは使用せず、UTF-16またはUTF-8を使用するべき、というものである。

XML & SOA フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

アイティメディアの提供サービス

キャリアアップ