XHTML構文

XHTML (HTML)

[518] XHTML (Extensible Hypertext Markup Language拡張可能ハイパーテキスト・マーク付け言語) は、 XML構文によって記述された HTML です。 XHTML は1990年代末から2000年代初頭にかけて HTMLWeb の近未来であると信じられてきましたが、規格開発の迷走と Webブラウザーの実装者や WebサイトWebアプリケーション製作・開発者からの不支持により、 旧来の HTML から XHTML への移行は失敗に終わったとの見方が強まっています。

[27] HTML要素属性APIXML において用いることは、 現在も認められています。 Web互換性のため、当面は (少なくても今後数年間は確実に) それが変わることはないと考えられます。しかし、 「XHTML」 という用語は特に必要でもないとして、2016年11月に廃止されました >>24

[39] 本項では HTMLXML 移植版を XHTML と呼んでいた時代の事情を扱っています。 現在の事情については、

バリエーション

[28] 歴史的には XHTML には次の大きく3つのバリエーションがありました。

XHTML1
HTML4XML に移植した XHTML 1.0 にはじまり、 小改訂を重ねた XHTML m12nXHTML 1.1 などを含む系統です。 W3C XHTML2 WG (旧 HTML WG) により仕様策定が行われてきました。
XHTML2
XHTML1 を1から見直すという触れ込みで宣伝された次世代 XHTML 仕様案でしたが、支持を得られず完成しないまま放棄されることになりました。
XHTML5
HTML5XML 構文による表現です。後方互換性を破棄して新たに設計し直すとした XHTML2 に対し、 XHTML5XHTML 1.0 に対する後方互換性を維持したまま新時代の要求に応えようと試みています。

定義

WHATWG による定義

[526] 書きかけ

[527] XHTML語彙としての HTML を使って記述された文書XML という構文によって表現したものです。 HTML5 仕様書では XHTML5 とも呼んでいます。

XHTML2 WG による定義

[26]

XHTML
拡張可能ハイパーテキストマーク付け言語XHTML は1つの1枚岩のマーク付け言語の名前ではなく、 このマーク付け言語を集成的に形成する文書型族の名前です。 XHTML名前空間URIhttp://www.w3.org/1999/xhtml です。 注意: 将来の版の XHTML は異なる名前空間を用いるかもしれません。

メモ

[528] 両 Working Group の定義の違いは両者の HTML という言語に対する捉え方の違いが表れています。

XHTML2 WGXHTML は複数のマーク付け言語の集合体であるとしました。 XHTML m12n 仕様書で規定されるモジュールRoleRDFa 等の個別仕様書で定義されるモジュール、あるいは XHTML 以外で定義されたモジュールを自由に組み合わせ、自由に「XHTML 族」 のマーク付け言語を設計できるようにしました。

一方で WHATWGXHTML は単一のマーク付け言語であるとしました。 もちろん 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 に対する (そこから移行させるだけの) 十分な利点を提供・周知できず、移行は失敗に終わりつつあります。 HTMLXHTML の関係やそれぞれの利点と欠点、あるいは移行の方法論に関しては様々な議論がありました。 詳しくは HTMLとXHTML の項をご覧ください。

[521] CSS における HTMLXHTMLレンダリングの違いについても同項をご覧ください。

XHTML の媒体型

[519] XHTML の普及の妨げの1つは媒体型の問題でした。 XHTML媒体型について詳しくは XHTML媒体型の項をご覧ください。

XHTML と携帯電話

[524] 携帯電話WebブラウザーXHTML にしか対応していない、あるいは XHTML にするべきだなどとする神話やプロパガンダが一部で横行したことがありました。 実際には携帯電話対象の WebサイトPC 対象の Webサイト同様、 マーク付けの品質は非常に低く、携帯電話Webブラウザーもまた、 誤り処理を行う“ふつう”の Webブラウザーに過ぎません。などという話題は XHTMLと携帯電話の項をご覧ください。

適合性

[29] 厳密適合XHTML文書が、各 XHTML 仕様書で規定されていました。 これは当該仕様書の機能のみを使って適合することを表していました。

[30] XHTML は「拡張可能」を謳っていますが、その運用と適合性の関係はあまり明確ではなく、 何が望ましい利用方法であるのか諸説あって混乱していました。

