XHTML m12n

XHTML m12n (HTML)

[1] Modularization of XHTML / XHTML Modularization (XHTML のモジュール化XHTML m12n) は、XHTML に含まれる機能 (要素属性) を「モジュール」として分解し、他の XML 語彙と組み合わせることによって派生文書型 (「XHTML族文書型」など) を作成できるようにした仕様です。

[3] 従って単に XHTMLモジュールを定義するにとどまらず、 一般に XMLモジュールの設計とその組み合わせ方のフレームワークを規定するものとなっています。

[2] ただ現実には XHTML m12nXML名前空間と相性が悪い DTD をベースに設計されているなど様々な内部矛盾をはらみ、 XHTML2 WG (旧 HTML WG) 自身も使いこなすことができませんでした。W3C 内においても XHTML m12nフレームワークに完全に従って開発されているモジュールはほとんどありません。

概念

[4] 次のような概念が定義されていました。

XHTML m12n 仕様で規定される XHTML モジュール

[62] XHTML m12n で定義されているモジュール:

抽象モジュールDTDモジュールXML Schemaモジュール
文字実体文字実体
XML互換ISOラテン1文字実体集合
XML互換ISO特殊文字実体集合
ISO数学・ギリシャ・記号的文字実体集合
モジュール化枠組モジュール化枠組
基底体系
記法記法
データ型データ型
属性集成共通属性共通属性
修飾名
文字実体文字実体
モジュール実装モジュール実装
中核中核中核
構造→→構造→→文書構造
→→→→
ハイパーテキスト→→ハイパーテキスト→→ハイパーテキスト
リスト→→リスト→→リスト
アプレットJavaアプレットJavaアプレット
文拡張
表現→→表現→→表現
編集→→編集要素→→編集要素
双方向的文→→BDO要素→→BDO要素
フォームフォームフォーム
基本フォーム→→単純化フォーム→→基本フォーム
フォーム→→フォーム→→フォーム
基本表→→基本表→→基本表
→→→→
画像画像画像
クライアント側画像写像クライアント側画像写像クライアント側画像写像
鯖側画像写像鯖側画像写像鯖側画像写像
物体埋込み物体埋込み物体
対象対象対象
内枠内枠行内フレーム要素
内在事象内在事象内在事象
メタ情報文書メタ情報メタ情報
スクリプト文書スクリプトスクリプト
スタイル・シート文書スタイル・シートスタイル・シート
スタイル属性行内スタイル行内スタイル
リンクリンク要素リンク要素
基底基底要素基底要素
名前識別名前識別名前識別
遺物遺物マーク付け遺物マーク付け
ルビ
支援モジュール支援モジュール
()ブロック語句的ブロック語句的
(表現)ブロック表現的ブロック表現的
()ブロック構造的ブロック構造的
()行内語句的行内語句的
(表現)行内表現的行内表現的
()行内構造的行内構造的
(アプレット物体)引数要素引数要素
(遺物)遺物再宣言その他遺物マーク付け
は実際のモジュールなし (見出しのみ)。

[64] 抽象モジュールDTDモジュールで内容が一致していないのが沢山あってひどい。 属性定義内容モデルの定義が DTD では抽象モジュールに近い形でできないのは仕方ないにしても。。。

[65] 双方向的文モジュールbdodir が定義されているところ、 DTDモジュールでは dir共通属性モジュールに入っていて、 bdo だけが定義されている、 ということで BDO要素モジュールなる名前になっていますが、 XML Schemaモジュールでは両方定義されているのに名前はそのままで BDO要素モジュールなのはひどい。

XHTML m12n 1.0 SE

XHTML m12n 1.1

XHTML m12n 1.1

XHTML m12n 1.1

XHTML m12n 1.1 2e

XHTML m12n 1.1 2e

メモ

[66] paramアプレットモジュール物体モジュールの2つで定義されていますが、 重複について特に言及がありません。 (名無しさん)

[67] 遺物再定義DTDモジュールには lang が含まれていますが、抽象モジュールには含まれていません。 (名無しさん)

[68] W3C Chat before XTech 2000: XHTML - a bridge to the Web of the future (Dan Connolly 著, 2000-02-21 12:36:22 +09:00 版) <http://lists.w3.org/Archives/Public/www-html/2000Feb/0203.html>

IRC log from 2000-02-25T08:07-0500 (2000-02-26 00:53:02 +09:00 版) <http://www.w3.org/2000/02/25-xhtml-irc> (名無しさん)

[69] >>68 特に面白い話題はなかった。 (名無しさん)

[70] HTML 4.01 勧告XHTML m12n 1.0 勧告抽象モジュール定義の要素型属性の対応:

a, abbr, acronym, address, area, b, base, bdo, big, blockquote, body, br, button, caption, cite, code, col, colgroup, del, dfn, div, dd, dl, dt, em, fieldset, form, h1, h2, h3, h4, h5, h6, head, hr, html, i, img, input, ins, kbd, label, legend, li, link, map, meta, noscript, object, ol, option, optgroup, p, pre, q, samp, script, select, small, span, strong, style, sub, sup, table, tbody, td, textarea, tfoot, th, thead, title, tr, tt, ul, var, {td, th}@abbr, {form, input}@accept, form@accept-charset, {a, area, button, input, label, legend, textarea}@accesskey, form@action, {col, colgroup, tbody, td, tfoot, th, thead, tr}@align, {area, img, input}@alt, object@archive, {td, th}@axis, table@border, table@cellpadding, table@cellspacing, {col, colgroup, tbody, td, tfoot, th, thead, tr}@char, {col, colgroup, tbody, td, tfoot, th, thead, tr}@charoff, {a, link, script}@charset, input@checked, {blockquote, del, ins, q}@cite, map@class, object@classid, object@codebase, object@codetype, textarea@cols, {td, th}@colspan, meta@content, {a, area}@coords, object@data, {del, ins}@datetime, object@declare, script@defer, bdo@dir, {button, input, optgroup, option, select, textarea}@disabled, form@enctype, label@for, table@frame, {td, th}@headers, {img, object}@height, base@href, {a, area, link}@href, {a, link}@hreflang, meta@http-equiv, map@id, {img, input}@ismap, {optgroup, option}@label, img@longdesc, input@maxlength, {link, style}@media, form@method, select@multiple, {button, input, object, select, textarea}@name, meta@name, area@nohref, {a, area, button, input, label, select, textarea}@onblur, {input, select, textarea}@onchange, {a, area, button, input, label, select, textarea}@onfocus, body@onload, form@onreset, {input, textarea}@onselect, form@onsubmit, body@onunload, head@profile, {input, textarea}@readonly, {a, link}@rel, {a, link}@rev, textarea@rows, {td, th}@rowspan, table@rules, meta@scheme, {td, th}@scope, option@selected, {a, area}@shape, input@size, select@size, {col, colgroup}@span, {img, input, script}@src, object@standby, table@summary, {a, area, button, input, object, select, textarea}@tabindex, {map, style}@title, button@type, {a, link, object, script, style}@type, input@type, {img, input, object}@usemap, {col, colgroup, tbody, td, tfoot, th, thead, tr}@valign, {button, input, option}@value, {col, colgroup}@width, {img, object}@width, table@width (どちらにもある)

@class, @dir, @id, @onclick, @ondblclick, @onkeydown, @onkeypress, @onkeyup, @onmousedown, ponmousemove, @onmouseout, @onmouseover, @onmouseup, @style, @title (どちらにもあるが定義されている要素型がどうなっているかは調べていない)

html@version (HTML 4.01 では非推奨)

frame, frameset, frameset@cols, frame@frameborder, frame@longdesc, frame@marginheight, frame@marginwidth, frame@noresize, frameset@onload, frameset@onunload, frameset@rows, frame@scrolling, frame@src (HTML 4.01 ではフレーム集合 DTD にのみ存在)

iframe, noframes, iframe@frameborder, iframe@height, iframe@longdesc, iframe@marginheight, iframe@marginwidth, iframe@scrolling, iframe@src, {a, area, base, form, link}@target, iframe@width (HTML 4.01 ではフレーム集合 DTD と移行用 DTD にのみ存在)

applet, applet@alt, applet@archive, applet@code, applet@codebase, applet@height, applet@name, applet@object, applet@width (HTML 4.01 では非推奨、 M12N では所属モジュール非推奨)

param, param@id, param@name, param@type, param@value, param@valuetype (M12N では非推奨モジュールとそうでないモジュールに両方所属)

param, a@name, form@name, img@name, map@name (M12N では非推奨モジュール所属)

frame@name (HTML 4.01 ではフレーム集合 DTD にのみ存在、 M12N では非推奨モジュール所属)

iframe@name (HTML 4.01 ではフレーム集合 DTD と移行用 DTD にのみ存在、 M12N では非推奨モジュール所属)

basefont, center, dir, font, isindex, menu, s, strike, u, caption@align, {div, h1, h2, h3, h4, h5, h6, p}@align, hr@align, {img, input}@align, legend@align, table@align, body@alink, body@background, body@bgcolor, {table, td, th, tr}@bgcolor, img@border, br@clear, {basefont, font}@color, {dir, dl, menu, ol, ul}@compact, {basefont, font}@face, img@hspace, script@language, body@link, hr@noshade, isindex@prompt, hr@size, ol@start, body@text, li@type, ol@type, ul@type, {td, th}@height, {td, th}@nowrap, {basefont, font}@size, li@value, body@vlink, img@vspace, hr@width, pre@width, {td, th}@width (HTML 4.01 でも M12N でも非推奨)

basefont@id (HTML 4.01 にもあるが M12N では非推奨)

table@datapagesize (HTML 4.01 で予約、M12N 1.0 勧告にあるが 1.1 になし)

dl@type, @xml:lang, {pre, script, style}@xml:space, html@xmlns (M12N にだけある)

@lang (HTML 4.01 にだけある)

