Section 1 : XHTML と XML,HTML

 まず最初に,これから話題にする XHTML と,HTML および XML の関係,そしてその特徴をみていこう。

XHTML とは

XHTML と HTML,XML,SGML の関係。
図 1.1 [D]

 XHTML は Extensible HyperText Markup Language の略。Introduction でも述べたように,(SGML の枠組みの中で定められていた)HTML を XML の枠組みの中で定めたものである。

 本稿で扱う XHTML 1.0 は,HTML 4(HTML 4.0,HTML 4.01)を XML として実現するものである。したがって,書法は XML に従う必要があるが,要素の意味などは HTML 4 と同じである。たとえば,p 要素がパラグラフ(段落)を表したり,img 要素によって画像が挿入され,その画像の URI を src 属性に記述したり,という点は変わらない。

 今後,HTML は XML をベースとした XHTML という形で発展していくであろうが,XHTML 1.0 は HTML 4 からの移行が容易で,Section 6 および Section 7 で述べる注意に従えば後方互換性をよく保つことができる。XHTML 1.0 は WWW パブリッシングにおける XML の入り口という位置づけを見て取れる。

XML とは

 ここで,XML について簡単に説明しておくことにしよう。

 XML は,電子データ交換のための,タグ付けを特徴とするマークアップ言語であり,SGML のサブセット(部分集合)である。XML は,それだけでは要素は定義されていない。XML は(SGML と同じく)“文法”の決まりであって,“意味”の決まりではない。XML を使うときには,要素を定義して,ひとつのアプリケーションとしてのマークアップ言語を作る必要がある。ここで扱う XHTML の XML アプリケーションのひとつである。そのほかに,WWW において関係が深い XML アプリケーションには,ベクトルグラフィクスを記述する SVG,数式を記述する MathML などがある。

 XML が登場する以前にも SGML という電子データ交換のためのマークアップ言語はあったわけだが(SGML も XML 同様“文法”のみの決まりであって,HTML はそのアプリケーションということになっている),SGML はその記法の自由度の高さから実装が煩雑で,(実装・運用に)コストがかかるという難点を持っていた。その“記法の自由度”は,たとえば“終了タグが省略できる”(これは HTML ではおなじみである),“属性名が属性値から自明なときは,属性名を省略してよい”,“特殊な終了タグの記法がある”ということがあげられる。

 そこで,XML では,記法を思い切って単純化した。これによって実装が容易になり,XML がデータ記述・交換の標準として目されていることはご存じであろう。XML の記法の単純化においては,前述の“SGML の記法の自由度”にあたるものはすべてなくなっている。したがって,XML アプリケーションでは終了タグが必要ならば省略してはいけないし,属性はきちんと“属性名="属性値"”の形で書かなくてはならない。これからわかるように,XHTML を使うにあたって覚えるべきなのは,こういった“記法の違い”なのである。

 XML では,ひとつの文書ファイルの中に,異なる種類の XML アプリケーションを混在させて利用することができる。たとえば,XHTML 文書の中に,SVG の図版が入っているという具合である。XML は,実装が容易になったからこそ,その柔軟性を生かした利用法が現実のものになってきつつある。

XHTML 1.0 と HTML 4

 さて,繰り返し述べているように,XHTML 1.0 は HTML 4 を XML の上で実現したものであり,要素の用法などは HTML 4 と同じである。HTML 4 と同様に,XHTML 1.0 にも 3 つのタイプがある。

厳格な XHTML 1.0(XHTML 1.0 Strict
HTML 4 Strict に対応する。装飾的な記述がなくなっており,文書の構造を中心に記述していく。
移行的な XHTML 1.0(XHTML 1.0 Transitional
HTML 4 Transitional に対応する。文書構造のほかに,視覚装飾的な記述も許す。
フレームセットの XHTML 1.0(XHTML 1.0 Frameset
HTML 4 Frameset に対応する。フレーム分割を行うときはこれを用いる。

 本稿での解説は,これらのいずれでも問題なく適用することができる。