[1] [DFN[Modularization of XHTML]] / [DFN[XHTML Modularization]] ([DFN[XHTML のモジュール化]]、
[DFN[XHTML m12n]]) は、[[XHTML]] に含まれる[[機能]] ([[要素]]や[[属性]])
を「[[モジュール]]」として分解し、他の [[XML]] [[語彙]]と組み合わせることによって派生[[文書型]]
(「[[XHTML族文書型]]」など) を作成できるようにした仕様です。

[3] 従って単に [[XHTML]] の[[モジュール]]を定義するにとどまらず、
一般に [[XML]] の[[モジュール]]の設計とその組み合わせ方の[[フレームワーク]]を規定するものとなっています。

[2] ただ現実には [[XHTML m12n]] は [[XML名前空間]]と相性が悪い [[DTD]]
をベースに設計されているなど様々な内部矛盾をはらみ、 [[XHTML2 WG]]
(旧 [[HTML WG]]) 自身も使いこなすことができませんでした。[[W3C]] 内においても [[XHTML m12n]]
の[[フレームワーク]]に完全に従って開発されている[[モジュール]]はほとんどありません。

* 概念

[4] 次のような概念が定義されていました。

[FIG(short list)[
- [[XHTML族文書型]]
- [[混成文書型]]
- [[XHTMLホスト言語]]
- [[XHTML統合集合文書型]]
- [[モジュール][XHTMLモジュール]]
-- [[抽象モジュール]]
-- [[DTDモジュール]]
-- [[XML Schemaモジュール]]
- [[DTD駆動器]]
- [[DTD実装]]
- [[XML Schema実装]]
- [[RELAX NG実装]]
- [[属性集成]]
]FIG]

* XHTML m12n 仕様で規定される XHTML モジュール

[62] [[XHTML m12n]] で定義されている[[モジュール]]:
[FIG(list)[
,*[[抽象モジュール]]	,*[[DTDモジュール]]	,*[[XML Schemaモジュール]]
,	,[[文字実体]]※	,[[文字実体]]※
,	,→[[XML互換ISOラテン1文字実体集合]]
,	,→[[XML互換ISO特殊文字実体集合]]
,	,→[[ISO数学・ギリシャ・記号的文字実体集合]]
,	,[[モジュール化枠組]]	,[[モジュール化枠組]]
,	,→[[基底体系]]	,
,	,→[[記法]]	,→[[記法]]
,	,→[[データ型]]	,→[[データ型]]
,[[属性集成]]	,→[[共通属性]]	,→[[共通属性]]
,	,→[[修飾名]]
,	,→[[文字実体]]	,→[[文字実体]]
,	,[[モジュール実装]]※	,[[モジュール実装]]※
,[[中核]]	,→[[中核]]※	,→[[中核]]※
,→[[構造]]	,→→[[構造]]	,→→[[文書構造]]
,→[[文]]	,→→[[文]]	,→→[[文]]
,→[[ハイパーテキスト]]	,→→[[ハイパーテキスト]]	,→→[[ハイパーテキスト]]
,→[[リスト]]	,→→[[リスト]]	,→→[[リスト]]
,[[アプレット]]	,→[[Javaアプレット]]	,→[[Javaアプレット]]
,[[文拡張]]	,→[[文]]※	,→[[文]]※
,→[[表現]]	,→→[[表現]]	,→→[[表現]]
,→[[編集]]	,→→[[編集要素]]	,→→[[編集要素]]
,→[[双方向的文]]	,→→[[BDO要素]]	,→→[[BDO要素]]
,[[フォーム]]	,→[[フォーム]]※	,→[[フォーム]]※
,→[[基本フォーム]]	,→→[[単純化フォーム]]	,→→[[基本フォーム]]
,→[[フォーム]]	,→→[[フォーム]]	,→→[[フォーム]]
,[[表]]	,→[[表]]※	,→[[表]]※
,→[[基本表]]	,→→[[基本表]]	,→→[[基本表]]
,→[[表]]	,→→[[表]]	,→→[[表]]
,[[画像]]	,→[[画像]]	,→[[画像]]
,[[クライアント側画像写像]]	,→[[クライアント側画像写像]]	,→[[クライアント側画像写像]]
,[[鯖側画像写像]]	,→[[鯖側画像写像]]	,→[[鯖側画像写像]]
,[[物体]]	,→[[埋込み物体]]	,→[[埋込み物体]]
,[[枠]]	,→[[枠]]	,→[[枠]]
,[[対象]]	,→[[対象]]	,→[[対象]]
,[[内枠]]	,→[[内枠]]	,→[[行内フレーム要素]]
,[[内在事象]]	,→[[内在事象]]	,→[[内在事象]]
,[[メタ情報]]	,→[[文書メタ情報]]	,→[[メタ情報]]
,[[スクリプト]]	,→[[文書スクリプト]]	,→[[スクリプト]]
,[[スタイル・シート]]	,→[[文書スタイル・シート]]	,→[[スタイル・シート]]
,[[スタイル属性]]	,→[[行内スタイル]]	,→[[行内スタイル]]
,[[リンク]]	,→[[リンク要素]]	,→[[リンク要素]]
,[[基底]]	,→[[基底要素]]	,→[[基底要素]]
,[[名前識別]]	,→[[名前識別]]	,→[[名前識別]]
,[[遺物]]	,→[[遺物マーク付け]]	,→[[遺物マーク付け]]
,	,	,→[[ルビ]]
,	,[[支援モジュール]]※	,[[支援モジュール]]※
,([[文]])	,→[[ブロック語句的]]	,→[[ブロック語句的]]
,([[表現]])	,→[[ブロック表現的]]	,→[[ブロック表現的]]
,([[文]])	,→[[ブロック構造的]]	,→[[ブロック構造的]]
,([[文]])	,→[[行内語句的]]	,→[[行内語句的]]
,([[表現]])	,→[[行内表現的]]	,→[[行内表現的]]
,([[文]])	,→[[行内構造的]]	,→[[行内構造的]]
,([[アプレット]]、[[物体]])	,→[[引数要素]]	,→[[引数要素]]
,([[遺物]])	,→[[遺物再宣言]]	,→[[その他遺物マーク付け]]

;; 
[Q[※]]は実際の[[モジュール]]なし ([[見出し]]のみ)。
]FIG]

