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

Section 3:XHTML の形式

 ここでは,XHTML をファイルとして作成するにあたってのきまりについて説明する。XHTML 文書の基本的な構造についても述べる。

XHTML のきまり

 XHTML をファイルとして作成するとき,XHTML が作られた大きな枠組みである XML のきまりに従う必要がある。XHTML は XML 文書なのである。

XML 宣言

 XHTML ファイルは,まず何よりも先に XML 宣言から始まる。この書き方の一般的な説明は省略するが,XHTML 1.1 では次のように書くものである。

<?xml version="1.0" encoding="文字エンコーディング"?>

ここで,文字エンコーディングは,テキストの文字を,転送などの要請で数値に直すやり方である。WWW ページが文字化けすることがあるが,これは,多くはブラウザがテキストの文字エンコーディングを間違えてしまった(数値から文字への変換を誤った)ために起こるものである。日本語においては,文字エンコーディングとして JIS,日本語 EUC,シフト JIS などが知られている。また,ISO 10646(Unicode もほぼ同じものである)という,世界中の文字を表現できる枠組みでは(当然日本語も含まれる),UTF-8,UTF-16 などという文字エンコーディングがある。XML 宣言では,そのファイル中で,どんな文字エンコーディングが使用されているかを明示する。

 文字エンコーディングの指定は,そのファイルにおけるそれが,

  • JIS であれば ISO-2022-JP
  • 日本語 EUC であれば EUC-JP
  • シフト JIS であれば Shift_JIS
  • UTF-8 であれば UTF-8
  • UTF-16 であれば UTF-16

と書く。

 問題は,明示の方法はわかったが,果たしてファイルでの文字エンコーディングが何かを知ることであろう。一般的に,Windows および Mac OS では,シフト JIS が使われることが多い。また,Linux/UNIX では,日本語 EUC が使われることが多い。ただし,使用しているエディタによっては,文字エンコーディングを指定して保存ができるものもある。

 たとえば,文字エンコーディングがシフト JIS であるときの,XHTML ファイルの冒頭に書かれる XML 宣言は次のようになる。

<?xml version="1.0" encoding="Shift_JIS"?>

 本チュートリアルの XHTML ファイルの文字エンコーディングはシフト JIS である。したがって,このページのページソースをご覧いただけば,ファイルの先頭にこれを同じものが書かれているのが確認できるだろう。

 なお,この XML 宣言は,タグに似た形をしているが,タグではない(タグとは呼ばない)。

DOCTYPE 宣言

 DOCTYPE 宣言は,XML 宣言の次に書かれる。XML 文書において,それが XHTML であることを示すものである。XHTML 1.1 の DOCTYPE 宣言は次のように書く。

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

 DOCTYPE 宣言も,タグではない。

XHTML の構造

 XHTML ファイルは,XML 宣言,DOCTYPE 宣言に続いて本体が記述される。XHTML では,本体は 1 つの html 要素として記述される。

<html>...</html>

html 要素の開始タグには,(主にほかの XML から作られた言語と混在させるために)XHTML の要素の種類名とほかの XML から作られた言語の要素の種類名とを区別するために,xmlns 属性を次のような書式で書き込む。これは,さしあたって形式的なものと考えて差し支えないだろう。

xmlns="http://www.w3.org/1999/xhtml"

したがって,html 要素の開始タグは,少なくとも,

<html xmlns="http://www.w3.org/1999/xhtml">

という形になる。

 html 要素は,その内容が,head 要素body 要素であると決められている。これらが,1 つずつ,この順で,html 要素の内容として出現する。html 要素の内容として,それ以外の要素およびテキストは出現してはならない。

<head>...</head>
<body>...</body>

 ここで,

  • head 要素にはその文書に関する情報
  • body 要素には出力されるべき本文

が書かれる。

 head 要素には,その内容として,文書のタイトルを記述する title 要素がどこかに 1 度だけ出現しなければならないと決められている。

<title>...</title>

title 要素の内容はテキストで,その文書のタイトルを記述する。たとえば,

<title>Let's begin XHTML -- Section 3</title>

などと書く。head 要素には,このほかにも文書情報を記述するための要素が書かれるが,これについては Section 14 などで述べる。最低限必要なのは title 要素だけである。

 body 要素に,出力されるべき本文が書かれていく。この要素の内容は,パラグラフ,見出し,箇条書き,表といった要素である。

 以上をまとめると,XHTML 1.1 のファイルは全体として次のような骨格をしている。

<?xml version="1.0" encoding="文字エンコーディング"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title>
文書のタイトル</title>
...その他文書情報...
</head>
<body>

...本文...
</body>
</html>