[31] XHTMLモジュールを使ってXHTML族文書型 (など何らかの分類に適合する文書型) を何らかの仕様書で定義すると共に、そこで適合性を規定し、 一般の著者はそれに従う、というのが当初の HTML WG の想定だったかもしれません。

[32] 現実には、 (仕様書が何と言っていようと無視している人達はともかくとして、 仕様書に従おうとする人達は) XHTML 1.0XHTML 1.1 に含まれない機能を使うと非妥当になり、 Validator の検査を通らなくなることから、 それ以外の機能を断念したり、技術的に歪んだ回避策を考えたりして、 「拡張可能」とは一体なんだったのかと考えさせる利用実態でした。

[33] XHTMLRDF/XML を組み合わせようと考えた人達は、 RDF/XML を組み込むことで非妥当になることを回避するため、 RDF/XMLHTML注釈に埋め込む方法を採りました。

[35] XHTML 1.1 に含まれなかった target 属性による閲覧文脈の指定機能を使いたかった人達の中には、 JavaScriptonclick を使ったり、target IDL属性を使ったりして Validator のエラーを回避しようとする人もいました。

[36] XML名前空間など XHTML の「拡張可能」機能の利用が現実的に難しいと考えた人達の一部は、 class 属性などを使って事実上言語を拡張するマイクロフォーマット (やそれと同様の言語体系) を考案し、利用するようになりました。

歴史

W3C 以外の XML 版 HTML

[15] W3C が HTML 4 を XML に移植した XHTML 1 を標準化する以前にも、独自に HTML を XML に移植しようとする試みが幾度かなされたことがありました。

[16] Schema for Object-Oriented XML http://www.w3.org/TR/NOTE-SOX/ は、1998年と1999年に W3C に提出された Note で、 XML の schema 言語を提案しています。 この中で、文書説明の記述の手段として HTML を採用しています。

[47] xHTML

[46] IIIFのHTML

XHTML2 Working Group の終焉

[525] XHTML2 WG の項をご覧ください。

統計

[96] HTML5 IRC logs: w3c / #html-wg / 20070423 (2007-06-30 15:38:51 +09:00 版) http://krijnhoetmer.nl/irc-logs/html-wg/20070423#l-17

XML媒体型で提供されているのうち 0.0014% が XHTML

実例

[522] XHTML は実世界ではほとんど利用されていません。世間一般では text/htmlXHTML 文書型を名乗る文書が利用されることがあり、実のところこの形態の文書はかなり大量に存在しているのですが、 旧 W3C HTML Working Group (XHTML2 Working Group の前身、現在の HTML Working Group とは別組織) の方針に基づき WebブラウザーXHTML であると認識していません。真の XHTML は Web 全体でも数えるほどしか利用例がありません。 それすら、間違ったものが少なくありません。

[523] XHTML の実世界での利用例については XHTML実例の項をご覧ください。

メモ

[7] XHTMLTM = Extensible hypertext markup language。 拡張可能ハイパーテキスト・マーク付け言語。

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 の誕生から現在まで歴史的に引きずっていた仕様も整理するなど大胆な変更が加えられ、より整った言語体系になると思われます。

(既に実験的に使い始めている人もいますが、実用段階になるのはまだ先でしょう。)

[17] XHTML Frequently Answered Questions http://www.w3.org/MarkUp/2004/xhtml-faq (名無しさん 2004-07-24 03:33:13 +00:00)

[19] The Elements of Meaningful XHTML http://tantek.com/presentations/2005/03/elementsofxhtml/ (名無しさん)

[25] Re: Sniffing XHTML sent as text/html from Steven Pemberton on 2000-09-13 (www-html@w3.org from September 2000) http://lists.w3.org/Archives/Public/www-html/2000Sep/0024.html (名無しさん)

[34] goer.org: The X-Philes (2007-03-22 09:00:23 +09:00 版) http://www.goer.org/Markup/TheXPhiles/

[65] マークアップの順番 - Weblog (2007-05-08 07:00:00 +09:00 版) http://ryus.s21.xrea.com/w/item/902 (名無しさん 2007-05-11 10:59:07 +00:00)

[73] Re: XHTML Family Document Types and the validator (Shane McCarron 著, 2007-04-30 08:11:10 +09:00 版) http://lists.w3.org/Archives/Public/www-validator/2007Apr/0175.html (名無しさん 2007-06-02 15:54:01 +00:00)