[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要素]][[モジュール]]なのはひどい。

* XHTML m12n 前史

[21] 
[TIME[平成9(1997)年][1997]]、
[[Sun Microsystems, Inc.]] の [[Murray Altheim]]
は
[[HTML 3.2]] を[[モジュール]]化した
[[SHML]]
を開発しました。
[SEE[ [[SHML]] ]]

[26] 
[TIME[平成11(1999)年][1999]]、
[[Sun Microsystems, Inc.]] の 
[[Murray Altheim]]
は
[[HTML 4.0]] を[[モジュール]]化した
[[XHTML]]
を開発しました。

- [24] 
[CITE[XML Modularization of HTML 4.0]], [TIME[2024-08-14T07:35:09.000Z]], [TIME[2001-03-08T21:31:34.798Z]] <https://web.archive.org/web/20010308212952/http://www.altheim.com/specs/xhtml/NOTE-xhtml-modular-19990125.html>
- [22] [CITE[XML Modularization of HTML 4.0]], [TIME[2024-08-14T07:34:44.000Z]], [TIME[2001-05-27T12:37:34.412Z]] <https://web.archive.org/web/20010527123715/http://www.altheim.com/specs/xhtml/NOTE-xhtml-modular-19990201.html>
- [25] 
[CITE[XML Modularization of HTML 4.0]], [TIME[2007-01-10T03:45:13.000Z]], [TIME[2024-08-14T07:35:24.492Z]] <http://www.altheim.com/specs/xhtml/NOTE-xhtml-modular.html>
-- [23] [CITE[XML Modularization of HTML 4.0]], [TIME[2024-08-14T07:35:03.000Z]], [TIME[2001-03-08T21:31:38.270Z]] <https://web.archive.org/web/20010308213056/http://www.altheim.com/specs/xhtml/NOTE-xhtml-modular-19990202.html>

[27] >>25 には

>In this document [I[[B[XHTML]]]] (ie., "extensible HTML") is used to refer to this XML reformulation of HTML 4.0 rather than the W3C HTML Working Group code name [I[Voyager]], in order to reduce confusion with the products of the Working Group.

