[518] [DFN@en[XHTML]] ([DFN@en[Extensible Hypertext Markup Language]]、
[DFN[拡張可能ハイパーテキスト・マーク付け言語]]) は、 [[XML]] の[[構文]]によって記述された
[[HTML]] です。 [[XHTML]] は1990年代末から2000年代初頭にかけて [[HTML]] と [[Web]]
の近未来であると信じられてきましたが、規格開発の迷走と [[Webブラウザー]]の実装者や
[[Webサイト]]・ [[Webアプリケーション]]製作・開発者からの不支持により、
旧来の [[HTML]] から [[XHTML]] への移行は失敗に終わったとの見方が強まっています。
* バリエーション
:[[XHTML1]]: [[HTML4]] を [[XML]] に移植した [[XHTML 1.0]] にはじまり、
小改訂を重ねた [[XHTML m12n]]、[[XHTML 1.1]] などを含む系統です。
[[W3C]] [[XHTML2 WG]] (旧 [[HTML WG]]) により仕様策定が行われてきました。
:[[XHTML2]]: [[XHTML1]] を1から見直すという触れ込みで宣伝された次世代
[[XHTML]] 仕様案でしたが、支持を得られず完成しないまま放棄されることになりました。
:[[XHTML5]]: [[HTML5]] の [[XML]] 構文による表現です。後方互換性を破棄して新たに設計し直すとした
[[XHTML2]] に対し、 [[XHTML5]] は [[XHTML 1.0]]
に対する後方互換性を維持したまま新時代の要求に応えようと試みています。
* 定義
** WHATWG による定義
@@ [526] 書きかけ
[527] [[XHTML]] は[[語彙]]としての [[HTML]] を使って記述された[[文書]]を [[XML]]
という[[構文]]によって表現したものです。 [[HTML5]] 仕様書では [[XHTML5]] とも呼んでいます。
** XHTML2 WG による定義
[26]
>
:[DFN@en[[[XHTML]]]]:
[[拡張可能ハイパーテキストマーク付け言語]]。
[[XHTML]] は1つの1枚岩の[[マーク付け言語]]の名前ではなく、
この[[マーク付け言語]]を集成的に形成する[[文書型]]族の名前です。
[[XHTML]] の[[名前空間URI]] は
[CODE(URI)@en[[[http://www.w3.org/1999/xhtml]]]] です。
'''注意''': 将来の版の [[XHTML]] は異なる[[名前空間]]を用いるかもしれません。
;; 出典:
(出版当時は [[HTML WG]]、後の [[XHTML2 WG]])
** メモ
[528] 両 Working Group の定義の違いは両者の [[HTML]] という言語に対する捉え方の違いが表れています。
[[XHTML2 WG]] は [[XHTML]] は複数の[[マーク付け言語]]の集合体であるとしました。
[[XHTML m12n]] 仕様書で規定される[[モジュール]]や [[Role]]、[[RDFa]]
等の個別仕様書で定義される[[モジュール]]、あるいは [[XHTML]]
以外で定義された[[モジュール]]を自由に組み合わせ、自由に「[[XHTML]] 族」
の[[マーク付け言語]]を設計できるようにしました。
一方で [[WHATWG]] は [[XHTML]] は単一の[[マーク付け言語]]であるとしました。
もちろん [[SVG]] など他の[[マーク付け言語]]と併用することも認めていますが、
かといってそれによって新たな[[マーク付け言語]]を設計するのではなく、
あくまで [[XHTML]] は1つとの立場を採っています。
[529] [[HTML]] は (あるいは [[W3C]] は) かねてからその目標の1つに [[Device Independence]]
を掲げてきました。両 WG のアプローチの違いは DI の実現方法の違いでもあります。
[[XHTML2 WG]] の考え方は、 device それぞれについて最適化された[[マーク付け言語]]を用意し、
その言語のための[[実装]]と[[文書]]を用意するというものです。一方で [[WHATWG]]
の考え方は、 device の物理的な性質とは一定の距離を置いた単一の[[マーク付け言語]]を用意し、
その言語を各 device の性質と事情に合わせた形で実装するべき、というところにあります。
* HTML と XHTML
[520] [[XHTML]] はそもそも旧来の [[HTML]] から [[XML]] [[構文]]へ移行しようという趣旨で作られました。
結果的には [[XHTML]] は旧来の [[HTML]] に対する (そこから移行させるだけの)
十分な利点を提供・周知できず、移行は失敗に終わりつつあります。
[[HTML]] と [[XHTML]] の関係やそれぞれの利点と欠点、あるいは移行の方法論に関しては様々な議論がありました。
詳しくは [[HTMLとXHTML]] の項をご覧ください。
[521] [[CSS]] における [[HTML]] と [[XHTML]] の[[レンダリング]]の違いについても同項をご覧ください。
* XHTML の媒体型
[519] [[XHTML]] の普及の妨げの1つは[[媒体型]]の問題でした。 [[XHTML]]
の[[媒体型]]について詳しくは [[XHTML媒体型]]の項をご覧ください。
* XHTML と携帯電話
[524] [[携帯電話]]の [[Webブラウザー]]は [[XHTML]] にしか対応していない、あるいは
[[XHTML]] にするべきだなどとする神話やプロパガンダが一部で横行したことがありました。
実際には[[携帯電話]]対象の [[Webサイト]]も [[PC]] 対象の [[Webサイト]]同様、
[[マーク付け]]の品質は非常に低く、[[携帯電話]]の [[Webブラウザー]]もまた、
[[誤り処理]]を行う“ふつう”の [[Webブラウザー]]に過ぎません。などという話題は
[[XHTMLと携帯電話]]の項をご覧ください。
* 歴史
** W3C 以外の XML 版 HTML
[15] [[W3C]] が HTML 4 を XML に移植した XHTML 1
を標準化する以前にも、独自に HTML を XML に移植しようとする試みが幾度かなされたことがありました。
[16]
''Schema for Object-Oriented XML''
は、1998年と1999年に W3C に提出された [[Note]]
で、 XML の schema 言語を提案しています。
この中で、文書説明の記述の手段として HTML
を採用しています。
[18]
''A Modular Hypertext Markup Language for Broadcast Applications''
TV 用の HTML で、 「Q[xHTML]] という [[HTML 4.0]] を基にした XML (の当時の原案) 版の HTML です。1998年10月。
** XHTML2 Working Group の終焉
[525] [[XHTML2 WG]] の項をご覧ください。
* 統計
[96]
[CITE[HTML5 IRC logs: w3c / #html-wg / 20070423]] ([CODE[2007-06-30 15:38:51 +09:00]] 版)
[[XML媒体型]]で提供されている[[頁]]のうち 0.0014%
が [[XHTML]]。
* 実例
[522] [[XHTML]] は実世界ではほとんど利用されていません。世間一般では [CODE(MIME)@en[[[text/html]]]]
で [[XHTML]] [[文書型]]を名乗る[[文書]]が利用されることがあり、実のところこの形態の[[文書]]はかなり大量に存在しているのですが、
旧 [[W3C]] [[HTML Working Group]] ([[XHTML2 Working Group]] の前身、現在の
[[HTML Working Group]] とは別組織) の方針に基づき [[Webブラウザー]]は [[XHTML]]
であると認識していません。真の [[XHTML]] は Web 全体でも数えるほどしか利用例がありません。
それすら、間違ったものが少なくありません。
[523] [[XHTML]] の実世界での利用例については [[XHTML実例]]の項をご覧ください。
* メモ
[7] XHTML[SUP[TM]] = E''x''tensible ''h''yper''t''ext ''m''arkup ''l''anguage。
拡張可能ハイパーテキスト・マーク付け言語。
[[WWW]] の基本マーク付け言語である [[HTML]] を、 [[XML]]
の構文のもとに再定義した[[マーク付け]]言語。
現在、 XHTML 1 系と XHTML 2 系があります。
[8] XHTML 1.0 は、 [[HTML4]] をほとんどそのまま、単に XML
の構文で書き直したものです。 HTML 4 に習熟していた人なら XML
の構文を少し学ぶだけで XHTML 1.0 で書けるようになりますし、
HTML 4 の文書はほとんどの場合機械的に XHTML 1.0
に修正できます。
XHTML m12n (XHTML のモジュール化) は、 XHTML 1.0
を[[モジュール]]群に分解したものです。
一般の利用者にはあまり直接的な利点はありませんが、モジュール化によって必要な機能だけの部分集合を作ったり、他の言語に取り込んだりすることが容易になります。
XHTML m12n の応用としては XHTML Basic (1.0), XHTML 1.1,
XHTML + SVG + MathML (画像や数式を埋め込める。) などがあります。
XHTML Basic は、携帯機器など限られた能力の機器を意識した、語彙が少なめの
XHTML です。 XHTML 1.1 は、 XHTML 1.0 Strict を XHTML m12n
の応用として再設計したものです。
[9] XHTML 2.0 は、現在 [[WD]] 段階でまだ正式な仕様ではありませんが、
HTML の誕生から現在まで歴史的に引きずっていた仕様も整理するなど大胆な変更が加えられ、より整った言語体系になると思われます。
(既に実験的に使い始めている人もいますが、実用段階になるのはまだ先でしょう。)
- [1] ''【野望の】XHTML 2.0【王国】''
- [2] ''XHTML Eden'' 「XHTML を主眼に置いた ニュースサイトです。XHTML に関する話題を集めながら、XHTML を使うことが、HTML だけを使っているよりもメリットがあるのかどうかということを、考えて行きます」
- [3] ''マークの付けかた'' XHTML2 文書, DTD, CSS が。
- [4] [[XPath]] で abbr[@title="Hypertext Transfer Protocol"] と書いて検索する検索園児んとかあったらいいよな。 [[HTML4]] に対する XHTML1 の利点はなんだとかよく言われるけど、こういう細かいことでもうれしいと思う。
- [5] >>4 [[XML]] でない [[SGML]] でも頑張れば同じことは出来るだろうけど、 XML の方が今は環境が整ってて楽でしょ。 (でもこんなこというと XML 厨とか言われるんだよな。打つ)
- [6] >>5 XML でも SGML でもいいから、 >>4 のような検索園児(wがいたら、 [CODE(XPath)[p/ul]] で検索して [[p]] 要素の中身に [[ul]] 要素を入れてる香具師を探すとか楽しめそうだ。
- [10] ''This is a page in XHTML 2.0 format - w3future.com''
- [11] ''IBM XHTML 1.0 Transitional DTD''
- [12] ''bubble hour - 2001/12 #2: XHTML 1.1 モジュールメモ'' : XHTML モジュールの使い方についての [[satoshi]] タンの解説
- [13] ''XML Resource Directory Description Language (RDDL)'' : XHTML 1 と RDF を (無理やり) くっつけようとしたもの
- [14] ''The XHTML Family - Slide list'' : [[mimasa]] 氏の講演スライド。 [[XHTML]] の開発の歴史を簡単に学ぶことが出来ます。
[17]
''XHTML Frequently Answered Questions''
([[名無しさん]] [WEAK[2004-07-24 03:33:13 +00:00]])
[19]
[CITE[The Elements of Meaningful XHTML]]
([[名無しさん]])
[25]
[CITE[Re: Sniffing XHTML sent as text/html from Steven Pemberton on 2000-09-13 (www-html@w3.org from September 2000)]]
([[名無しさん]])
[34]
[CITE[goer.org: The X-Philes]] ([CODE[2007-03-22 09:00:23 +09:00]] 版)
[65]
[CITE@ja-JP[マークアップの順番 - Weblog]] ([CODE[2007-05-08 07:00:00 +09:00]] 版)
([[名無しさん]] [WEAK[2007-05-11 10:59:07 +00:00]])
[73]
[CITE@en[Re: XHTML Family Document Types and the validator]] ([[Shane McCarron]] 著, [CODE[2007-04-30 08:11:10 +09:00]] 版)
([[名無しさん]] [WEAK[2007-06-02 15:54:01 +00:00]])
[74]
[CITE[Bug 14 - XHTML Detection is over-eager.]] ([CODE[2007-06-03 00:51:05 +09:00]] 版)
([[名無しさん]] [WEAK[2007-06-02 15:54:20 +00:00]])
[95]
[CITE@en[Re: input on name for XML serialization of HTML 5?]] ([[Steven Pemberton]] 著, [CODE[2007-06-21 23:22:32 +09:00]] 版)
([[名無しさん]] [WEAK[2007-06-21 15:23:14 +00:00]])
[98]
[CITE@ja[ad_xhtml]] ([CODE[2003-04-08 01:38:08 +09:00]] 版)
([[名無しさん]])
[99]
[CITE@ja-JP[業者の宣伝 - Weblog]] ([CODE[2007-09-11 07:00:00 +09:00]] 版)
([[名無しさん]])
[101]
[CITE@en[Shorttags - the odd side of HTML 4.01 - W3C Q&A Weblog]] ([CODE[2007-10-10 19:13:03 +09:00]] 版)
([[名無しさん]])
[102]
>>101 この話の展開には無理があるんじゃ・・・
[104]
[CITE[HTMLの採用について (agenda)]] ([CODE[2007-11-28 20:38:39 +09:00]] 版)
([[名無しさん]] [WEAK[2007-11-30 01:15:07 +00:00]])
[106]
[CITE[seamonkey/parser/htmlparser/src/nsExpatDriver.cpp]] ([CODE[2007-11-19 20:16:26 +09:00]] 版)
[530] [CITE[IRC logs: freenode / #whatwg / 20090711]]
([TIME[2009-09-15 21:54:30 +09:00]] 版)
[531] [CITE@en[HTML5 Revision Tracker]]
([TIME[2010-02-11 22:43:26 +09:00]] 版)
[532] [CITE@en[RE: Request for Volunteers: Polyglot spec]]
([[Eliot Graff]] 著, [TIME[2010-04-22 07:15:39 +09:00]] 版)
[533] [CITE@en[HTML/XHTML Compatibility Authoring Guidelines]]
([TIME[2010-04-22 07:52:33 +09:00]] 版)
[534] [CITE@en[HTML/XHTML Compatibility Authoring Guidelines]]
([TIME[2010-05-28 06:09:23 +09:00]] 版)
[535] [CITE@en[Polyglot Markup: HTML-Compatible XHTML Documents]]
([TIME[2010-06-26 06:42:47 +09:00]] 版)
[536] [CITE[Bug 10889 – Content Model section should cite the Polyglot document for further advice]]
( ([TIME[2010-10-12 21:33:45 +09:00]] 版))