XML宣言とは

広告

XML文書の先頭には使用するXMLのバージョンや文字コードについて記述したXML宣言を記述します。ここではXML宣言の記述方法について解説します。

1.XML宣言を記述する
2.XML宣言を省略する

XML宣言はXML文書に先頭に記述し、次のように構文となっています。

<?xml version="バージョン" encoding="文字コード" ?>

バージョンには使用するXMLのバージョンを記述します。XMLのバージョンは「1.0」や「1.1」がありますが、現時点では「1.0」を指定されるケースがほとんどのようです。

文字コードにはXML文書を保存する時に使用した文字コードを記述して下さい。「UTF-8」で保存したバイアは「UTF-8」で、「Shift_JIS」や「EUC-JP」で保存した場合はその文字コードを記述します。

前のページで見たXML文書のサンプルを見てください。

<?xml version="1.0" encoding="UTF-8" ?>
<foods>
  <food>
    <name>バナナ</name>
    <color>黄色</color>
  </food>

  <food>
    <name>リンゴ</name>
    <color>赤</color>
  </food>
</foods>

1行目にXML宣言が記述されています。XMLのバージョンは「1.0」で文字コードは「UTF-8」となっています。

XML宣言で記述している文字コードと実際に使っている文字コードが異なる場合エラーとなります。次のサンプルはXML文書は「UTF-8」で保存しているのでXML宣言では「Shift_JIS」と記述したものです。

sample2_1.xml

<?xml version="1.0" encoding="Shift_JIS" ?>
<foods>
  <food>
    <name>バナナ</name>
    <color>黄色</color>
  </food>

  <food>
    <name>リンゴ</name>
    <color>赤</color>
  </food>
</foods>

このファイルをブラウザで開いてみると次のようにエラーが表示されました。

p2-1

文字コードには実際に使っている文字コードを記述して下さい。

XML宣言はXML文書の文字コードとして「UTF-8」または「UTF-16」を使用している場合は省略することができます。次のサンプルはXML宣言を省略しXML文書を「UTF-8」で保存したものです。

sample2_2.xml

<foods>
  <food>
    <name>バナナ</name>
    <color>黄色</color>
  </food>

  <food>
    <name>リンゴ</name>
    <color>赤</color>
  </food>
</foods>

このファイルをブラウザで開いてみると次のように正常に表示されます。

p2-2

XML宣言を省略した場合、文字コードとして「UTF-8」または「UTF-16」が使用されていると判断されます。その為、他の文字コードで使用しているのにXML宣言を省略すると文字コードが違っているというエラーが表示されます。次のサンプルはXML宣言を省略しXML文書を「Shift_JIS」で保存したものです。

sample2_3.xml

<foods>
  <food>
    <name>バナナ</name>
    <color>黄色</color>
  </food>

  <food>
    <name>リンゴ</name>
    <color>赤</color>
  </food>
</foods>

このファイルをブラウザで開いてみると次のようにエラーが表示されました。

p2-3

このように文字コードとして「UTF-8」を使用する場合にはXML宣言は省略可能ですが、意図的に省略したのか書き忘れてしまったのか判断がしにくいので「UTF-8」を使用する場合も記述しておくことをお勧めします。

( Written by Tatsuo Ikura )