とあります。当時 [[HTML WG]] は [[XHTML]] のことを [[Voyager]] と呼んでいました。
それとの区別のために [[XHTML]] と呼ぶと言っています。
[[XHTML]] という名称はこれ発祥だったのでしょうか。

;; [28] [[Wilbur]] ([[HTML 3.2]])、
[[Cougar]] ([[HTML 4.0]])、
[[Voyager]]
と [[W3C]] は歴代 [[HTML]] プロジェクトに[[コード名]]を付けていました。
(更に言えば当時の[[計算機]]業界が新規事業に[[コード名]]を付けがちだった感があります。)


;; [93] 
[[Voyager]] ([TIME[1998-12-05]])
の編集者には
[[Murray Altheim]]
も入っています。
[[Voyager]]
は基本的には後の [[XHTML 1.0]]
につながる内容ですが、技術的な違いもままあります。また、
[[モジュール]]構成も示されていますが、
[[XHTML m12n]] と似た構成ながらこれも少し違っています。
[[XHTML]] という言葉は出てきません。


* XHTML m12n 1.0 FE

[29] [[SHML]], [[XML Modularization of HTML 4.0]] と開発されてきた 
[[DTD]] の[[モジュール化]]技法はそのまま [[HTML WG]] に採用されて
[[XHTML m12n]] 仕様となりました。
[[Murray Altheim]]
がそのまま編集者の1人になりました。

- [20] 
[CITE[Modularization of XHTML]], [TIME[1999-04-06T22:18:50.000Z]], [TIME[2024-08-14T03:26:13.720Z]] <https://www.w3.org/TR/1999/xhtml-modularization-19990406/xhtml-modularization-19990406.html>
- [19] 
[CITE[Modularization of XHTML]], [TIME[1999-09-10T13:59:13.000Z]], [TIME[2024-08-14T03:26:00.551Z]] <https://www.w3.org/TR/1999/WD-xhtml-modularization-19990910/xhtml-modularization-19990910.html>
- [18] 
[CITE[Modularization of XHTML]], [TIME[2000-01-05T21:44:45.000Z]], [TIME[2024-08-14T03:25:44.540Z]] <https://www.w3.org/TR/2000/WD-xhtml-modularization-20000105/xhtml-modularization-20000105.html>
- [17] 
[CITE[Modularization of XHTML]], [TIME[2000-10-20T20:35:01.000Z]], [TIME[2024-08-14T03:25:33.075Z]] <https://www.w3.org/TR/2000/CR-xhtml-modularization-20001020/xhtml-modularization-20001020.html>

- [16] 
[CITE[Modularization of XHTML]], [TIME[2001-02-23T18:38:56.000Z]], [TIME[2024-08-14T03:25:19.167Z]] <https://www.w3.org/TR/2001/PR-xhtml-modularization-20010222/xhtml-modularization.html>
- [15] 
[CITE[Modularization of XHTML]], [TIME[2001-04-10T13:54:35.000Z]], [TIME[2024-08-14T03:24:52.699Z]] <https://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/xhtml-modularization.html>

** XHTML m12n と XHTML 文書型の初期構想

[30] かつて ([[平成時代]]半ば頃)
<http://hades.mn.aptest.com/htmlwg/>
で開発途上の
[[XHTML]]
仕様書・関連ファイル群が公開されていました。
残念ながら現在はサーバーが消滅しており、
[[Internet Archive]]
にもほとんど残っていません。
(この辺の事情は [[HTML WG]] 参照。)

[31] 
<http://hades.mn.aptest.com/htmlwg/murray/xhtml11.old/>
に[TIME[平成12(2000)年][2000]]頃の [[DTD]]
開発の過程と思われるファイル群がありました。
<http://hades.mn.aptest.com/htmlwg/murray/xhtml11.old/CHANGES>
には

>
XHTML Changes of 2000-03-29

と書かれています。また、このディレクトリーのファイルは[TIME[平成12(2000)年][2000]]の[TIME[1月][2000-01]]から[TIME[4月][2000-04]]のタイムスタンプおよびファイル内の注釈の日付があります。
一番新しいものは[TIME[2000-04-17]]付です。

