Section 2 : XML の書法

 XHTML は XML アプリケーションである。まず,その XML の基本的な書法を解説しておこう。

大文字と小文字

 HTML では,要素の種類名,属性名など,大文字と小文字を区別しない部分が多かった。しかし,XHTML を含めた XML では,多くの場面で 大文字と小文字を区別する。したがって,とくに断らない限り,大文字と小文字は区別されると理解していただきたい。

XML ファイル

 XML で書かれた文書をファイルとして作成するとき,要素が書かれる前に XML 宣言DOCTYPE 宣言 を書く。これらは,省略されることもある。

 XML 宣言は,ファイルの先頭に,次のように書かれる。

<?xml version="1.0" encoding="..." standalone="..."?>

 たとえば,シフト JIS で書かれた XML 文書ファイルの(とくに XHTML)の XML 宣言は次のようになる。

<?xml version="1.0" encoding="Shift_JIS"?>

 XML 宣言が省略されると,文字コードセットは UTF-8 または UTF-16 になる。わたしたちが通常使う JIS(iso-2022-jp),シフト JIS(Shift_JIS),EUC(EUC-JP)の場合は,それを XML 宣言中に書く必要がある。したがって,通常の日本語環境においては,XML 宣言は必須である。

 DOCTYPE 宣言は,XML 宣言の直後に書かれ,HTML のものと同様である。DOCTYPE 宣言の形式はいくつかあるが,ここでは XML を使う上でもっともよく使用する形式のみをあげる。

<!DOCTYPE ... PUBLIC "..." "...">

 XHTML 1.0 Strict を使うときは,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

XHTML 1.0 Transitional の場合は,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

XHTML 1.0 Frameset のときは,

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">

となる。

 XHTML 1.0 においては,DOCTYPE 宣言は必須である。

 まとめると,シフト JIS で書かれた XHTML 1.0 Strict のファイルの先頭には,次のように書かれるということになる。

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">

タグ

 XML においても,HTML と同様にタグは半角の不等号「<」「>」で囲まれる。タグは,要素の存在を示す。XML においては,タグはいかなる場合においても省略してはならない

 タグには,要素が“ここから始まる”ことを示す開始タグ,要素が“ここで終わる”ことを示す終了タグ,“中身が空”の要素を表す空要素タグの 3 種類がある。

 開始タグ・終了タグは,HTML と同様,それぞれ,

<...>

</...>

という形である。空要素タグは,中身が空の要素,すなわち,<...></...> と書かれる要素を,

<.../>

と書くものである。また,HTML における hr 要素(水平罫線),br 要素(強制改行)のような“終了タグのない要素”もこの記法で書かれる。たとえば,XHTML において hr 要素は

<hr />

と書かれる。

 実際には,“終了タグがない要素”も <...></...> のように書いてよいのであるが,HTML との互換性を考慮して,“中身が空の要素は <...></...>,終了タグをとらない要素は <.../> と書く”と覚えていただきたい。

 前掲の例で,“/>”の直前の空白はなくてもよい。しかし,HTML 4 UA(ブラウザ)との互換性の問題(後述)で,空白を入れておいた。

要素名と属性

 XML では,HTML と異なり,要素名および属性名において大文字と小文字を区別する。したがって,<blockquote> に対応する終了タグは </blockquote> のみであり,</BLOCKQUOTE></BlockQuote> はその対応する終了タグにはなり得ない。

 ちなみに,XHTML 1.0 においては,要素名と属性名はすべて小文字で書くことになっている。

 属性は,次のように書かれる。

属性名="属性値"

 前述のように,属性名は大文字と小文字を区別する。また,属性値は必ず引用符でくくり,いかなる場合でも省略してはならない。

 また,いくつかの候補から選択して値を与える属性(列挙型の属性;たとえば,input 要素の type 属性)でも,属性値は大文字と小文字を区別する。XHTML 1.0 においては,このタイプの属性値はすべて小文字で与える。

文字参照

 “&#x...;”の形で,ISO 10646(Unicode)の文字番号を 16 進数で与えて文字を参照することができるが,XHTML 1.0 を含めた XML ではここに与える 16 進数の a〜f は小文字を使わなければならない(HTML 4 では大文字・小文字を区別しない)。

コメント

 コメントは HTML(SGML)のものと同様である。コメント中に連続した 2 個のハイフン“--”を含んではならないことに注意。

<!-- ... -->