[74] Bug 14 - XHTML Detection is over-eager. (2007-06-03 00:51:05 +09:00 版) http://www.w3.org/Bugs/Public/show_bug.cgi?id=14 (名無しさん 2007-06-02 15:54:20 +00:00)

[95] Re: input on name for XML serialization of HTML 5? (Steven Pemberton 著, 2007-06-21 23:22:32 +09:00 版) http://lists.w3.org/Archives/Public/public-xhtml2/2007Jun/0025.html (名無しさん 2007-06-21 15:23:14 +00:00)

[98] ad_xhtml (2003-04-08 01:38:08 +09:00 版) http://xrea-memo.raccy.org/ad_xhtml.html (名無しさん)

[99] 業者の宣伝 - Weblog (2007-09-11 07:00:00 +09:00 版) http://ryus.s21.xrea.com/w/item/955 (名無しさん)

[101] Shorttags - the odd side of HTML 4.01 - W3C Q&A Weblog (2007-10-10 19:13:03 +09:00 版) http://www.w3.org/QA/2007/10/shorttags.html (名無しさん)

[102] >>101 この話の展開には無理があるんじゃ・・・

[104] HTMLの採用について (agenda) (2007-11-28 20:38:39 +09:00 版) http://jintrick.net/agenda/2007/11/html-14.html (名無しさん 2007-11-30 01:15:07 +00:00)

[106] seamonkey/parser/htmlparser/src/nsExpatDriver.cpp (2007-11-19 20:16:26 +09:00 版) http://lxr.mozilla.org/seamonkey/source/parser/htmlparser/src/nsExpatDriver.cpp#285

[530] IRC logs: freenode / #whatwg / 20090711 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20090711

[531] HTML5 Revision Tracker ( 版) http://html5.org/tools/web-apps-tracker?from=4690&to=4691

[532] RE: Request for Volunteers: Polyglot spec (Eliot Graff 著, 版) http://lists.w3.org/Archives/Public/public-html/2010Apr/1091.html

[533] HTML/XHTML Compatibility Authoring Guidelines ( 版) http://dev.w3.org/html5/html-xhtml-author-guide/html-xhtml-authoring-guide.html

[534] HTML/XHTML Compatibility Authoring Guidelines ( 版) http://dev.w3.org/cvsweb/~checkout~/html5/html-xhtml-author-guide/html-xhtml-authoring-guide.html?content-type=text/html;%20charset=utf-8

[535] Polyglot Markup: HTML-Compatible XHTML Documents ( 版) http://www.w3.org/TR/2010/WD-html-polyglot-20100624/

[536] Bug 10889 – Content Model section should cite the Polyglot document for further advice ( ( 版)) http://www.w3.org/Bugs/Public/show_bug.cgi?id=10889

[537] Web Applications 1.0 r5610 ref the polyglot specFixing http://www.w3.org/Bugs/Public/show_bug.cgi?id=10889 ( ( 版)) http://html5.org/tools/web-apps-tracker?from=5609&to=5610

[538] IRC logs: freenode / #whatwg / 20101014 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20101014

[539] Polyglot Markup: HTML-Compatible XHTML Documents ( ( 版)) http://www.w3.org/TR/2010/WD-html-polyglot-20101019/

[540] Polyglot Markup: HTML-Compatible XHTML Documents ( ( 版)) http://www.w3.org/TR/2010/WD-html-polyglot-20101019/

[541] Polyglot Markup: HTML-Compatible XHTML Documents ( ( 版)) http://www.w3.org/TR/2011/WD-html-polyglot-20110113/

[542] Notes on the draft polyglot document Polyglot document ( (Tim Berners-Lee 著, 版)) http://lists.w3.org/Archives/Public/public-html/2010Jun/0225

[543] Polyglot Markup: HTML-Compatible XHTML Documents ( ( 版)) http://www.w3.org/TR/2011/WD-html-polyglot-20110525/

[544] Polyglot Markup: HTML-Compatible XHTML Documents ( ( 版)) http://www.w3.org/TR/2012/WD-html-polyglot-20120329/

[545] Web Application Description Language ( ( 版)) http://www.w3.org/Submission/2009/SUBM-wadl-20090831/#x3-80002.3

[546] tantek/log/2003/01 ( (Tantek Çelik 著, 版)) http://tantek.com/log/2003/01.html#L20030114t1345