[33] 
これらの一連のファイルや他の似たようなディレクトリーのファイルから、
[[Murray Altheim]]
は 
[[XHTML m12n]]
及び関連仕様の
[[DTD]]
を中心に開発を分担していたと推測されます。


[32] 
<http://hades.mn.aptest.com/htmlwg/murray/xhtml11.old/Makefile>
は[TIME[2000-04-17]]付で、

> Makefile for various flavours of XHTML 1.1 and XHTML 2.0

と題されています。

[34] [CODE[Makefile]] では、[[DTDモジュール]]のファイル群は

- [35] 必須モジュール
- [36] XHTML 1.1 modules
- [37] XHTML Basic 1.0 modules
- [38] XHTML Legacy 1.1 modules
- [39] XHTML 2.0 modules

があります。また、完全版 DTD の生成は

- [40] XHTML 1.1
- [41] XHTML Legacy 1.1
- [42] XHTML Legacy Frameset 1.1
- [43] XHTML Basic 1.0
- [44] XHTML 2.0

が対象となっています。この他にいくつか実験用のもの (例えば最小構成、
[[HTML 2.0]] 相当、別語彙との組み合わせなど) があります。
これらを構成するファイルが同じディレクトリーにひとまとめに入っています。

[45] 
一般公開されるときには別々の [[WD]] になっているので見えにくいですが、
[[XHTML m12n]], [[XHTML 1.1]], [[XHTML Basic]] の [[DTD]]
が一体的に開発されていたことがわかります。
ここまでは予想できることですが、それに加えて
[[XHTML 2.0]]
の [[DTD]] も実は一体で開発されていたことが判明します。

;; [46] [[XHTML 2.0]] の [[DTD]] は [[WD]] に含まれておらず、
存在しているのかも長らく不明でした。
後になってこのような過去の開発過程のファイルとして公開されることになりました。

[47] 
最終版 [[XHTML m12n]] の [[DTD]] にまで残る、あまり説明のない予備的 (provisional)
機能、

- [48] [[XLink]] に対応するための準備機能
- [49] [[XHTML 2.0]] [CODE[alt]] [[要素]]に対応するための[[要素名]]の定義

の謎はこの [[XHTML 2.0]] 用モジュール群で解決できます。

[50] 
公表段階に達した [[XHTML 2.0]] [[WD]] は従来の [[XHTML1]] 
とはまったく非互換の新言語となっていました。
それならばこのような「準備」は意味がありません。
[CITE[XHTML m12n]] の規定する [[XHTML1]] 言語の[[モジュール]]は
[[XHTML 2.0]] ではまったく使えないので、
全面改正が必要となります。

[52] 
しかし[TIME[平成12(2000)年][2000]]段階で構想されていた [[XHTML 2.0]]
はそこまで過激なものではなく、
[[XHTML 1.1]] のいくつかの[[モジュール]]を差し替えるなどした漸進的な改訂でした。
それならば [CITE[XHTML m12n]] に必要な変更はわずかなので、
[[XHTML 2.0]] の完成を待って改正しなくても、
追加モジュールを既存 [CITE[XHTML m12n]] モジュールと組み合わせられるよう、
「準備」することに意味はあります。

[89] 
[TIME[2000-01-11]]時点ではこの [[DTD]] と対応関係にある
[CITE[XHTML 2.0]]
仕様書も用意されていました。
[[編集者]]に
[[Murray Altheim]]
の名前もあり、
この時点では
[CITE[XHTML m12n]],
[CITE[XHTML 1.1]],
[CITE[XHTML 2.0]]
が同じ座組で作られていたことになります。
[SEE[ [[XHTML 2.0]] ]]

[51] 
こうした構成は [[HTML WG]] で完全に合意されたものだったのか、
[[Murray Altheim]]
の独自の考えに過ぎなかったのかはよくわかりません。
しかし「準備」がそのまま[[W3C勧告]]となる程度に反対はされていませんでした。
にも関わらずこれらの「準備」と [[XHTML 2.0]] 
モジュール案が日の目を見ることはなかったのです。

