Tips XHTML (Extensible Hyper Text Markup Language)

2000年1月26日に W3C の勧告となった XHTML(Extensible HyperText Markup Language) は、素朴な文書構造記述言語として発展してきた HTMLXML の持つ柔軟性、拡張性を取り入れたものです。

HTMLSGML の実装の一つで、書式にそれなりに自由度がありましたが、XHTMLは XMLの実装であるため、書式が厳密になっています (XMLは、SGMLの書法をシンプルで厳密なものにすることで、アプリケーションの開発や互換性をとりやすくした)。

また、HTMLは規格がどんどん拡張され、携帯端末などにとってはフルサポートするのが困難な規模となっています。一方、新しい規格である MathMLや SVGが続々と登場し、これらを組み込んだ文書型を容易に定義できることも求められています。このため、利用環境に応じて必要な要素を選択して採用できるモジュール化や、他の XML文書との融合(拡張)なども XHTMLの重要な目的です。

XHTML1.0の勧告に続いて、さまざまな情報機器の表現能力の違いなどに対応するための「モジュール化された」 XHTML1.1が 2001年5月31日に勧告されました。

HTMLとの互換性について
重要なのは、どんなタグの記法を用いれば HTMLとの互換性を保ちつつ XML (XHTML) として認められるのかということです。HTML4.01Strict (厳格な記述:Transitionを認めない。DTD 参照)を基本としていくつかのポイントの一部を挙げました。
全てのタグ(要素タイプ名、属性名)は小文字で記述する
HTMLでは大文字と小文字は区別されませんでしたが、XMLではこれを区別するため、IMGとimgは別の要素タイプになってしまいます。XHTMLでは全ての要素タイプと属性は小文字で定義されたので、タグの記述にあたっても小文字を用いなければなりません。(この講座がすべて小文字で記述していた理由はここにある!)
また、属性名だけでなく、method="post" 等のように、属性値が DTD で選択肢が定義されているものは、その通り記述する必要があります。これらもみな小文字で定義されているので、「タグは小文字で書く」と考えておくのがよいでしょう。
属性の値は必ず引用符で囲む
HTMLにおいては、値が数字など特定の値のみの場合は引用符を省略して width=100 のような記述が認められていましたが、XHTMLでは全ての属性値を引用符で囲んで width="100" のようにしなければなりません。
終了タグを省略しない
HTMLでは 終了タグを省略することができました。たとえば、リスト項目を定義する li要素の場合、以下のように終了タグを省略しても問題視されることがありませんでした。
<ul>
<li>ある項目
</ul>
という具合に終了タグを省略することが認められ、それが一般的な書法となっていましたが、XMLではこれが認められません。
<ul>
<li>ある項目</li>
</ul>
このように終了タグを加えなければなりません。内容モデルを持たない空要素を除いて、全ての要素は開始タグと終了タグのペアで記述します。
空要素のタグの扱いでは /> で閉じることが規定されています。従来 HTMLimg要素br要素のように、内容モデルを持たない空要素 (HTMLでは開始タグしか使わないもの) は、XMLにおいては <br/> という具合に、タグを閉じるときに /> を使わなければなりません (空要素タグと呼ばれています)。
ただし、この書式では HTMLブラウザがタグを正しく認識できない可能性があるので、/ の前にスペースを置いて、<br /> のように記述します。
ファイル内の位置を示すにはid属性を併記する
HTMLでは同一ページの特定の位置へのリンクのために name属性を使って記述しリンクしていました。これも XHTMLでは id属性を併記しなければなりません。
(誤りの記述)
<a href="#foo">アンカーをクリックすると</a>
<a name="foo">ここにジャンプする</a>
という記述をしていましたが、XHTMLではファイル内部の位置を示す属性は id属性になりました。従って、ジャンプ先は <a id="foo"> となるわけですが、この id属性をサポートしないブラウザもあるため、
(正しい例)
<a href="#foo">アンカーをクリックすると</a>
<a name="foo" id="foo">ここにジャンプする</a>
という具合に、name属性id属性を同じ値で併記することが推奨されています。 (id属性そのものは、HTML4.0から導入されています)。なお、XHTML1.1では name属性は廃止され、id属性のみでフラグメントを示します。
XHTMLのDTD宣言文
XHTMLにおけ DTD文書型宣言は下記のように示されています。 (XHTML1.0での場合)
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 
 Strict//EN" "DTD/xhtml1-strict.dtd"> <!--1行で記述する  -->
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>初心者のためのホームページ講座</title>
</head>
詳しくは、初めてのXHTML講座 をご覧ください。


This Page is HTML4.01 Valid! 初版公開日 2002年5月15日   最新更新日 2003年4月28日
Copyright(C) 2002〜2008 banban