[547] Polyglot Markup: HTML-Compatible XHTML Documents ( ( 版)) http://www.w3.org/TR/2012/WD-html-polyglot-20121025/

[50] IRC logs: freenode / #whatwg / 20121112 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20121112

[548] IRC logs: freenode / #whatwg / 20121112 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20121112

[549] IRC logs: freenode / #whatwg / 20121207 ( ( 版)) http://krijnhoetmer.nl/irc-logs/whatwg/20121207

[550] Web Applications 1.0 r7646 Remove some entries that really aren't helping anyone. ( ( 版)) http://html5.org/tools/web-apps-tracker?from=7645&to=7646

[551] Polyglot Markup: A robust profile of the HTML5 vocabulary ( ( 版)) http://www.w3.org/TR/2013/WD-html-polyglot-20131022/

[552] いつのまにか http://www.w3.org/TR/xhtmlhttp://www.w3.org/MarkUp/ へのリダイレクトになっています。 (/MarkUp/ には現 HTML WG へのリンクが追加されています。)

[553] Polyglot Markup: A robust profile of the HTML5 vocabulary ( ( 版)) http://www.w3.org/TR/2014/WD-html-polyglot-20140204/

[554] HbbTVXHTMLプロファイルを定義しています。 MIME型application/vnd.hbbtv.xhtml+xml とされています。

[555] Polyglot Markup: A robust profile of the HTML5 vocabulary ( ( 版)) http://www.w3.org/TR/html-polyglot/

[556] Bug 21818 – XHTML5: Permit <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/> ( ( 版)) https://www.w3.org/Bugs/Public/show_bug.cgi?id=21818

[20] XHTML in IE9 - IEBlog - Site Home - MSDN Blogs ( 版) http://blogs.msdn.com/b/ie/archive/2010/11/01/xhtml-in-ie9.aspx

[21] 1044332 – Stop treating XHTML as XML ( 版) https://bugzilla.mozilla.org/show_bug.cgi?id=1044332

[22] IRC logs: freenode / #whatwg / 20150909 ( 版) http://krijnhoetmer.nl/irc-logs/whatwg/20150909

# [10:28] <annevk> o_O, http://www.w3.org/TR/xhtml/ redirects to /Markup/

# [11:01] <MikeSmith> long-term I guess I can ask for http://www.w3.org/TR/xhtml/ to be symlinked to /TR/xhtml1 instead

[23] [e] (0) s/Macromedia/Adobe/, remove some text I thought I'd already r… ( (Hixie著, )) https://github.com/whatwg/html/commit/2cbd2d2232236ea34e92396171f34f49e1d908e5

[24] Refer to XML rather than XHTML syntax (sideshowbarker著, ) https://github.com/whatwg/html/commit/643d1bce74435ec5e7980245e3ab2669b2bc985b

[40] Should the reference to Polyglot Markup be removed? · Issue #765 · w3c/html () https://github.com/w3c/html/issues/765

[41] >>552 いつの間にかリダイレクト先が https://www.w3.org/TR/html/ (今は HTML 5.1) になっています。

[42] XHTML because it has a DOCTYPE — Anne’s Blog () https://annevankesteren.nl/2005/06/xhtml-doctype

[43] It's just a NOTE, don't quote (XHTML Media Types) — Anne’s Blog () https://annevankesteren.nl/2004/08/xhtml-media-types

[44] MIME types matter; DOCTYPEs don't — Anne’s Blog () https://annevankesteren.nl/2004/07/mime

[45] Bring outdated parts of the FAQ up to date (sideshowbarker著, ) https://github.com/whatwg/html/commit/5d512fe6f54a332d13ff2d0fee59f12a8d1701b3

[18] () http://www.xml.gr.jp/event/99contest/xmlcontest.xml

<html xmlns="http://www.w3.org/Profiles/XHTML-Transitional" xmlns:contest="http://www.xml.gr.jp/xmlcontest" xmllang="ja">

[48] null, , https://www.nakanihon.co.jp/gijyutsu/Shimada/CompLinguistics/chapter060601.html

より上位のバージョンがXHTMLです。Xはextended(拡張の意味)です。こちらは単純な数式も編集できることになっていますが、まだ一般的ではありません。

[49] X の誤解はよくあるが数式がーというのは珍しい。 MathML と組み合わせられることに由来する? だとしても「単純な」という限定は謎。