;; [53] そうなってしまった理由はわかりませんが、
その1つは [[XLink]] が使い物にならなかったからでしょうね。
当時 
[[XML]]
世界では[[ハイパーリンク]]は当然 [[XLink]]
で記述されるべきと考えられており、
[[SVG]] や [[SMIL]]
もそうしており、
[[XHTML]]
もそうなるものとみなが考えていました。
しかし
[[HTML WG]]
は 
[[XHTML 2.0]]
開発過程で
[[XLink]]
は要件を満たさないと判断して新たに [[HLink]]
を開発することとなり、
[[XML]]
コミュニティーと摩擦を引き起こしました。
[SEE[ [[HLink]] ]]

;; [90] 
>>53 しかし
[[Murray Altheim]]
の [[DTD]] が使われなくなっている[TIME[平成12(2000)年7月][2000-07]]時点の案ではまだ
[[XLink]]
ベースなので、 [[XLink]] 絡みではなく人事絡み (>>57) の要因が大きいのかも。

[NOTE[

[57] 
[TIME[2001-05-31]]の [CITE[XHTML 1.1]] [[W3C勧告]]出版時点で
[[Murray Altheim]]
は [CITE[XHTML 1.1]] の[[編集者]]の1人かつ [[HTML WG]] 
の構成員だったとされます [SRC[>>55]]
が、[TIME[平成14(2002)年][2002]]に最初に公開された
[CITE[XHTML 2.0]] [[WD]] の[[編集者]]に
[[Murray Altheim]]
の名前はありません。
[[HTML WG]] の構成員だったかは不明です。

[59] 
[TIME[2001-06-30]]には [[mimasa]] が実験と称して [[XHTML 2.0]] [[DTD]]
の開発を開始していますが [SRC[>>56]]、
[[XHTML m12n]] の[[モジュール化]]の枠組みでの開発ではあるものの、
[[Murray Altheim]]
のシステムや [[XHTML 2.0]] [[DTDモジュール]]とは別個に新規開発しているように見えます。

[60] 
なお、
[CITE[XHTML Basic]]
は
[[Murray Altheim]]
が仕様書の[[編集者]]には入っていませんが、
[[DTD]]
の[[編集者]]として名前は挙がっています。
[SRC[>>58]]
しかし [[mimasa]]
ら他の人の名前もあり、
[CITE[XHTML Basic]]
の開発段階で既に
[[Murray Altheim]]
とそのシステムは
[[DTD]]
のオリジナル版編集から離れていた可能性があります。

]NOTE]

[61] 
非推奨の[[要素]]や[[属性]]が [[XHTML 1.1]] や [[XHTML Basic]] 
で使われないにも関わらず[[モジュール]]化されていたことも、
必要な[[応用]]で使えるようにとの説明はされていたものの、
いまいち腑に落ちないところでした。
しかし [CITE[XHTML m12n]] が元々 [[HTML 4.0]] の[[モジュール]]化として開発されてきた経緯を鑑みれば、
[[HTML 4.0]] の3つの [[DTD]] に相当する3つの [[XHTML 1.1]] 
[[DTD]] が生成されていることは納得感があります。

;; [63] 
別に開発されていた [CITE[XHTML 1.0]] の次の版という位置付けになり、
[CITE[XHTML 1.0]] まであった[[非推奨]]の機能がついに [CITE[XHTML 1.1]]
では廃止されたという触れ込みになったので、
なぜ [CITE[XHTML 1.1]] のベースになっている [CITE[XHTML m12n]]
に[[非推奨]]機能が残っているのかが謎になっていたのでした。
本来の歴史的経緯が語られないと[[作者の気持ち]]を理解するのは難しいですね。

[54] この当時の [[XHTML 2.0]] 案については [[XHTML 2.0]] 参照。


