本記事は、アーカイブに保存されている過去の記事です。最新の情報は、公益社団法人日本印刷技術協会(JAGAT)サイトをご確認ください。
XHTMLとは、HTMLをXMLの仕様に合うよう再定義したものである。どうしてHTMLからの移行が必要だったのだろうか。【クロスメディアエキスパートのための注目キーワード1:XHTML】
HTMLの仕様はSGMLによって定義され、1993 年にW3C の勧告となった。その後、HTML の仕様はバージョンアップを続けてHTML4.01 に至った。現在、大半のWeb コンテンツはHTML4.01 によってマークアップされている。XHTML は、そのHTML4.01 の後継となるべく、XMLによって再定義され、2000 年にW3Cの勧告となった。
ここで、SGML、HTML、XML、XHTML の関係を整理しておきたい。これらは似たような名前の言語であるが、SGML とXML は「メタ言語」であり、HTMLとXHTML は「マークアップ言語」である。つまり、それぞれ役割が異なる言語なのである。その違いを混同しないようにしたい。
メタ言語は、マークアップの対象となる文書の構造(文書の要素、要素の順序や階層関係、要素の属性など)を定義する言語である。そうして定義された文書の構造を「文書型(document type)」という。文書型は「スキーマ」とか「ボキャブラリ」と呼ばれることもある。一方、マークアップ言語はその文書型に従って具体的なマークアップを行うための言語である。そうしてマークアップされた文書を「文書インスタンス」という。
メタ言語とマークアップ言語の関係を表に示す。
これは例であり簡略化してある。HTML の文書型では、文書全体を「html」、見出しを「h1」、段落を「p」、強調を「b」でという名前でそれぞれ意味づけている。その名前を「要素名」といい、それは「<」と「>」で括ってマークとして表す。そのマークがデータの内容を説明するという意味から「記述的マーク」と呼ばれることがある。それを表現した文字列は文書インスタンスでは「タグ」と呼ばれるが、マークと同じ意味である。
次に、なぜHTML からXHTML への移行が必要であったか、言い換えれば、なぜSGML からXML への移行が必要であったか。その理由は次のようである。
第一に、SGML はインターネットが登場する以前の1986 年にISO で策定されたメタ言語であったため、Webコンテンツの文書型を表現する機能に不足していた。第二に、SGML が許容するWeb コンテンツ(文書インスタンス)は端末側でリアルタイムに処理するには複雑過ぎてコンピューターへの負担が大き過ぎた。そこで、XML の仕様ではSGML の仕様が絞り込まれ、それに新たな仕様が付け加えられた。
さらに加えて、なぜ期待されたXML に基づくXHTML2.0 の計画がHTML4.01 に対する後方互換性の問題で頓挫したか。それはメタ言語の問題ではなく、現状のWeb コンテンツの多くが正しくマークアップされていないタグスープ(tag soup)状態にあることに起因している。
次のWeb コンテンツの断片はタグスープ状態にある。つまり、段落を表す「p」のマークが重なり合っているので、「これは文章」、「文章の一部」、「これは文章の一部」という3 通りの解釈が生じてしまい、曖昧な情報になっている。
図:タグスープ(ルールを考慮せずに書かれたHTMLコード)の例
こうしたタグスープがなぜ生じるのか。第一に、Webコンテンツの制作時点でそれが妥当であるかどうかが検証されていない。第二に、そうしたコンテンツであってもWeb ブラウザーがそれなりに処理してしまうので、情報の受け手である人間はその曖昧さを受け入れてしまう。それにもかかわらず、Webコンテンツの制作者がその問題に気付かない、あるいは気付いていても放置する、という状態が、Web 開始以来約20 年の間続いてきた。その結果がタグスープなのである。しかし今日では、情報の受け手にコンピューターも加わってきた。
例えば、多くの人々が利用するポータルサイトの索引を作り出すクローラ(crawler)、Web サービスにおけるマッシュアップなどがある。そうした処理ではタグスープが原因となって問題が生じやすいので、XHTML への移行が求められている。最新のHTML5 に対応するWeb ブラウザーは、XMLという新たな技術と、HTML という古い技術(タグスープに対する一貫した扱いも含め)を両立させる、という現実的な対応をしている。
HTML5はXMLで定義した文書型だけでマークアップされる場合は「XHTML5」と呼ばれる。現在公開されている世界中の膨大なWeb コンテンツがタグスープ状態から脱してXHTML5 へ移行していくには極めて長い時間がかかると考えられる。HTML5 は2012 年に勧告となる見通しではあるが、2008 年以降に発表された主要なWebブラウザーは、HTML5 に部分的に対応している。
(『JAGAT info』2012年4月号より一部改変)