XHTMLの基本形

整形式XML

XHTMLは、開始タグと終了タグがきちんとバランスし、要素が正しいツリーを形成する整形式であることが一番の基本です。タグを省略せず、大小文字を統一して記述したHTMLは、少しの修正だけで整形式XMLとすることができます。

  • 空要素タグを />で閉じる(留意点4)
  • 属性値を全て引用符で囲み(留意点2)、属性名を省略した最小化を行わない(留意点7)

基本的には、もとのHTMLが適切に書かれていればこれだけで整形式XMLとなるはずで、XSLTなどのツールを利用できるようになります。これがXHTMLの第一歩です(HTML4などのDTDには適合しなくなるので、この場合は文書型宣言は書きません)。

XML名前空間を宣言する

もっとも、整形式XMLにしただけでは、厳密にはHTMLともXHTMLとも言えない、自己流のXMLということになってしまいます。利用しているタグセットがXHTMLのものであることを示すためには、ルート要素(html要素)でXHTMLのXML名前空間を宣言しておきます。

(例) xmlns="http://www.w3.org/1999/xhtml">

XML対応ツールやブラウザは、これによって文書で用いられているタグセットがXHTMLのものであることを認識できます。多くの場合、文書をXHTMLとして標準的に(見出し、段落などの要素をそれらしく)レンダリングして表示してくれます。

適切な名前空間を宣言すれば、他のXML言語の語彙を組み込んでXHTML文書内で利用することも可能です。当サイトの「XHTMLを拡張し、メタデータを直接記述する」を参照してください(ただしこの場合、一般には次の厳密適合にはなりません)。

 

厳密適合のXHTML

XHTML文書をスキーマ(DTDなど)に対して検証したり、仕様書に厳密適合させる必要がある場合は、昔ながらの文書型宣言を置きます。また、一般にXML文書はXML宣言で始めることが推奨され、特に文字コードの扱いによってはこの宣言が必須になることがあります。これらを加えたXHTML1.0適合文書は、次のようなものです。

(例)

<?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">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
  <head>
    <title>XHTMLの書き方と留意点</title>
  </head>
  <body>
    <p>XHTMLについて説明しましょう。</p>
  </body>
</html>

上の例は、次の「妥当な(Valid)XHTML文書」の要件に従って書かれています。

  1. 適切なDTDに従っていること
  2. 文書はhtmlをルート要素(root element=一番の親要素)として記述されていること
  3. このルート要素において、xmlns属性でXHTMLのXML名前空間を指定すること
  4. ルート要素の前に有効な文書型宣言を行っていること

スキーマに対して検証を行ったり厳密適合を求めたりする必要がなければ、4.の文書型宣言は特になくても構いません(その場合は、1.の適切なDTDというものも曖昧になってしまいますが)。単純に整形式にしてツールを利用するだけならば3.の名前空間も省略可能ですが、これでは広く認識されているX/HTMLを使うメリットもなくなってしまうので、これは記述しておく方が賢明です。

XML宣言は文字コードがUTF-8もしくはUTF-16以外の(かつサーバーからの応答ヘッダなどで文字コードを示していない)場合は先頭に記述しなければなりません。

〔注意〕 旧版の仕様書の3.1.1にある文書型宣言のSYSTEM識別子は相対URIになっているため、そのままコピーして使うと落とし穴があります。第2版ではこれは絶対URIに改められ、A.1においてDTDのローカルコピーを使う場合の注意が追加されました。