[84] 
興味深いのは
<http://hades.mn.aptest.com/htmlwg/murray/xhtml11.old/xhtml11_ja.dtd>
[CITE[Japanese-localized XHTML 1.1 DTD]]
([[公開識別子]] [CODE[-//W3C//DTD XHTML 1.1//JA]], 
[TIME[2000-01-27]])
です。
[[XHTML 1.1]] 本体に加えて
<http://hades.mn.aptest.com/htmlwg/murray/xhtml11.old/xhtml-ja1.ent>
[CITE[Japanese Legacy Character Entity Set for XHTML]]
([[公開識別子]] [CODE[-//W3C//ENTITIES Japanese Legacy 1 for XHTML//JA]],
[TIME[2000-01-27]])
を読み込んでいます。

[85] [CODE[-//W3C//ENTITIES Japanese Legacy 1 for XHTML//JA]]
では次の[[文字参照]]が定義されていました。

>
[PRE[
<!-- The following three are proposed for general use in XHTML 1.1:
-->
<!ENTITY bsol   "&#x005C;" ><!-- Reverse Solidus, U+005C ISOnum -->
<!ENTITY tilde  "&#x007E;" ><!-- Tilde, U+007E -->
<!ENTITY horbar "&#x2015;" ><!-- Horizontal Bar, U+2015 ISOnum -->

<!-- The following are for use in Japanese processing systems:
-->
<!ENTITY wdash  "&#x301C;" ><!-- Wave Dash, U+301C -->
<!ENTITY dvline "&#x2016;" ><!-- Double Vertical Line, U+2016 -->
<!ENTITY fmacron "&#xFFE3;"><!-- Fullwidth Macron, U+FFE3 -->
<!ENTITY fbsol  "&#xFF3C;" ><!-- Fullwidth Reverse Solidus, U+FF3C -->
<!ENTITY ftild  "&#xFF5E;" ><!-- Fullwidth Tilde, U+FF5E -->
<!ENTITY fparato "&#x2225;"><!-- Parallel To, U+2225 -->
<!ENTITY fminus "&#xFF0D;" ><!-- Fullwidth Hyphen-minus, U+FF0D -->
<!ENTITY fcent  "&#xFFE0;" ><!-- Fullwidth Cent Sign, U+FFE0 -->
<!ENTITY fpoun  "&#xFFE1;" ><!-- Fullwidth Pound Sign, U+FFE1 -->
<!ENTITY fyen   "&#xFFE5;" ><!-- Fullwidth Yen Sign, U+FFE5 -->
<!ENTITY fnot   "&#xFFE2;" ><!-- Fullwidth Not Sign, U+FFE2 -->
<!ENTITY fbrvbar "&#xFFE4;"><!-- Fullwidth Broken Bar, U+FFE4 -->
]PRE]

[86] つまり [[Unicode]] と従来[[文字コード]]との変換で問題となっている[[文字]]を[[文字参照]]できるようにするものでした。

[88] これがいかなる理由で開発され、なぜ [[HTML WG]] に正式採用されなかったのか、
気になります。
ほぼ同時期、
[TIME[2000-03-28]]付で
[CITE[XML Japanese Profile]]
なる文書が
[[W3C]] に提出されており、同じ[[文字コード]]問題を扱っていますが、
その提出者リストの1人が

> Eve MALER (Sun Microsystems)

となっています。 [SRC[>>87]] 両者に何か関連はあるのでしょうか。



[REFS[

- [87] 
[CITE[Submission request to the World Wide Web Consortium]], [TIME[2023-09-05T12:32:42.000Z]], [TIME[2024-08-14T12:36:13.344Z]] <https://www.w3.org/submissions/2000/03/>
- [58] 
[CITE[XHTML Basic]], [TIME[2017-10-02T10:22:50.000Z]], [TIME[2024-08-14T09:56:20.507Z]] <https://www.w3.org/TR/2000/REC-xhtml-basic-20001219/>
- [55] 
[CITE[XHTML 1.1 - Acknowledgements]], [TIME[2001-05-31T02:23:22.000Z]], [TIME[2024-08-14T09:48:52.210Z]] <https://www.w3.org/TR/2001/REC-xhtml11-20010531/acknowledgements.html#a_acks>
- [56] 
[CITE[Index of /People/mimasa/test/schemas/DTD/dev]], [TIME[2024-08-14T09:49:58.000Z]] <https://www.w3.org/People/mimasa/test/schemas/DTD/dev/>

]REFS]





* 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]
[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]] 版) <http://lists.w3.org/Archives/Public/www-html/2000Feb/0203.html>

[CITE[IRC log from 2000-02-25T08:07-0500]] ([CODE[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]
[CITE@en[XHTML Modularization Overview]] ([[Shane P. McCarron]] 著, [CODE[2001-04-21 16:44:20 +09:00]] 版) <http://www.w3.org/MarkUp/modularization>
([[名無しさん]])

[73]
[CITE[Review of XHTML Modularization]] ([CODE[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)」のような怪しい使い方をしていました。
[[文書型]]が[[モジュール][XHTMLモジュール]]の一部分のみを勝手に取捨選択できるのなら、
[[モジュール化]]とは何だったのかという感じです。

;; [[XHTML Mobile Profile]] 参照。

[FIG(quote)[
[FIGCAPTION[
[74]
[CITE[HTML5 IRC logs: freenode / #whatwg / 20071010]] ([TIME[2007-10-10 20:39:55 +09:00]] 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20071010#l-71>
]FIGCAPTION]

> 
[TALK[ [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  
]TALK]
]FIG]

[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]] が参照したりしています。
これでは何のために[[モジュール]]を別の仕様書にしているのかさっぱりわかりません。

[FIG(quote)[
[FIGCAPTION[
[79] 
[CITE@en[XHTML2 Working Group Teleconference -- 16 Sep 2009]] ([TIME[2009-09-16 23:43:23 +09:00]] 版) <http://www.w3.org/2009/09/16-xhtml-minutes.html#item05>
]FIGCAPTION]

>
[TALK[ <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.
]TALK]
[TALK[ Steven
You are right
]TALK]
]FIG]

[11] 本当に必要なら [[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]] の附属書の一部に相当します。

* メモ

[81] [CITE@en[XHTML Modularization: a markup language designer's toolkit - W3C Blog]]
([TIME[2010-06-21 04:51:07 +09:00]] 版)
<http://www.w3.org/QA/2010/06/xhtml_modularization_a_markup.html>

[82] [CITE@en[XHTML Modularization in RelaxNG]]
([[Steven Pemberton]] 著, [TIME[2010-04-20 23:51:58 +09:00]] 版)
<http://lists.w3.org/Archives/Public/public-xhtml2/2010Apr/0009>

[83] [CITE@en[Schemas for XHTML]]
([[MURATA Makoto (FAMILY Given)]] 著, [TIME[2010-03-20 00:32:15 +09:00]] 版)
<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 自体は [CODE(HTTP)[[[403]]]] になるので、どんな中身があるかは archived 版を入手して調べる必要があります。) XHTML というより一般に DTD のモジュール化の入門といった感じです。

[5] ''Modularization of XHTML'' <http://www.w3.org/TR/xhtml-modularization/>

[12] [CITE@en[CFC: Make previous versions of HTML and XHTML obsoleteCFC: Make previous versions of HTML and XHTML obsolete · Issue #86 · w3c/WebPlatformWG]]
([TIME[2017-07-12 16:56:28 +09:00]])
<https://github.com/w3c/WebPlatformWG/issues/86>

[13] [CITE@en[Proposal to Republish Previous Versions of HTML and XHTML as Obsolete  Recommendations (Wide Review until 2017-09-07)]]
([[Xueyuan]]著, [TIME[2017-08-11 13:45:36 +09:00]])
<https://lists.w3.org/Archives/Public/public-review-announce/2017Aug/0004.html>

[14] [CITE[NLM Journal Archiving and Interchange Tag Suite Version 2.3]]
([TIME[2016-05-09T17:28:38.000Z]], [TIME[2020-10-28T09:22:31.304Z]])
<http://dtd.nlm.nih.gov/2.3/>








[FIG(data)[ [216] [[HTML要素概説]]

:[F[要素名]]:[CODE[resort]]
:[F[要素名]]:[CODE[lodge]]
:[F[要素名]]:[CODE[lift]]
:[F[要素名]]:[CODE[chalet]]
:[F[要素名]]:[CODE[room]]
:[F[要素名]]:[CODE[lobby]]
:[F[要素名]]:[CODE[fireplace]]
:[F[要素名]]:[CODE[description]]
:日付:[TIME[2000-10-20]]
:説明:
[TIME[2000-10-20]]、
[CITE[XHTML m12n]] 
に例示として追加された
[[XHTML Skiing Module]]
にある。
[SRC[>>94]]
:出典:
[REFS[

- [95] 
[CITE[Modularization of XHTML]], 
[DATA(.author)[[[W3C]]]],
[TIME(.published)[20 October 2000][2000-10-20T20:35:01.000Z]], 
[TIME[2024-08-14T03:28:47.287Z]] <https://www.w3.org/TR/2000/CR-xhtml-modularization-20001020/xhtml-modularization-20001020.html>
- [94] 
[DFN[M12N20010410]]:
[CITE@en[Modularization of XHTML]], 
[DATA(.author)[[[W3C]]]],
[DATA(.status)[[[W3C Recommendation]]]],
[TIME(.published)[10 April 2001][2001-04-10]],
[TIME[2001-04-10T13:54:35.000Z]], [TIME[2024-09-23T11:21:35.862Z]] <https://www.w3.org/TR/2001/REC-xhtml-modularization-20010410/xhtml-modularization.html>
-
[97] 
[DFN[M12N20081008]]:
[CITE@en[XHTML™ Modularization 1.1]], 
[DATA(.status)[[DATA(.author)[W3C]] Recommendation]] [TIME(.published)[8 October 2008][2008-10-08]],
[TIME[2018-10-09T13:19:54.000Z]], [TIME[2024-11-02T12:16:15.646Z]] <https://www.w3.org/TR/2008/REC-xhtml-modularization-20081008/>
-
[98] 
[DFN[M12N20100715]]:
[CITE@en[XHTML™ Modularization 1.1 - Second Edition]], 
[DATA(.status)[[DATA(.author)[W3C]] Recommendation]] [TIME(.published)[15 July 2010][2010-07-15]],
[TIME[2010-07-07T16:14:59.000Z]], [TIME[2024-11-02T12:17:56.314Z]] <https://www.w3.org/MarkUp/2010/REC-xhtml-modularization-20100715/>
-
[96] 
[CITE@en[Spiderman and the XHTML Kindergarten]], 
[DATA(.author)[[[Bjoern Hoehrmann]]]], 
[TIME(.published)[Thu, 14 May 2009 00:13:39 +0200][2009-05-14T00:13:39]],
[TIME[2023-07-13T18:29:49.000Z]], [TIME[2024-11-02T12:00:13.102Z]] <https://lists.w3.org/Archives/Public/www-archive/2009May/0029.html>

]REFS]
:注釈:
-
[DFN@en[[CITE[Modularization of XHTML]]]] 
[DFN@en[[CITE[XHTML Modularization]]]]
[DFN@en[[CITE[XHTML m12n]]]]
[[HTML]] を[[モジュール]]と呼ばれる機能群に分割し [[XML DTD]]
などの形にしたもの。[TIME[2001-04-10]]に [[W3C勧告]]となり、
以後何度か小改訂された。
[SRC[>>94]]
[SRC[>>97]]
[SRC[>>98]]
[[W3C勧告]]となって以後のどの版も[[要素]]は同じだが、
細かな違いは多い。
[SRC[>>96]]
[SRC[SW:[[XHTML m12n]]]]
本書では[[要素]]が所属する[[モジュール]]を示した。
[[モジュール]]によっては必須、非推奨、例示の区分があるので、
あわせて示した。
[CITE[XHTML 1.1]],
[CITE[XHTML Basic]],
[CITE[XHTML + MathML + SVG]] [SRC[XMS]],
各種業界団体の [[XHTML]] プロファイルなどが[[モジュール]]を使う形で定義されている。
[[SVG 1.1]], [[MathML2]] などが [CITE[XHTML m12n]] に倣った[[モジュール]]構成を採用した。
-
[DFN[XHTML Skiing Module]]
[CITE[XHTML m12n]]
仕様書本文中に例示された[[モジュール]]。
実用は想定されておらず、[[抽象モジュール定義]]のみで[[スキーマ実装]]はない。



]FIG]








[91] [CITE@ru[Модуляризация XHTML]], [TIME[2024-08-18T03:43:52.000Z]] <https://pyramidin.narod.ru/xhtml-modul/overview.html>

[92] >>91 ロシア語訳。[[DTD]] の注釈も翻訳されている。