いまさらXHTMLのまとめ

これまでなんとなく分かったつもりで使っていたけど、改めて調べてみたのでまとめてみました。

XHTMLのバージョン

XHTMLにもいくつかバージョンがあるらしい。

XHTML1.0
基本的にはHTML4.01と同じ要素で構成。一世代前の規格だが、最新のXHTML1.1よりこちらのほうが広く使われていると思われる。ここでもXHTML1.0の書き方のみ書き留める。
XHTML1.0 Frameset
フレーム設計型。フレームを使ってのサイト構成用。
XHTML1.0 Strict
厳密型。完全に型に沿った厳しい書式を求められる。
XHTML1.0 Transitional
移行型。HTML4.01からの移行を前提としているため厳しい書式が要求されない。
XHTML1.1
「XHTML1.0 Strict」から派生した厳しい規格。
XHTML Basic
携帯電話やPDAなどでの使用を想定した規格。

XHTML1.0を使うのであればTransitionalで十分だとか。

HTML4.01 → XHTML1.0

HTML4.01で書かれた文章をXHTML1.0に変換するための注意点は以下の通り。
まずはXHTML1.0の記述例から。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>XHTML</title>
  </head>

  <body>
    <h1>hoge</h1>
  </body>
</html>
XML宣言
XML宣言
先頭でXMLのバージョンと使用する文字コードを書くこと
  • 文字コードが「UTF-8」または「UTF-16」以外のものを使用してそれが明示されていない場合は必須
  • UTF-8」または「UTF-16」の場合は省略可
  • よって、↑の記述例では1行目のXML宣言は省略しても構わない。
ドキュメントタイプ宣言

2行目のバージョンとDTDを指定している部分。例では、バージョンはXHTML1.0 Transitional、http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtdにあるDTDを参照して書式の確認を行うことを表している。

XML名前空間宣言

3行目の部分。使用しているタグセットがXHTMLのものですよ、と明示するために宣言する。

<html xmlns="http://www.w3.org/1999/xhtml">
注意点
  1. タグ内の要素名と属性名は小文字で記述する
  2. 属性値は引用符で囲む
  3. 終了タグは省略しない
  4. 空要素のタグは" />"で閉じる(imgとかbrとか)
  5. id属性を使用する、もしくはname属性と併用する
  6. "&"は"&amp;"と記述する
  7. 属性の省略書式は使用しない(checked="checked"が正しい)
  8. スクリプトCSSはCDATAセクションで囲む、もしくは外部ファイルとする
  9. 言語コードの指定に xml:lang属性を使用する、もしくは lang属性と併用する(記述例の3行目)

参考

この内容は以下のページを参考に作成しました。


【追記:2009/07/13】
ふぅーん。

HTML 4.01の後継規格としてXHTMLの策定が進められたが、当初期待されていたようには普及しなかった。結局、あとから策定が進められたHTML 5が後継として使われることになった