Let's begin XHTML―さあ始めよう XHTML

Appendix B:HTML 4,XHTML 1.0 との違い

 ここでは,従来の HTML,および XHTML 1.0 をご存じの方のために,XHTML 1.1 との違いをまとめておく。

HTML 4 との違い

 まず大きな違いは,XHTML 1.1 は XML に準じた書き方をしなければならないという点。この XML の書き方で,XHTML 1.1 に対して要請されているもの(またはそのように書くことが薦められるもの)は,

  • 要素名・属性名はすべて小文字
  • タグはいかなる場合も省略してはならない
  • <... />”という形の空要素タグがある
  • 属性値の引用符は省略してはならない
  • XML 宣言を書く
  • DOCTYPE 宣言が必要で,XHTML 1.1 では“<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11/dtd">
  • html 要素の開始タグに,xmlns 属性“xmlns="http://www.w3.org/1999/xhtml"”を書き加える
  • 属性の省略記法を使えない

 また,HTML 4 には,

  • 厳格な HTML 4(HTML 4 Strict)
  • 移行的な HTML 4(HTML 4 Transitional)
  • フレーム分割のための HTML 4(HTML 4 Frameset)

の 3 種類があったが,XHTML 1.1 は“厳格な HTML 4”に相当するものしかない。したがって,文書の視覚的装飾は XHTML ではできず,スタイルシートを利用することになる。また,フレームも利用できない。

 ハイパーリンク先を参照するとき,ウィンドウを指定する target 属性は,厳格な HTML 4 には存在しておらず,XHTML 1.1 にも盛り込まれていない。

 そのほか,要素や属性などについて HTML 4 との相違点をあげておく。

  • スクリプト(script 要素)・スタイルシート(style 要素)は,その内容をコメントとすると本当にコメントとして解釈される
  • ルビが使用できる
  • aformimgmap 要素の name 属性は削除されており,これは id 属性で代用する
  • lang 属性は削除されており,xml:lang 属性を代わりに使う
  • クライアントサイドイメージマップを指定する img 要素の usemap 属性は,従来 URI を与えていたが,XHTML 1.1 ではイメージマップを定義している(map)要素の id 属性の値を指定する

 従来の HTML と XHTML の違いについては,本サイトのチュートリアル Passport to XHTML 1.0(ただし,XHTML 1.0 準拠)も参照されたい。

XHTML 1.0 との違い

 XHTML 1.0 との大きな違いのひとつに,HTML 4 との違いと同様,

  • 厳格な XHTML 1.0(XHTML 1.0 Strict)
  • 移行的な XHTML 1.0(XHTML 1.0 Transitional)
  • フレーム分割のための XHTML 1.0(XHTML 1.0 Frameset)

とあったものが,“厳格な XHTML 1.0”に相当するものしかないということである。

 DOCTYPE 宣言の指定は,“<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11/dtd">”となっている。

 そのほかの相違点は,

  • ルビが使用できる
  • aformimgmap 要素の name 属性は削除されており,これは id 属性で代用する
  • lang 属性は削除されており,xml:lang 属性を代わりに使う
  • クライアントサイドイメージマップを指定する img 要素の usemap 属性は,従来 URI を与えていたが,XHTML 1.1 ではイメージマップを定義している(map)要素の id 属性の値を指定する

などである。

その他の相違点

 (特に HTML 4 から)XHTML 1.1 に移行すると,HTML に関わるほかのデータも XHTML にあわせて記述しなければならなくなるものがある。

 たとえば,カスケーディングスタイルシートでは,適用の条件を HTML の要素の種類名で指定するものがあるが,XHTML に対して適用させるときは XHTML の要素の種類名の書き方,すなわち“すべて小文字”にしなければならない。

 ほかにも,スクリプトで DOM(ドキュメントオブジェクトモデル)を参照するときなどにもその違いが影響を及ぼすことがある。