XML宣言を記述する

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

(Last modified: )

XML宣言を記述する

XML 文書の先頭には使用する XML のバージョンや文字コードについて記述した XML 宣言を記述します。 XML 宣言は次のように構文となっています。

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

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

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

最初に記述した XML 文書のサンプルを見てみると 1 行目に XML 宣言が記述されていました。 XML のバージョンは 1.0 で文字コードは UTF-8 となっています。

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

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

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

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

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

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

XML宣言を記述する(1)

このように XML 宣言で記述した文字コードと実際に XML 文書を保存する時に使用した文字コードは同じにする必要があります。

XML宣言を省略する

XML 宣言は XML 文書の文字コードとして UTF-8 または UTF-16 を使用している場合は省略することができます。

では実際に試してみます。次のサンプルでは XML 宣言を省略しています。 XML 文書は UTF-8 で保存してください。

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

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

この XML 文書をブラウザで開いてみると次のように正常に表示されます。

XML宣言を省略する(1)

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

先ほどの XML 宣言を省略したサンプルを今度は Shift_JIS で保存してみます。そしてブラウザで開いてみるとエラーが表示されます。

XML宣言を省略する(2)

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

-- --

XML 宣言を記述する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。