UnicodeのXML文書はどのように作るのですか?
取引先から、XML文書をシフトJISではなくUnicodeで欲しいといわれました。UnicodeのXML文書は言語タグのところを変えるだけでいいのでしょうか? また、どんなツールを使えばUnicodeでXML文書が作成できるのでしょうか?

回答/富士ソフトABC株式会社 技術センター
2001/4/27

 Windowsで一般のテキストエディタなどを利用して文書を作成すると、全角文字がシフトJISコードで保存され、シフトJISコードのXML文書が作成されます。これを、Unicodeに変えるには、幾つかの方法とポイントがあります。

 その前に、Unicodeについて簡単に説明しましょう。

 Unicodeとは、Unicodeコンソーシアムによって、世界各国に複数存在する文字コード体系を一本化することを目的に作られたコード体系です。Unicodeでは、日本語の文字も、中国語の文字やハングル文字も、それぞれ固有のコードが割り当てられています。 XML文書で広く用いられているのは、Unicodeの中でも8ビットエンコーディングされた「UTF-8」と呼ばれるものです。

 質問に、 「UnicodeのXML文書は言語タグのところを変えるだけでいいのでしょうか」とありますが、この「言語タグ」は、XML宣言部分の encoding属性(符号化宣言)の部分を指していると思われます。しかし、XML宣言の符号化宣言部分を <xml encoding="UTF-8"> としただけでは、残念ながらXML文書を Unicode化したことにはなりません。

<?xml version="1.0" encoding="shift-jis"?>
<Test>全角文字が入っています</Test>
シフトJISで書かれたXML文書

<?xml version="1.0" encoding="UTF-8"?>
<Test>全角文字が入っています</Test>
符号化宣言部分だけを Unicode にしたXML文書

 XML文書の中で全角文字列がシフトJISで記述されている場合には、符号化宣言を単に変更しただけでは、下に示すようにXMLパーサがエラーを返します。

XMLパーサ(Microsoft Internet Explorer)でのエラー表示

 符号化宣言は、当該のXML文書がどのようなコードで書かれているかを宣言する部分ですので、文書内容のコード体系と合わせて宣言する必要があります。膨大なコード体系を処理する必要のあるXMLパーサが誤りなくXML文書を処理するために重要な宣言ですので、忘れずに宣言してください。ただし、符号化宣言のないXML文書はUTF-8 として処理されます。ASCII文字はUTF-8のサブセットになっていますので、すべてASCII文字セットで書かれたXML文書ならば、符号化宣言なしでもXMLパーサによる処理が可能です。

 では、どのようなツールを使えばUnicodeでXML文書を作成できるのか、ご紹介しましょう。

 Windows 2000では、内部の文字コードにUnicodeが採用されていますので、「メモ帳」を利用してXML文書を作成できます。すでにシフトJISの文書があれば、

  1. Unicodeに変換したいXML文書を「メモ帳」でオープンする
  2. 符号化宣言部分をUTF-8に書き直す(encoding="UTF-8")
  3. [ファイル]-[名前を付けて保存]メニューを選択する
  4. ダイアログボックス内のプルダウンメニューで[文字コード]を[UTF-8]に設定して、保存する

注:[文字コード]を[Unicode]に設定して保存する場合には、符号化宣言部分を encoding="UTF-16" とします。また、Macintoshなどで使用されている「Unicode big endian」形式で保存する場合にも、符号化宣言部分を encoding="UTF-16" とします。

<?xml version="1.0" encoding="UTF-8"?>
<Test>全角文字が入っています</Test>
 「メモ帳」で変換したUnicode形式のXML文書の場合、符合化宣言部分を"UTF-8"にする

 Windows 2000の環境以外でも、「秀丸エディタ」など、最近では多くのテキストエディタが、Unicodeでの保存に対応しているので、それらも同様にXML文書をUnicodeで作成するのに使用できます。もちろん、メモ帳やテキストエディタなどでコード変換を行う場合にも、それに応じてXML文書の符号化宣言部分を修正しなければなりません。

 市販のXMLエディタを使用するともっと簡単にUnicodeのXML文書に変換できます。アンテナハウス株式会社の「TagEditor」などには、指定したエンコード形式でXML文書を作成できる機能があります。

「Ask XML Expert」


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

注目のテーマ

HTML5+UX 記事ランキング

本日月間