- [1] Modularization of XHTML。 - [2] [[XHTML1]] の構成要素 ([[要素型]]や[[属性]]など) を、他の XML を採用した規格と柔軟に組み合わせて応用できるようにバラバラに分解した規格。 - [3] XHTML 1 を[[モジュール]]として分解するに留まらず、一般にモジュールを作ったり組み合わせたりする概念や [[DTD]] の使い方のモデルにもなってます。 [62] [[XHTML m12n]] で定義されている[[モジュール]]: ,[[抽象モジュール]] ,[[DTDモジュール]] ,[[XML Schemaモジュール]] , ,[[文字実体]]※ ,[[文字実体]]※ , ,→[[XML互換ISOラテン1文字実体集合]] , ,→[[XML互換ISO特殊文字実体集合]] , ,→[[ISO数学・ギリシャ・記号的文字実体集合]] , ,[[モジュール化枠組]] ,[[モジュール化枠組]] , ,→[[基底体系]] , , ,→[[記法]] ,→[[記法]] , ,→[[データ型]] ,→[[データ型]] ,[[属性集成]] ,→[[共通属性]] ,→[[共通属性]] , ,→[[修飾名]] , ,→[[文字実体]] ,→[[文字実体]] , ,[[モジュール実装]]※ ,[[モジュール実装]]※ ,[[中核]] ,→[[中核]]※ ,→[[中核]]※ ,→[[構造]] ,→→[[構造]] ,→→[[文書構造]] ,→[[文]] ,→→[[文]] ,→→[[文]] ,→[[ハイパーテキスト]] ,→→[[ハイパーテキスト]] ,→→[[ハイパーテキスト]] ,→[[リスト]] ,→→[[リスト]] ,→→[[リスト]] ,[[アプレット]] ,→[[Javaアプレット]] ,→[[Javaアプレット]] ,[[文拡張]] ,→[[文]]※ ,→[[文]]※ ,→[[表現]] ,→→[[表現]] ,→→[[表現]] ,→[[編集]] ,→→[[編集要素]] ,→→[[編集要素]] ,→[[双方向的文]] ,→→[[BDO要素]] ,→→[[BDO要素]] ,[[フォーム]] ,→[[フォーム]]※ ,→[[フォーム]]※ ,→[[基本フォーム]] ,→→[[単純化フォーム]] ,→→[[基本フォーム]] ,→[[フォーム]] ,→→[[フォーム]] ,→→[[フォーム]] ,[[表]] ,→[[表]]※ ,→[[表]]※ ,→[[基本表]] ,→→[[基本表]] ,→→[[基本表]] ,→[[表]] ,→→[[表]] ,→→[[表]] ,[[画像]] ,→[[画像]] ,→[[画像]] ,[[クライアント側画像写像]] ,→[[クライアント側画像写像]] ,→[[クライアント側画像写像]] ,[[鯖側画像写像]] ,→[[鯖側画像写像]] ,→[[鯖側画像写像]] ,[[物体]] ,→[[埋込み物体]] ,→[[埋込み物体]] ,[[枠]] ,→[[枠]] ,→[[枠]] ,[[対象]] ,→[[対象]] ,→[[対象]] ,[[内枠]] ,→[[内枠]] ,→[[行内フレーム要素]] ,[[内在事象]] ,→[[内在事象]] ,→[[内在事象]] ,[[メタ情報]] ,→[[文書メタ情報]] ,→[[メタ情報]] ,[[スクリプト]] ,→[[文書スクリプト]] ,→[[スクリプト]] ,[[スタイル・シート]] ,→[[文書スタイル・シート]] ,→[[スタイル・シート]] ,[[スタイル属性]] ,→[[行内スタイル]] ,→[[行内スタイル]] ,[[リンク]] ,→[[リンク要素]] ,→[[リンク要素]] ,[[基底]] ,→[[基底要素]] ,→[[基底要素]] ,[[名前識別]] ,→[[名前識別]] ,→[[名前識別]] ,[[遺物]] ,→[[遺物マーク付け]] ,→[[遺物マーク付け]] , , ,→[[ルビ]] , ,[[支援モジュール]]※ ,[[支援モジュール]]※ ,([[文]]) ,→[[ブロック語句的]] ,→[[ブロック語句的]] ,([[表現]]) ,→[[ブロック表現的]] ,→[[ブロック表現的]] ,([[文]]) ,→[[ブロック構造的]] ,→[[ブロック構造的]] ,([[文]]) ,→[[行内語句的]] ,→[[行内語句的]] ,([[表現]]) ,→[[行内表現的]] ,→[[行内表現的]] ,([[文]]) ,→[[行内構造的]] ,→[[行内構造的]] ,([[アプレット]]、[[物体]]) ,→[[引数要素]] ,→[[引数要素]] ,([[遺物]]) ,→[[遺物再宣言]] ,→[[その他遺物マーク付け]] ;; [Q[※]]は実際の[[モジュール]]なし ([[見出し]]のみ)。 [64] [[抽象モジュール]]と[[DTDモジュール]]で内容が一致していないのが沢山あってひどい。 [[属性定義]]や[[内容モデル]]の定義が [[DTD]] では[[抽象モジュール]]に近い形でできないのは仕方ないにしても。。。 [65] [[双方向的文]][[モジュール]]は [CODE(HTMLe)@en[[[bdo]]]] と [CODE(HTMLa)@en[[[dir]]]] が定義されているところ、 [[DTDモジュール]]では [CODE(HTMLa)@en[[[dir]]]] は[[共通属性]][[モジュール]]に入っていて、 [CODE(HTMLe)@en[[[bdo]]]] だけが定義されている、 ということで [[BDO要素]][[モジュール]]なる名前になっていますが、 [[XML Schemaモジュール]]では両方定義されているのに名前はそのままで [[BDO要素]][[モジュール]]なのはひどい。 [[#comment]] * XHTML m12n 1.0 SE WD → [[XHTML m12n 1.1]] * XHTML m12n 1.1 PR → [[XHTML m12n 1.1]] * XHTML m12n 1.1 LC WD → [[XHTML m12n 1.1]] * メモ [66] [CODE(HTMLe)@en[[[param]]]] は[[アプレット]][[モジュール]]と[[物体]][[モジュール]]の2つで定義されていますが、 重複について特に言及がありません。 ([[名無しさん]]) [67] [[遺物再定義]][[DTDモジュール]]には [CODE(HTMLa)@en[[[lang]]]] が含まれていますが、[[抽象モジュール]]には含まれていません。 ([[名無しさん]]) [68] [CITE@en[W3C Chat before XTech 2000: XHTML - a bridge to the Web of the future]] ([[Dan Connolly]] 著, [CODE[2000-02-21 12:36:22 +09:00]] 版) [CITE[IRC log from 2000-02-25T08:07-0500]] ([CODE[2000-02-26 00:53:02 +09:00]] 版) ([[名無しさん]]) [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: これは 200: ([[名無しさん]]) [72] [CITE@en[XHTML Modularization Overview]] ([[Shane P. McCarron]] 著, [CODE[2001-04-21 16:44:20 +09:00]] 版) ([[名無しさん]]) [73] [CITE[Review of XHTML Modularization]] ([CODE[2007-09-14 01:30:51 +09:00]] 版) * モジュール化フレームワークの崩壊 [74] [CITE[HTML5 IRC logs: freenode / #whatwg / 20071010]] ([CODE[2007-10-10 20:39:55 +09:00]] 版) > [10:00] 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]] では [CODE(HTMLe)@en[[[li]]]] [[要素]]の [CODE(HTMLa)@en[[[value]]]] [[属性]]が「復活」しましたが、 [[XHTML m12n]] で [CODE(HTMLa)@en[[[value]]]] [[属性]]が単独の[[モジュール]]として提供されていなかったために、 どの[[モジュール]]にも属さない[[属性]]として無理矢理に追加されています。 [78] また、元は[[文書型]]の仕様書であったはずの [[XHTML Basic 1.1]] が定義する [CODE(HTMLa)@en[[[inputmode]]]] [[属性]]の[[モジュール]]を同じく[[文書型]]の仕様書であるはずの [[XHTML 1.2]] が参照したりしています。 これでは何のために[[モジュール]]を別の仕様書にしているのかさっぱりわかりません。 [79] [CITE@en[XHTML2 Working Group Teleconference -- 16 Sep 2009]] ([TIME[2009-09-16 23:43:23 +09:00]] 版) > 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 本当に必要なら [[XHTML 1.1]] ではなく [[XHTML m12n]] にこそ含めるべきではないでしょうか。 [80] [[XHTML-Print]] も[[モジュール]]境界とは無関係に[[要素]]や[[属性]]ごとに個別に[[利用者エージェント]]の[[要件]]を定めています。 [[モジュール化]]は [[DI]] も目的の1つではなかったのでしょうか。 * XHTML Modularization Tutorial [76] [DFN@en[XHTML Modularization Tutorial]] は、旧 [[HTML WG]] (現 [[XHTML2 WG]]) が作業していた[[文書]]です。後の [[XHTML M12N 1.0]] の附属書の一部に相当します。