{applet, iframe, object}@align, object@border, {applet, object}@hspace, {applet, object}@vspace (HTML 4.01 にだけあるが非推奨)

(名無しさん)

[71] 404: <http://www.altheim.com/specs/xhtml/NOTE-xhtml-modular-19990201.html> <http://www.altheim.com/specs/xhtml/NOTE-xhtml-modular-19990202.html>

これは 200: <http://www.altheim.com/specs/xhtml/>

(名無しさん)

[72] XHTML Modularization Overview (Shane P. McCarron 著, 2001-04-21 16:44:20 +09:00 版) <http://www.w3.org/MarkUp/modularization> (名無しさん)

[73] Review of XHTML Modularization (2007-09-14 01:30:51 +09:00 版) <http://www.w3.org/2001/tag/2007/09/xhtml-modularisation-thoughts.html>

モジュール化フレームワークの崩壊

[10] 数少ない採用例の1つ、 XHTML Mobile Profile は、 「Forms (partial)」のような怪しい使い方をしていました。 文書型モジュールの一部分のみを勝手に取捨選択できるのなら、 モジュール化とは何だったのかという感じです。

[74] HTML5 IRC logs: freenode / #whatwg / 20071010 ( 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20071010#l-71>
[10:00] <hsivonen>

Hixie: if Modularization has taught us anything, it is that those who reuse a vocabulary pick and choose what they want instead of doing what the designer of the vocabulary wanted

[75] >>74 DTDモジュールには抽象モジュールにない豊富な機能スイッチ (仕様内の自己矛盾だろw) があるにも関わらず、 XHTML2 WGXHTML Basic 1.1 で m12n architecture の自己破壊をやってますからね。。。。。。

[77] XHTML Basic 1.1 では li 要素value 属性が「復活」しましたが、 XHTML m12nvalue 属性が単独のモジュールとして提供されていなかったために、 どのモジュールにも属さない属性として無理矢理に追加されています。

[78] また、元は文書型の仕様書であったはずの XHTML Basic 1.1 が定義する inputmode 属性モジュールを同じく文書型の仕様書であるはずの XHTML 1.2 が参照したりしています。 これでは何のためにモジュールを別の仕様書にしているのかさっぱりわかりません。

[79] XHTML2 Working Group Teleconference -- 16 Sep 2009 ( 版) <http://www.w3.org/2009/09/16-xhtml-minutes.html#item05>
<ShaneM>

Thanks for your comment. @lang is not deprecated, and no, it does not need to be included in the module in XHTML M12N. We have chosen to incorporate it into XHTML 1.1 because several groups have demonstrated a need for it. The rules specified describe the relationship between @lang and @xml:lang.

Steven

You are right

[11] 本当に必要なら XHTML 1.1 ではなく XHTML m12n にこそ含めるべきではないでしょうか。

[80] XHTML-Printモジュール境界とは無関係に要素属性ごとに個別に利用者エージェント要件を定めています。 モジュール化DI も目的の1つではなかったのでしょうか。

XHTML Modularization Tutorial

[76] XHTML Modularization Tutorial は、旧 HTML WG (現 XHTML2 WG) が作業していた文書です。後の XHTML M12N 1.0 の附属書の一部に相当します。

メモ

[81] XHTML Modularization: a markup language designer's toolkit - W3C Blog ( 版) <http://www.w3.org/QA/2010/06/xhtml_modularization_a_markup.html>

[82] XHTML Modularization in RelaxNG (Steven Pemberton 著, 版) <http://lists.w3.org/Archives/Public/public-xhtml2/2010Apr/0009>

[83] Schemas for XHTML (MURATA Makoto (FAMILY Given) 著, 版) <http://lists.w3.org/Archives/Public/www-tag/2010Mar/0082.html>

[6] Modularization of XHTML - XHTML DTD Module Implementations <http://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/dtd_module_defs.html#a_module_XHTML_Special_Characters>: 定義済み実体の宣言が激しく変じゃない? 仕様書本文中の DTD も、単独資源としての DTD も。

[7] >>6 errata には載ってない。

[8] >>6 XHTML1.1 とかの flat DTD ではなぜか正常。

[9] <http://www.w3.org/TR/xhtml-modularization/DTD/templates/> とか <http://www.w3.org/TR/xhtml-modularization/DTD/examples/> の下には色々面白い例があります。 (これらの URI 自体は 403 になるので、どんな中身があるかは archived 版を入手して調べる必要があります。) XHTML というより一般に DTD のモジュール化の入門といった感じです。

[5] Modularization of XHTML <http://www.w3.org/TR/xhtml-modularization/>

[12] CFC: Make previous versions of HTML and XHTML obsoleteCFC: Make previous versions of HTML and XHTML obsolete · Issue #86 · w3c/WebPlatformWG () <https://github.com/w3c/WebPlatformWG/issues/86>

[13] Proposal to Republish Previous Versions of HTML and XHTML as Obsolete Recommendations (Wide Review until 2017-09-07) (Xueyuan著, ) <https://lists.w3.org/Archives/Public/public-review-announce/2017Aug/0004.html>