* XHTML m12n 1.0 (第1版) 勧告からの変更点
[405] [[XHTML m12n 1.0]] (第1版) [[勧告]]からの変更点のまとめです。
** 技術的な変更
*** XML Schema 実装
[437] [[XML Schema]] 実装に関する規定
(附属書 A.、B.、C.) が追加されました。
**** DTD 実装
[446] [CSECTION@en[F.2.5. XHTML Qualified Names]]
に[[大域属性]]や [[XML Schema]]
[[名前空間]]の[[属性]]のための定義が追加されています。
[450]
[CSECTION@en[F.3.1. XHTML Core Modules]]
で [CODE(HTMLe)@en[[[html]]]]
[[要素]]に [CODE(XMLa)@en[xsi:[[schemaLocation]]]]
[[属性]]が追加されています。
*** 大域属性
**** 適合性
[407] [CSECTION@en[3.1. XHTML Host Language Document Type Conformance]]
にある [[XHTMLホスト言語文書型]]の定義の第5項で、
追加の (非 [[XHTML]]) [[要素]]について、
[[XHTMLホスト言語文書型]]に取り込まれている [[XHTMLモジュール]]で定義されている[[属性]]を
が利用できますが、
[[XHTML]] の[[名前空間]]を指定した[[大域属性]]と[['''するべき''']]であり、
[[意味]]は [[XHTML]] [[要素]]の場合と同じである、
という規定が追加されています。
[CSECTION@en[3.2. XHTML Integration Set Document Type Conformance]]
にある [[XHTML統合集合文書型]]の定義の第5項も同様です。
;; ここには特にどの[[属性]]を使ってもよい、
という限定はないので、どの[[属性]]も使ってよいみたいです。
;; なぜあえて[[適合性]]の節で繰り返し述べているのかは謎です。
**** 抽象モジュール定義
[416] [CSECTION@en[5.1. Attribute Collections]]
で、 [[XHTML]] [[属性集成]]の[[属性]]は非
[[XHTML]] [[要素]]で[[大域属性]]として使えること、
その場合の意味は[[局所属性]]と同じこと、
[[XHTML]] [[名前空間]]の[[要素]]で[[大域属性]]を使うのは[[誤り]]であること、
が追記されました。
;; 「[[誤り]]」の意味は定義されていません。
また、[[適合性]]の項では任意の[[属性]]が使えるかのような表現でしたが、
こちらによれば[[属性集成]]に含まれる[[属性]]だけがそうであるようです。
**** DTD 実装
[444] [CSECTION@en[F.2.4. XHTML Common Attribute Definitions]]
に[[大域属性]]用の[[属性定義]]が追加されました。
[454] [CSECTION@en[F.3.13. Intrinsic Events]]
に[[大域属性]]の[[属性定義]]が追加されています。
*** 空白の処理
**** 利用者エージェント適合性
[411] [CSECTION@en[3.5. XHTML Family User Agent Conformance]]
で、旧第9項・新第8項以降にあった[[空白]]に関する独自の規定はすべて削除され、
代わりに [[XML 1.0]] と [[CSS]] に基づき処理すること、
[CODE(XMLa)@en[[[xml]]:[[space]]]]
が [CODE(XML)@en[[[default]]]] なら
[CODE(XML)@en[[[preserve]]]]
と同じに処理すること、という規定に入れ替えられました。
**** 抽象モジュール定義
[418] [CSECTION@en[5.1. Attribute Collections]]
で、[[中核]] ([[Core]]) [[属性集成]]に
[CODE(XMLa)@en[[[xml]]:[[space]]]]
[[属性]]が追加されました。
[CODE(XML)@en[[[default]]]] と
[CODE(XML)@en[[[preserve]]]]
が認められる値で、
[CODE(XML)@en[[[default]]]]
が[[既定値]]です。
;; これでは [[XML]] の定義とは違って省略時に[[親要素]]の指定を[[継承]]しないと思うのですが、
それでよいのでしょうか。
[424] [CSECTION@en[5.2.2. Text Module]]
で [CODE(HTMLe)@en[[[pre]]]]
[[要素]]から [CODE(XMLa)@en[[[xml]]:[[space]]]]
[[属性]]が削除されています。
[429] [CSECTION@en[5.16. Scripting Module]]
で、 [CODE(HTMLe)@en[[[script]]]]
[[要素]]から [CODE(XMLa)@en[[[xml]]:[[space]]]]
[[属性]]が削除されました。
[431] [CSECTION@en[5.17. Style Sheet Module]]
で、 [CODE(HTMLe)@en[[[style]]]]
[[要素]]から [CODE(XMLa)@en[[[xml]]:[[space]]]]
[[属性]]が削除されました。
**** DTD 実装
[445] [CSECTION@en[F.2.4. XHTML Common Attribute Definitions]]
の [CODE(XML)@en[[[Core.attrib]]]]
に [CODE(XMLa)@en[[[xml]]:[[space]]]]
の[[属性定義]]が追加されました。
[[抽象モジュール]]定義とは異なり、
唯一認められる値は
[CODE(XML)@en[[[preserve]]]] で、
[[既定値]]も [CODE(XML)@en[[[preserve]]]]
です。
[458] [CSECTION@en[F.4.1. Block Phrasal]]
で [CODE(HTMLe)@en[[[pre]]]]
[[要素]]から
[CODE(XMLa)@en[[[xml]]:[[space]]]]
[[属性]]が削除されました。
;; 他の元々この[[属性]]があった[[要素]]からは削除されていないのに。
*** [CODE(HTMLa)@en[id]] 属性
**** 抽象モジュール定義
[421] [CSECTION@en[5.2.1. Structure Module]]
で、
[CODE(HTMLe)@en[[[head]]]]、
[CODE(HTMLe)@en[[[html]]]]、
[CODE(HTMLe)@en[[[title]]]]
に [CODE(HTMLa)@en[[[id]]]]
[[属性]]が追加されました。
[427] [CSECTION@en[5.15. Metainformation Module]]
で、 [CODE(HTMLe)@en[[[meta]]]] [[要素]]に
[CODE(HTMLa)@en[[[id]]]] [[属性]]が追加されました。
[428] [CSECTION@en[5.16. Scripting Module]]
で、 [CODE(HTMLe)@en[[[script]]]]
[[要素]]に [CODE(HTMLa)@en[[[id]]]]
[[属性]]が追加されました。
[430] [CSECTION@en[5.17. Style Sheet Module]]
で、 [CODE(HTMLe)@en[[[style]]]]
[[要素]]に [CODE(HTMLa)@en[[[id]]]]
[[属性]]が追加されました。
[432] [CSECTION@en[5.20. Base Module]]
で、 [CODE(HTMLe)@en[[[base]]]]
[[要素]]に [CODE(HTMLa)@en[[[id]]]]
[[属性]]が追加されました。
**** DTD 実装
[447] [CSECTION@en[F.3.1. XHTML Core Modules]]
で [CODE(HTMLe)@en[[[head]]]] [[要素]]に
[CODE(HTMLa)@en[[[id]]]] [[属性]]が追加されています。
[451] [CSECTION@en[F.3.1. XHTML Core Modules]]
で [CODE(HTMLe)@en[[[html]]]]
[[要素]]に [CODE(HTMLa)@en[[[id]]]]
[[属性]]が追加されています。
[455] [CSECTION@en[F.3.15. Scripting]]
で [CODE(HTMLe)@en[[[script]]]]
[[要素]]に [CODE(HTMLa)@en[[[id]]]]
[[属性]]が追加されています。
[456] [CSECTION@en[F.3.16. Style Sheet]]
で [CODE(HTMLe)@en[[[style]]]]
[[要素]]に [CODE(HTMLa)@en[[[id]]]]
[[属性]]が追加されています。
*** URI 属性
[415] [CSECTION@en[4.3. Attribute Types]]
の「CODE@えん「「「URI]]]]と
[CODE@en[[[URIs]]]] の定義が、
元々「[[RFC 2396]] の [[URI]]」だったのが
「[[XML Schema]] の [CODE(XML)@en[[[anyURI]]]]」
(の[[間隔]]分離の[[並び]]) に改められました。
*** 言語属性
**** 属性型
[412] [CSECTION@en[4.3. Attribute Types]]
の [CODE@en[[[LanguageCode]]]] の参照する規格が、
[[RFC 3066]] のみから「[[RFC 3066]]
またはその後継版」になりました。
;; 「または」というのはどちらか選べるのでしょうか。
よくわかりません。
[477] [CSECTION@en[4.3. Attribute Types]]
に [CODE@en[[[LanguageCodes]]]] という[[属性型]]が追加されています。
**** 抽象モジュール定義
[420] [CSECTION@en[5.1. Attribute Collections]]
で、 [CODE(XMLa)@en[[[xml]]:[[lang]]]]
[[属性]]の[[属性型]]が [CODE(XML)@en[[[NMTOKEN]]]]
から [CODE(XML)@en[[[CDATA]]]]
に変更されました。
;; これは [[XML]] における定義の変更に追随したものです。
[425] [CSECTION@en[5.4.3. Bi-directional Text Module]]
で、 [CODE(HTMLe)@en[[[bdo]]]]
[[要素]]に [CODE(XMLa)@en[[[xml]]:[[lang]]]]
[[属性]]が追加されています。
**** DTD 実装
[441]
[CSECTION@en[F.2.3. XHTML Datatypes]]
で [CODE(XML)@en[[[LanguageCode.datatype]]]]
の[[実体宣言]]直前の[[注釈]]の内容に
「[[RFC 3066]]」とあったところが
「[[RFC 3066]] またはその後継版」
と改められました。また、[[実体値]]も
[CODE(XML)@en[[[NMTOKEN]]]]
から [CODE(XML)@en[[[CDATA]]]]
に改められました。
[442] [CSECTION@en[F.2.3. XHTML Datatypes]]
に [CODE(XML)@en[[[LanguageCodes.datatype]]]]
の[[実体宣言]]が追加されました。
*** [CODE(HTMLa)@en[profile]] 属性
**** 抽象モジュール定義
[422] [CSECTION@en[5.2.1. Structure Module]]
で、 [CODE(HTMLe)@en[[[head]]]]
[[要素]]の [CODE(HTMLa)@en[[[profile]]]]
[[属性]]の[[属性型]]が
[CODE@en[[[URI]]]] から
[CODE@en[[[URIs]]]] に変更されました。
;; そのいきさつは [CODE(HTMLa)@en[[[profile]]]]
の項を参照してください。
*** QName 属性
**** 属性型
[413] [CSECTION@en[4.3. Attribute Types]]
の [CODE@en[[[LinkTypes]]]]
の定義に、追加の[[リンク型]]を使いたかったら
[[HTMLメタ情報プロファイル]]を使うべきだという旨、
将来の版では [[QName]] が使えるようになるかもしれない旨が追記されました。
[414] [CSECTION@en[4.3. Attribute Types]]
の [CODE@en[[[QName]]]]
[CODE@en[[[QNames]]]]
が新たに[[属性型]]として追加されました。
**** DTD 実装
[440] [CSECTION@en[F.2.3. XHTML Datatypes]]
に「Placeholder Compact URI-related types」
として [[CURIE.datatype]]、
[[CURIEs.datatype]]、
[[SafeCURIE.datatype]]、
[[SafeCURIEs.datatype]]、
[[URIorSafeCURIE.datatype]]、
[[URIorSafeCURIEs.datatype]]
の[[実体宣言]] ([[実体値]]はいずれも
[CODE(XML)@en[[[CDATA]]]]) が追加されました。
[443] [CSECTION@en[F.2.3. XHTML Datatypes]]
に [CODE(XML)@en[[[QName.datatype]]]] と
[CODE(XML)@en[[[QNames.datatype]]]]
の[[実体宣言]]が追加されました。
*** 文字実体宣言
[438] [CSECTION@en[F.1.2. XHTML Special Characters]]
の [CODE(XML)@en[&[[lt]];]] や
[CODE(XML)@en[&[[amp]];]]
の[[実体宣言]]が誤っていたのが修正されました。
*** スキーマ識別子
[406] [CSECTION@en[3.1. XHTML Host Language Document Type Conformance]]
にある [[XHTMLホスト言語文書型]]の定義の第2項で、
[[スキーマ]]の識別子が「[[XHTML]]」
を「最初の字句として」持たなければならないとされていたところ、
「[[XHTML]]」からはじまら[['''なければならない''']]、
と改められました。
[CSECTION@en[3.2. XHTML Integration Set Document Type Conformance]]
にある [[XHTML統合集合文書型]]の定義の第2項も同様です。
;; 元々「[[字句]]」というのは定義されていなかったわけですが。
*** その他内容モデル関連
**** 抽象モジュール定義
[423] [CSECTION@en[5.2.2. Text Module]]
で [CODE(HTMLe)@en[[[blockquote]]]]
の[[最小内容モデル]]から
[CODE(XML)@en[[[PCDATA]]]]
が除外されました。
;; 元々の定義が [[DTD実装]]や
[[XHTML 1.0]] [[厳密DTD]] や [[XHTML 1.1]]
と矛盾しており、間違いだったとみられます。
[473] [CSECTION@en[5.5.2. Forms Module]] で [CODE(HTMLe)@en[[[legend]]]]
[[要素]]の[[最小内容モデル]]が[[空]]でもよいように修正されました。
**** DTD 実装
[448] [CSECTION@en[F.3.1. XHTML Core Modules]]
で [CODE(HTMLe)@en[[[body]]]]
[[要素]]の[[内容]]が[[空]]でもよいように変更されています
([CODE(XML)@en[[[+]]]] →
[CODE(XML)@en[[[*]]]])。
[449] [CSECTION@en[F.4.1. Block Phrasal]]
で [CODE(HTMLe)@en[[[blockquote]]]]
[[要素]]の[[内容モデル]]が[[空]]にできるように変更されています。
[457] [CSECTION@en[F.4.1. Block Phrasal]]
で [CODE(HTMLe)@en[[[pre]]]]
[[要素]]の[[内容モデル]]から
[CODE(HTMLe)@en[[[script]]]] [[要素]]が除去され、
[CODE(XML)@en[%[[Misc.class]];]] が追加されました。
[459] [CSECTION@en[F.4.8. Legacy Redeclarations]]
から [CODE(XML)@en[%[[applet.content]];]]
の[[実体宣言]]が削除されました。
;; [CODE(HTMLe)@en[[[applet]]]]
は[[遺物モジュール]]とは別扱いになっており、
ここでは使われないため。
*** その他属性関連
**** 抽象モジュール定義
[426] [CSECTION@en[5.6.2. Tables Module]]
で、 [CODE(HTMLe)@en[[[table]]]]
[[要素]]から
[CODE(HTMLa)@en[[[datapagesize]]]]
[[属性]]が削除されています。
[433] [CSECTION@en[5.22. Legacy Module]]
で、 [CODE(HTMLe)@en[[[dl]]]]
[[要素]]から [CODE(HTMLa)@en[[[type]]]]
[[属性]]が削除されました。
[434] [CSECTION@en[5.22. Legacy Module]]
で、 [CODE(HTMLe)@en[[[img]]]] [[要素]]の
[CODE(HTMLa)@en[[[align]]]] [[属性]]の[[属性値]]が
[CODE(HTML)@en[([[left]]|[[center]]|[[right]]|[[justify]])]]
とされていたところ、
[CODE(HTML)@en[([[top]]|[[middle]]|[[bottom]]|[[left]]|[[right]])]]
に修正されました。
[435] [CSECTION@en[5.22. Legacy Module]]
で、 [CODE(HTMLe)@en[[[table]]]],
[CODE(HTMLe)@en[[[tr]]]],
[CODE(HTMLe)@en[[[th]]]],
[CODE(HTMLe)@en[[[td]]]]
に[[属性]]が追加される条件は[[表モジュール]]が選択されていることとされていましたが、
[[基本表モジュール]]の場合も追加されました。
[436] [CSECTION@en[5.22. Legacy Module]]
で、 [CODE(HTMLe)@en[[[th]]]] [[要素]]と
[CODE(HTMLe)@en[[[td]]]] [[要素]]の[[属性型]]が
[CODE@en[[[Pixels]]]] から
[CODE@en[[[Length]]]] に改められました。
**** DTD 実装
[452] [CSECTION@en[F.3.4.1. Basic Forms]]
で [CODE(HTMLe)@en[[[input]]]] [[要素]]の
[CODE(HTMLa)@en[[[size]]]] [[属性]]が
[CODE(XML)@en[[[CDATA]]]] から
[CODE@en[%[[Number.datatype]];]]
に変更されています。
;; [CSECTION@en[F.3.4.2. Forms]]
では元々 [CODE@en[%[[Number.datatype]];]]
でした。
[453] [CSECTION@en[F.3.5.1. Basic Tables]]
で [CODE(HTMLe)@en[[[table]]]]
[[要素]]に [CODE(HTMLa)@en[[[width]]]]
[[属性]]が追加されています。
*** その他 DTD 実装関連
[439] [CSECTION@en[F.2. XHTML Modular Framework]]
で[[記法モジュール]]は既定の状態では読み込まれないように改められました。
*** その他適合性関連
[408] [CSECTION@en[3.3. XHTML Family Module Conformance]]
の [[XHTML族モジュール]]の[[適合性]]の規定の第4項で、
本文と[[スキーマ]]が矛盾する場合には本文が優先され[['''なければならない''']]という規定が設けられました。
[409] [CSECTION@en[3.5. XHTML Family User Agent Conformance]]
の [[XHTML族利用者エージェント]]の[[適合性]]の第4項に、
元々未知の[[要素]]についてその[[内容]]が[[テキスト]]であればそれを[[利用者]]に提示しなければならない、
とありましたが、その部分が削除されました。
「[[子供]]を処理しなければならない」という規定と冗長な上に、
不要な矛盾を生じさせるおそれがあるからでしょう
(例えば [CODE(HTMLe)@en[[[img]]]]
[[要素]]の[[子供]]を提示しなければならないのか、
とか)。
[410] [CSECTION@en[3.5. XHTML Family User Agent Conformance]]
で、旧第6項には未知の[[属性値]]は代わりに[[既定値]]を用いなければならない、
とありましたが、削除されました。
;; なぜ?
[417] [CSECTION@en[5.1. Attribute Collections]]
で、[[属性集成]]と各[[要素]]で同じ[[属性]]を定義している場合、
それらは衝突しない、[[内容モデル]]をそれにしたがって更新するのは[[スキーマ]]の実装者の責任である、と追記されました。
;; 衝突しないからどうしたらいいのか ([[要素]]の方が優先されるのか?)
は特に述べられていません。
** 編集上の主要な変更
[460] [CSECTION@en[Abstract]] に、要素や属性の意味は定義せず、
モジュール化について定義するだけという説明が加わりました。
[463] [CSECTION@en[2. Terms and Definitions]]
に[[機能]] ([[facilities]]) の定義が加わりました。
機能は、[[要素]]、[[属性]]、[[要素]]や[[属性]]に関連付けられた[[意味]]です。
*** 適合性関係
[464] [[RFC 2119]] [[助動詞]]が[[大文字]]になりました。
[465] [CSECTION@en[3.4. XHTML Family Document Conformance]]
に、[[非妥当]]な[[文書]]に対する[[利用者エージェント]]の動作は未定義だと明記されました。
;; そこがこれを書くのに適当な節なのか疑問ですが。
*** XML Schema 対応関係
[461] [CSECTION@en[1.3.2. Module implementations]]
に、 [[XHTMLモジュール化]]の各種実装のことを
「[[スキーマ]]」と呼ぶ、という説明が加わりました。
[462] [CSECTION@en[1.3.3. Hybrid document types]]
の[[混成文書型]]の定義が [[DTD]]
に特化したものから[[スキーマ]]一般向けのものに改められました。
*** 内容モデル関係
[466] [CSECTION@en[4.2. Content Types]]
の「[CODE(XML)@en[[[PCDATA]]]]」
の説明のところで、元々
「[[処理対象文字データ]] (processed
character data)」という説明があったのですが、
更に「[[解析対象文字データ]]
(parsed character data)」という説明が加わりました。
;; 何がしたいのかよくわかりません。
*** 抽象モジュール関係
[419] [CSECTION@en[5.1. Attribute Collections]]
で、[[国際化]] ([[I18N]])
[[属性集成]]に [CODE(HTMLa)@en[[[dir]]]]
[[属性]]が追加されました。また、
[[双方向性テキスト]]・[[モジュール]]が選択されない場合には
[CODE(XMLa)@en[[[xml]]:[[lang]]]]
[[属性]]だけが含まれる
(= [CODE(HTMLa)@en[[[dir]]]]
[[属性]]は含まれない) ことが追記されました。
;; 厳密にはこれは新規追加ではなく、
元々[[双方向性テキスト]]・[[モジュール]]の節の本文にちゃんと書いてありました。
[467] [CSECTION@en[5.5.1. Basic Forms Module]]
に、[[基本フォーム]]・[[モジュール]]は[[フォーム]]・[[モジュール]]の[[部分集合]]であり、
1つの[[文書型]]で同時には使えないことが明記されました。
;; 逆は元々明記されていました。
[468] [CSECTION@en[5.6.1. Basic Tables Module]]
に、[[基本表モジュール]]は[[表モジュール]]の[[部分集合]]で、
1つの[[文書型]]で同時には使えないことが明記されました。
また、 [CSECTION@en[5.6.2. Tables Module]]
に、[[表モジュール]]は[[基本表モジュール]]の[[超集合]]で、
1つの[[文書型]]で同時には使えないことが明記されました。
[469] [CSECTION@en[5.8. Client-side Image Map Module]]
に、 [CODE(HTMLe)@en[[[input]]]] [[要素]]の
[CODE(HTMLa)@en[[[usemap]]]] [[属性]]が追加されるのは[[フォーム・モジュール]]か[[基本フォーム・モジュール]]が取り込まれている場合に限ることが明記されました。
;; なぜか「[[最小内容モデル]]」の欄に。
気持ちはわかりますが、それはおかしい
([CODE(HTMLe)@en[[[object]]]] [[要素]]の注記は
[[XHTML m12n 1.0]] の時点でおかしなところに書いてありました)。
現に [CSECTION@en[5.9. Server-side Image Map Module]]
の表には「[[最小内容モデル]]」と「注記」
の2つの[[列]]があります
([[XHTML m12n 1.0]] の時点で)。
[470] [CSECTION@en[5.12. Target Module]]
で、 [CODE(HTMLe)@en[[[base]]]] [[要素]]に
[CODE(HTMLa)@en[[[target]]]] [[属性]]が追加されるのは[[遺物モジュール]]が選択されている場合とされていましたが、
[[基底モジュール]]に訂正されました。
[471] [CSECTION@en[5.14. Intrinsic Events Module]]
の節に、この[[モジュール]]が選択されると[[事象属性集成]]が[[活性化]]されることが明記されました。
;; [[属性集成]]の節には元々明記されていました。
ちなみに「[[活性化]]」は未定義語です。
[472] [CSECTION@en[5.22. Legacy Module]]
に、[[遺物モジュール]]は[[非推奨]]であること、
[[非推奨]]の[[要素]]や[[属性]]や[[内容モデル]]のすべてを含んだ[[モジュール]]ではなく、
仕様書が書かれた時点で多く使われていると思われたものだけであることが明記されました。
;; 「[[非推奨]]」の意味は定義されていませんし、
[[非推奨]]の[[要素]]や[[属性]]の取捨選択の客観的な根拠も示されていません。
* 歴史
** XHTML m12n 1.0 SE WD
[4] [ABBR[m12n]] [ABBR[[[SE]]]] の [ABBR[[[WD]]]]
がでました。変更点その他については[[マーク付けノート]]
に詳しい記事があります。
最大の変更点は、 XHTML 1 名前空間の[[大域属性]]の導入です。
これによって、 [SAMP(XML)[]]
のようなことができるようになります。
[WEAK[(なにげに [[Gecko]] はこの類を一部先行実装していたりします。)]]
[5] [CITE[Modularization of XHTML™ 1.0 - Second Edition]]
[[#comment]]
** XHTML m12n 1.1 1[SUP@en[st]] PR
[6]
[CITE@en[XHTML™ Modularization 1.1]]
[7]
1.1 [[勧告案]]が公開されました。内容はほとんど、
なぜかなかったことにされている ([Q@en[Previous version]]
の項を参照) 1.0 SE WD (>>5) と同じです。
;; これだけ変更しておいて PER → SE REC は無理だろうと思っていたら、
案の定 1.1 PR になりましたw
[10]
大きな違いは:
- [12] [CITE@en[Modularization of XHTML]]
から [CITE@en[XHTML Modularization]]に名前が変わったようです。
- [13] [[RFC 2119]][[助動詞]]が[[大文字]]になりました。
- [14] [[属性型]][CODE(HTML)@en[[[LinkTypes]]]] ([[リンク型]])
の項
に、[CODE(HTMLa)@en[[[profile]]]][[属性]]のことと、
将来の版で[[QName]]を導入する予定であることが追記されています。
- [15] [[XHTML]][[名前空間]]に属する[[要素]]に[[XHTML]][[名前空間]]に属する[[大域属性]]を与えた場合
(例: [CODE(HTMLa)@en[[QN[xhtml1:[[onkeypress]]] [http://www.w3.org/1999/xhtml]]]]) について、
-- 前の版 (>>5) では[[大域属性]]とそうでない[[属性]]の両方を同時に使うと結果は未定義とされていましたが、
-- 今回の版では[[大域属性]]の方を使うのは[[誤り]]とされています。
- [16] [[XML Schema]]実装に関して:
-- [17] [[名前]]に使うべき[[接尾辞]]に新たに
[CODE(XML)@en[.[[export]]]]が追加されました
。
-- [18] [[カメレオン・スキーマ]]になりました
。
--- [19] [[モジュール]]では[CODE(XMLa)@en[[[targetNamespace]]]]を指定しません
([[駆動器]]で指定します)。
--- [20] [[名前]]は固有性を確保するために[[接頭辞]]を付けます。
[[XHTML m12n]]で定義されている各[[モジュール]]も、
ありとあらゆる[[名前]]に[code(XML)@en[XHTML.]]が付け足されています。
--- [21] ただし、[[データ型]]は特定の[[名前空間]]に所属させます。
[[XHTML m12n]]で定義されている各[[データ型]]は新しい[[名前空間]]
[CODE(URI)@en[[[http://www.w3.org/1999/xhtml/datatypes/]]]]
に移動しています。
-- [22] [[共通属性]]の[[モジュール]]で、
[CODE(XML)@en[[[xml]]:]][[名前空間]]の[CODE(XMLe)@en[[[import]]]][[要素]]に[CODE(XMLa)@en[[[schemaLocation]]]][[属性]]が追加されています
。
- [23] [[DTD]]実装に関して:
-- [24] [CODE(XMLa)@en[[VAR[xsi:]][[schemaLocation]]]][[属性]]の[[データ型]]が[CODE(XML)@en[%[[URI.datatype]];]]から[CODE(XML)@en[%[[URIs.datatype]];]]に変更されています
。
--- 元々[CODE(XML)@en[%[[URIs.datatype]];]]であった箇所もあり、
バグ修正と思われます。
-- [25] [CODE(HTMLe)@en[[[body]]]][[要素型]]の[[内容モデル]]が、
[CODE(XML)@en[%[[Block.mix]];]]の[CODE(XML)[+]]から[CODE(XML)[*]]に変更されています
。
--- [[抽象モジュール]]定義
の[[最小内容モデル]]では以前から[CODE(XML)[*]]でした。
-- [26] [CODE(HTMLe)@en[[[script]]]][[要素型]]
と[CODE(HTMLe)@en[[[style]]]][[要素型]]
で[CODE(HTMLa)@en[[[id]]]][[属性]]が追加されています。
--- [[抽象モジュール]]定義
,
には追加されていません。
--- これらは[[XHTML 1.0]]第1版になく、第2版で追加されました。
同時に追加された[CODE(HTMLe)@en[[[html]]]], [CODE(HTMLe)@en[[[head]]]],
[CODE(HTMLe)@en[[[title]]]], [CODE(HTMLe)@en[[[base]]]],
[CODE(HTMLe)@en[[[meta]]]]各[[要素型]]の[CODE(HTMLa)@en[[[id]]]][[属性]]はなぜか今回追加されていません。
--- [CITE[HTML Working Group Voyager Issue Tracking System - Modularization-abstractions/8462]]
によれば[Q@en[This was not introduced for 1.1 PR, but we expect it to be addressed after the review period closes.]]だそうです。
-- [27] [CITE@en[XHTML Modular Framework Module]]内で[CITE@en[XHTML Notations Module]]を[[取込む]]部分
([CODE(XML)@en[%[[xhtml-notations.module]];]]) が、
[CODE(XML)@en[[[INCLUDE]]]]から[CODE(XML)@en[[[IGNORE]]]]に代わりました
。
--- [CITE@en[XHTML Legacy Redeclarations Module]]内の同じ部分は[CODE(XML)@en[[[INCLUDE]]]]のままで変わっていません
。
[8]
[[DTDモジュール]]の[CODE(XMLa)@en[[[schemaLocation]]]][[属性]]の部分は前の版
(>>5) より冗長性がなくなっていますが、まだよくない。
[8]
[[体系使用宣言処理指令]]
の[[名前空間整形式]]問題などいくつかの既に指摘されているはずの問題は修正されていない。
問題意識がないのだろう。
[9]
[[XML Schema]][[モジュール]]で[[名前]]にわざわざ[[接頭辞]]をつけるようにしたのは、
[[カメレオン・スキーマ]]として使うときに外部の[[モジュール]]と[[名前]]が衝突しないためなのだろうが、
可動式の屋根の下に屋根を架すようなもので、何をしているのやらw
[11]
[[Bjoern Hoehrmann]]が早速嫌味の効いたコメントを[[TAG]]に送ってますなあwwww
[CITE@en[The xhtml:onkeypress architecture]]
([[名無しさん]] [WEAK[2006-02-14 14:52:35 +00:00]])
[28]
[CITE[XHTML Modularization 1.1 Implementation Report]]
確かにこの[[文書]]、明らかに[[見出し]]のように見えるアレ(謎)は[[見出し]]ではなく[CODE(HTMLe)@en[[[div]]]]で[[マーク付け]]されているよ。。。
([[名無しさん]] [WEAK[2006-02-15 07:48:24 +00:00]])
;;
[33]
>>28 いつのまにか [CODE(HTTP)[[[404]]]] になってる・・・。証拠隠滅? (2008年11月)
[29]
Bjoernは2年前にも同じことを書いている。
質問も同じなら回答も同じw >>15 の変更はBjoernの指摘によるものだけど、逆に彼の指摘する点のうちそこしか反映されていない。
;; [CITE[HTML Working Group Voyager Issue Tracking System - Modularization-abstractions/8444]]
([[名無しさん]] [WEAK[2006-02-15 09:37:39 +00:00]])
[30]
[CITE[Re: The xhtml:onkeypress architecture from Bjoern Hoehrmann on 2006-02-15 (www-archive@w3.org from February 2006)]]
([[名無しさん]] [WEAK[2006-02-15 10:09:36 +00:00]])
[31]
ああ、たしかに
で出てくるのが 1.1 [[PR]] に変わっている。。。 [[CR]]より先に進んでいるから?
;; でも
は[[XForms 1.0]] [[SE]] [[PER]]ではなく
[[FE]] [[勧告]]を指したままだし。。。
([[名無しさん]] [WEAK[2006-02-15 11:52:37 +00:00]])
[32]
[CITE[xml:space undeclared in DTD for elements "script" and "style" from Jesus Arias Fisteus on 2006-02-21 (www-html-editor@w3.org from January to March 2006)]]
やれやれだぜ。
([[名無しさん]] [WEAK[2006-02-22 10:29:00 +00:00]])
[34]
から
に[[リダイレクト]]される件
([[名無しさん]] [WEAK[2006-05-18 07:00:38 +00:00]])
[[#comment]]
** XHTML m12n 1.1 LC WD
[35]
[CITE@en[XHTML™ Modularization 1.1]]
[36]
前 [[PR]] からの変更点:
- [37] [CODE(XMLa)@en[[[xml]]:[[space]]]] = [CODE(XML)@en[[[default]]]]
の意味を規定
- [38] [[データ型]]として [CODE@en[[[QName]]]], [CODE@en[[[QNames]]]]
を追加
- [39] [[中核]][[属性集合]]に [CODE(XMLa)@en[[[xml]]:[[space]]]]
を追加
- [40] [CODE(HTMLa)@en[[[profile]]]] [[属性]]を [CODE@en[[[URI]]]]
から [CODE@en[[[URIs]]]] に変更
- [41] [CODE(HTMLa)@en[[[id]]]] [[属性]]を
[CODE(HTMLe)@en[[[html]]]], [CODE(HTMLe)@en[[[head]]]],
[CODE(HTMLe)@en[[[title]]]] に追加
- [42] [CODE(HTMLa)@en[[[xml]]:[[space]]]] を
[CODE(HTMLe)@en[[[pre]]]] から削除
- [43] [CODE(HTMLe)@en[[[base]]]] [[要素]]に
[CODE(HTMLa)@en[[[target]]]] [[属性]]を定義する条件を、
[Q[[[遺物]][[モジュール]]が選択されている時]]から[Q[[[基底]][[モジュール]]が選択されている時]]に変更
- [44] [CODE(HTMLa)@en[[[id]]]] [[属性]]を
[CODE(HTMLe)@en[[[meta]]]] [[要素]]に追加
- [45] [CODE(HTMLa)@en[[[xml]]:[[space]]]] を
[CODE(HTMLe)@en[[[script]]]] から削除
- [45] [CODE(HTMLa)@en[[[xml]]:[[space]]]] を
[CODE(HTMLe)@en[[[style]]]] から削除
- [46] [CODE(HTMLa)@en[[[id]]]] [[属性]]を
[CODE(HTMLe)@en[[[base]]]] [[要素]]に追加
- [49] [[XML Schema]] [[モジュール実装]]で[[接頭辞]]
[CODE(XML)@en[[[xhtml.]]]] が欠落しているところに追加
- [50] [CODE(XML)@en[%[[Inventory.xmlns.attrib]]]]
の定義に [CODE(XML)@en[%[[NS.decl.attrib]]]] を追加
- [51] 欠落していた [CODE(XMLa)@en[[[xmlns]]:xhtml]]
[[属性]]を追加
- [52] [[文字実体]] [CODE(XML)@en[&[[quot]];]], [CODE(XML)@en[&[[apos]];]]
の[[注釈]]を変更
- [53] [[注釈]]内の必須モジュールのリストから[[記法]][[モジュール]]を除外
- [54] [Q[第2版]]を[Q[1.1]]に変更
- [55] 冗長な [CODE(XML)@en[%[[XSI.schemaLocation.attrib]];]]
の[[宣言]]を削除
- [56] [Q[第1版]]を[Q[1.0]]に変更
- [57] [CITE[XHTML Modularization 1.1 - Changes from XHTML Modularization 1.0]]
を追加
[58]
>>38 QName と QNames は追加されただけで使われていない
([[名無しさん]] [WEAK[2006-07-07 15:51:58 +00:00]])
[1]
>>58
その後すぐに出た [CODE(HTMLa)@en[[[role]]]] [[WD]] で参照されている。
[59]
[CITE[QA and current state of XML schemas for XHTML? from Alexandre Alapetite on 2006-07-30 (public-qa-dev@w3.org from July 2006)]]
([[名無しさん]] [WEAK[2006-08-06 04:37:46 +00:00]])
[60]
[CITE[QA and current state of XML schemas for XHTML? from Alexandre Alapetite on 2006-07-30 (public-qa-dev@w3.org from July 2006)]]
([[名無しさん]] [WEAK[2006-08-06 04:38:03 +00:00]])
[61]
[CITE[XHTML Modularization 1.1: 9 errors with the 'id' attribute (Specification + DTD + XML Schemas) from Alexandre Alapetite on 2006-07-30 (www-html-editor@w3.org from July to September 2006)]]
([[名無しさん]] [WEAK[2006-08-06 04:41:17 +00:00]])
[62]
[CITE@en[Request for comments on the definition of some data types in XHTML Modularisation]] ([[Alexandre Alapetite]] 著, [CODE[2007-02-19 00:19:51 +09:00]] 版)
>> With regard to the lazy type issues, the working group was concerned
that making
the type checking overly constrained had the risk of incorrectly
flagging valid
documents as invalid; this is mostly because the regular expressions and
RFCs
involved are so complicated we are not confident that all legal cases
will be
addressed.
これ、 [[HTML WG]] は、自分とこの規格は複雑すぎてわかんないからなにが[[妥当]]かを明記できないといってるんだよな!?
([[名無しさん]] [WEAK[2007-02-23 18:06:08 +00:00]])
[63]
[CITE@en[Request for comments on the definition of some data types in XHTML Modularisation]] ([[Alexandre Alapetite]] 著, [CODE[2007-02-19 00:19:51 +09:00]] 版)
>> With regard to the lazy type issues, the working group was concerned
that making
the type checking overly constrained had the risk of incorrectly
flagging valid
documents as invalid; this is mostly because the regular expressions and
RFCs
involved are so complicated we are not confident that all legal cases
will be
addressed.
これ、 [[HTML WG]] は、自分とこの規格は複雑すぎてわかんないからなにが[[妥当]]かを明記できないといってるんだよな!?
([[名無しさん]] [WEAK[2007-02-23 18:09:14 +00:00]])
[64]
[[DOM 1]] が Normative Reference になっているが、
利用例みたいな文章で参照されているだけで、
なにを引いているのかさっぱりわからない。
([[名無しさん]])
[65]
[[RFC 1808]] と [[RFC 1738]] が Normative Reference
に入っているのが謎。どちらも引用元はなくて、 [[RFC 1808]]
は廃止されたから [[RFC 3986]] を見よとあり、
[[RFC 3986]] の項にも [[RFC 1738]] と [[RFC 1808]]
の改訂版だという説明はあるんだけど、
なんで Normative Reference に残しておくのかよくわからない。
;; 一度入れたものは[Q[互換性]]のために残しておく
(外部からの[[素片識別子]]参照とか用) という方針かもしれないけど、
たぶん違うと思われ。
([[名無しさん]])
[66]
[[SGML]] が Normative Reference なのも謎。[[文書型]]という用語の定義に出てきているが、どうして今更[[文書型]]という定義を
([[SGML]] から引くことにより) 行わなければならないのかも謎。
他には[[実体集合]]の説明で出てくるが、これも
Normative にしないといけない内容には思えない。
([[名無しさん]])
[67]
[[XHTML 1.0]] が Normative Reference なのもよくわからない。
[[適合性]]の章に
> While the conformance definitions can be found in this section, they necessarily reference normative text within this document, within the base XHTML specification [XHTML1], and within other related specifications. It is only possible to fully comprehend the conformance requirements of XHTML through a complete reading of all normative references.
が、どうして necessarily [[XHTML 1.0]] を引用せざるを得ないのかよくわからない。
base XHTML specification とかいてあるが、 [[XHTML m12n]]
仕様書全体を通してみても、 (仕様書の作り方として) base
になっているようには見えない。別の仕様書。
;; もちろん概念的には base だろうが。
[[XHTML族利用者エージェント]]の適合性の項には
> A conforming user agent must meet all of the following criteria (as defined in [XHTML1]):
とあるのが唯一適合性に関する [[XHTML 1.0]] への明示的な参照だが、
[[XHTML 1.0]] は [[XHTML族利用者エージェント]]の適合性など定義していない。
という細かいことは置いておくにしても、 [[XHTML 1.0]]
で定義されているなら書き写さずとも参照すればいいだけのこと
(Normative Reference を全部読めとまで書いているのだし)。
だいたい、 as defined とかいっているが、定義していることは一致していない。
([[XHTML//空白]]を参照。)
ついでにいえば、 [[HTML WG]] 自身関連規格との関係がよくわからないといっているのだから (>>63)、
読者に Normative Reference 全部守れというのは無茶苦茶。
([[名無しさん]])
[[#comment]]
** その後の変遷
[68]
[CITE@en[XHTML™ Modularization 1.1]] ([CODE[2007-04-03 10:33:20 +09:00]] 版)
([[名無しさん]] [WEAK[2007-04-07 14:18:00 +00:00]])
[69]
[CITE@en[XHTML™ Modularization 1.1]] ([CODE[2007-04-05 12:50:12 +09:00]] 版)
([[名無しさん]] [WEAK[2007-04-07 14:19:59 +00:00]])
[70]
[CITE@en[XHTML Document Development Area]] ([CODE[2007-04-07 01:58:13 +09:00]] 版)
([[名無しさん]] [WEAK[2007-04-07 14:20:53 +00:00]])
[71]
[CITE@en[XHTML™ Modularization 1.1]] ([CODE[2007-10-02 22:37:12 +09:00]] 版)
こんなのが追加されています:
> For the avoidance of doubt, the behavior of User Agents in the presence of invalid documents is undefined.
([[名無しさん]])
[72]
[CITE@en[XHTML™ Modularization 1.1]] ([CODE[2007-11-16 02:23:04 +09:00]] 版)
([[名無しさん]])
[73]
>>12 [[XHTMLホスト言語文書型]]の[[適合性]]のところに、
[[XHTML]] の[[属性]]を非 [[XHTML]] [[要素]]でも使えるという記述があるのですが、
そのとき[[名前空間]]を指定することが [['''MUST''']]
から [[''SHOULD'']] に変更されています。
([[名無しさん]])
[74]
[CITE@en[XHTML™ Modularization 1.1]] ([CODE[2008-01-17 06:00:25 +09:00]] 版)
([[名無しさん]])
[75]
>>74
- [[共通属性]]を非 [[XHTML]] [[名前空間]]で使うときは[[大域属性]]と[['''しなければなりません''']]とされていた箇所が、[['''するべきです''']]に緩和されました (3.2節)。
- [[XHTMLモジュール]]の定義について、文章と[[スキーマ]]に相違がある場合は文章の規定を優先[['''しなければなりません''']]との規定が追加されました (3.3節)。
- [[DTDモジュール]]の [CODE(HTMLe)@en[[[html]]]] [[要素型宣言]]に
[CODE(HTMLa)@en[[[id]]]] [[属性]] ([CODE(XML)@en[%[[id.attrib]];]])
が追加されました。
([[名無しさん]])
[76]
>>74
- [[共通属性]]を非 [[XHTML]] [[名前空間]]で使うときは[[大域属性]]と[['''しなければなりません''']]とされていた箇所が、[['''するべきです''']]に緩和されました (3.2節)。
- [[XHTMLモジュール]]の定義について、文章と[[スキーマ]]に相違がある場合は文章の規定を優先[['''しなければなりません''']]との規定が追加されました (3.3節)。
- [[DTDモジュール]]の [CODE(HTMLe)@en[[[html]]]] [[要素型宣言]]に
[CODE(HTMLa)@en[[[id]]]] [[属性]] ([CODE(XML)@en[%[[id.attrib]];]])
が追加されました。
([[名無しさん]])
[77]
[CITE@en[XHTML™ Modularization 1.1]] ([CODE[2008-03-19 21:12:20 +09:00]] 版)
([[名無しさん]])
[78]
[CITE@en[XHTML Modularization for RelaxNG]] ([CODE[2008-06-05 01:00:46 +09:00]] 版)
([[名無しさん]])
[79]
[CITE@en[XHTML™ Modularization 1.1]] ([CODE[2008-06-11 23:48:21 +09:00]] 版)
([[名無しさん]])
[80]
[CITE[XHTML Modularization 1.1 Implementation Report]] ([CODE[2008-06-12 00:56:03 +09:00]] 版)
([[名無しさん]])
[81]
[CITE@en[XHTML™ Modularization 1.1]] ([CODE[2008-08-14 01:44:58 +09:00]] 版)
([[名無しさん]])
[82]
[CITE@en[XHTML™ Modularization 1.1]] ([TIME[2008-10-09 05:16:04 +09:00]] 版)
[486] [CITE@en[XHTML Modularization for RelaxNG]] ([TIME[2008-06-05 01:00:46 +09:00]] 版)
* おかしな点
[474] 旧 [[HTML WG]] (現 [[XHTML2 WG]]) の仕様書でおかしな点がないものを探す方が難しいんですが、
あえてぱっと目に付いた問題点を挙げてみます。
7年がかりの新バージョンですらこれなんです。 [[W3C]] [[勧告]]に2回なってます。信じられますか?
** 利用者エージェント適合性
[475] [CSECTION@en[3.5. XHTML Family User Agent Conformance]]
で定義されている[[利用者エージェント]]の適合性については、
「[[XHTML 1.0]] で定義されている通り」などと述べられていますが、
[[XHTML 1.0]] とは内容が微妙に違います。
;; [[XHTML利用者エージェント適合性]]の項を参照。
[476] そもそも、 1.1 で abstract に追加された文によると
「This specification [INS[ [define] ]] only how those elements and attributes are assembled into modules, and from those modules into markup languages.」
のですから、[[利用者エージェント]]の適合性が語られること自体おかしな話です。
[[利用者エージェント]]の適合性を議論するなら、 [[CR]] フェーズ終了の条件である実装報告に[[利用者エージェント]]の結果も載っていてしかるべきではないでしょうか。
** 引用文献の混乱
[479] [[属性型]]の定義では [[URI]] は [[XML Schema]] を参照していますが、
[[DTD]] 実装や [[XML Schema]] 実装では [[RFC 3986]] を参照しています。
更に 1.1 で [[RFC 3987]] が新たに参考文献に加えられていますが、
「[[RFC 3987]] を参考文献に加えた」と 1.0 からの変更点に挙げられている以外、
全く引用されていません。
[480] [[属性型]]の定義では [[LanguageCode]] は [[RFC 3066]] またはその後継版を指していますが、
[[DTD]] 実装や [[XML Schema]] 実装では [[RFC 3066]] だけを参照しています。
そもそも[[勧告]]の時期的に既に [[RFC 4646]] が発行された後なのですが、敢えて [[RFC 3066]]
を引用しているのか、そうでないのかは不明です。
;; どうせ参考文献の更新を確認していないだけでしょうが。
** [CODE(XMLa)@en[xml:space]] 属性
[481] [CODE(XMLa)@en[[[xml]]:[[space]]]] [[属性]]の[[抽象モジュール]]定義をそのまま理解すると、
既定値 [CODE(XML)@en[[[defalt]]]] が常に適用されるので、 [[XML]]
における定義のように[[親要素]]の指定を[[継承]]しないことになりますが、それでいいのでしょうか。
[482] [[DTD]] 定義によると [CODE(XMLa)@en[[[xml]]:[[space]]]] の値は
[CODE(XML)@en[[[preserve]]]] だけで、全[[要素]]で[[既定値]]も
[CODE(XML)@en[[[preserve]]]] になっていて、 >>481
と矛盾しています。
** [CODE(HTMLa)@en[id]] 属性
[484] [[抽象モジュール]]定義では [CODE(HTMLe)@en[[[meta]]]] [[要素]]にも追加された
[CODE(HTMLa)@en[[[id]]]] [[属性]]ですが、 [[DTD実装]]や
[[XML Schema]] 実装では追加されていません。
** 説明なき新規属性型
[478] [CODE@en[[[LanguageCode''s'']]]] や [[CURIE]]
など、新しい[[属性型]]が何の説明もなく (1.0 からの変更点でも説明せず) 追加されています。
一応変更点に挙げられている [[QName]]/[[QNames]] も含めて、
これらの[[属性型]]はどこからも参照されていません。
;; 実は [[role]] や [[RDFa]] のような他の仕様が引用していたりするのですが。
[485] [[QName]] とか [[CURIE]] とか[[安全CURIE]] とか、似て非なるものを色々増やしていって、
いったい何がしたいのですかね?
** XML Schema の文字実体定義
[483] [CSECTION@en[C.2.4. XHTML Character Entities]]
では [[XML Schema]] [[モジュール]]の[[内部部分集合]]から[[文字実体]]を定義する
[[DTDモジュール]]を参照しているのですが、何の意味があるのでしょうか。
何かの魔除け効果でもあるのでしょうか。
* メモ