[1] Modularization of XHTML / XHTML Modularization (XHTML のモジュール化、 XHTML m12n) は、XHTML に含まれる機能 (要素や属性) を「モジュール」として分解し、他の XML 語彙と組み合わせることによって派生文書型 (「XHTML族文書型」など) を作成できるようにした仕様です。
[3] 従って単に XHTML のモジュールを定義するにとどまらず、 一般に XML のモジュールの設計とその組み合わせ方のフレームワークを規定するものとなっています。
[2] ただ現実には XHTML m12n は XML名前空間と相性が悪い DTD をベースに設計されているなど様々な内部矛盾をはらみ、 XHTML2 WG (旧 HTML WG) 自身も使いこなすことができませんでした。W3C 内においても XHTML m12n のフレームワークに完全に従って開発されているモジュールはほとんどありません。
[4] 次のような概念が定義されていました。
[62] XHTML m12n で定義されているモジュール:
[64] 抽象モジュールとDTDモジュールで内容が一致していないのが沢山あってひどい。 属性定義や内容モデルの定義が DTD では抽象モジュールに近い形でできないのは仕方ないにしても。。。
[65]
双方向的文モジュールは bdo
と dir
が定義されているところ、
DTDモジュールでは dir
は共通属性モジュールに入っていて、
bdo
だけが定義されている、
ということで BDO要素モジュールなる名前になっていますが、
XML Schemaモジュールでは両方定義されているのに名前はそのままで
BDO要素モジュールなのはひどい。
[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)」のような怪しい使い方をしていました。 文書型がモジュールの一部分のみを勝手に取捨選択できるのなら、 モジュール化とは何だったのかという感じです。
[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 WG は XHTML Basic 1.1 で m12n architecture の自己破壊をやってますからね。。。。。。
[77] XHTML Basic 1.1 では li
要素の
value
属性が「復活」しましたが、 XHTML m12n
で value
属性が単独のモジュールとして提供されていなかったために、
どのモジュールにも属さない属性として無理矢理に追加されています。
[78] また、元は文書型の仕様書であったはずの XHTML Basic 1.1 が定義する
inputmode
属性のモジュールを同じく文書型の仕様書であるはずの
XHTML 1.2 が参照したりしています。
これでは何のためにモジュールを別の仕様書にしているのかさっぱりわかりません。
<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つではなかったのでしょうか。
[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 も。
[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
[14] NLM Journal Archiving and Interchange Tag Suite Version 2.3 (, ) http://dtd.nlm.nih.gov/2.3/