XHTMLとは、XMLのルールに沿って書かれたHTMLのことです。この記事では、入門者向けにXHTMLの使い方と書き方を紹介しています。
XHTML (Extensible HyperText Markup Lanuage)とは、簡単にいえばXMLの規則に従って記述されたHTMLということになります。タグの書き方も、XMLのタグの書き方に準じています。
XHTML 1.0 Transitional と XHTML 1.0 Strict の2つの規格があります。
XHTML リファレンスについては HTML リファレンスをご覧ください。
XHTMLの例(テンプレート)を次に示します。
<?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>
XMLのファイル拡張子は「.xml」が一般的であるが、XHTMLのファイル拡張子には「.html」が使われる。
XHTMLは次のような構造をしています。
XML処理命令 (Processing Instruction) の例を次に示す。
<?xml version="1.0" encoding="utf-8" ?>
スキーマ定義の例を次に示す。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
XMLインスタンスの例を次に示す。
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">
<head>
<title>XHTMLのサンプル</title>
</head>
<body>
<p>XHTMLのサンプルです。</p>
</body>
</html>
XHTMLの名前空間(ネームスペース)は、http://www.w3.org/TR/xhtml1
である。名前空間のURIを指定する場合、XHTMLのルート要素であるhtml要素のxmlns属性に記述する。
<html xmlns="http://www.w3.org/TR/xhtml1">
XHTML には HTML といくつかの相違点があります。
HTML では、要素名(タグ名)や属性名の大文字と小文字は区別されませんでしたが、XML では大文字と小文字を区別します。 したがって、<IMG> と <img> は別の種類のタグになります。 XHTML では全ての要素タイプと属性は小文字で定義されたので、タグの記述にあたっても小文字を用いなければなりません。
また、属性名だけでなく、method="post"
等のように、属性値がDTDで選択肢が定義されているものは、その通り記述する必要があります。これらもみな小文字で定義されているので、「タグは小文字で書く」と考えておくのがよいでしょう。
HTMLでは値が数字など特定の値のみの場合は、引用符を省略して width=100
のような記述が認められていましたが、XHTML では全ての属性値を引用符で囲んで width="100"
のようにしなければなりません。
HTMLでは終了タグを省略することができます。たとえば、リスト項目要素の li の場合、以下のように記述することができます。
<ol>
<li>aaa
<li>bbb
</ol>
しかし、XHTMLでは終了タグを省略することはできません。以下のように記述しなければなりません。
<ol>
<li>aaa</li>
<li>bbb</li>
</ol>
/>
」で閉じるbr要素タイプのように内容モデルを持たない(EMPTYである)ものは終了タグを省略することができます。ただし、<br />
という形で、開始タグを「 />
」で閉じることになっています。
<p>ここで<br />改行します。</p>
内容モデルを持たない要素タイプを次に示します。
XHTMLには2つのバージョンが存在する。
XHTML 1.0 には2種類のスキーマ定義がある。
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 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とStrictの2種類のスキーマ定義が存在したが、XHTML 1.1ではスキーマ定義はひとつだけとなった。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">