* version 擬似属性 (xml 宣言) [1] [[XML]] 1.0 [[SE]] の Errata では大きな修正があります: ''Errata in REC-xml-20001006'' 。 XML 1.1 の策定に合わせて改めたみたいです。 [[#comment]] * xslt:*/@version 属性, xslt:version 属性 (XSLT) [2] [[XSLT]] には、 [CODE(XSLTa)[version]] 属性が [CODE(XSLTe)[[VAR[xslt:]][[stylesheet]]]] 要素型, [CODE(XSLTe)[[VAR[xslt:]][[transform]]]] 要素型に定義されています (必須)。また、 [[表記結果要素]]を[[スタイル・シート]]として使うときに、 その[[文書要素]]につけなければならない [CODE(XSLTa)[[VAR[xslt:]]version]] 大域属性があります。 , したがって、 [[XSLTスタイル・シート]]には必ず根要素に版を表す属性があることになります。 [3] 値の型は [[number]] です。 XSLT 1.0 では値 [CODE(XSLT)[1.0]] が定義されており、 これ以外の値が与えられたときには[[前方互換処理モード]]になります。 [48] [CODE(XSLTe)@en[xslt:[[output]]]] [[要素]]にも [CODE(XSLTa)@en[[[version]]]] [[属性]]がありますが、これは出力[[言語]]の版を表す違う意味の[[要素]]です ([[XML出力方式]]や [[HTML出力方式]]の項を参照してください)。 [[#comment]] * [CODE(HTMLe)@en[html]] 要素 [CODE(HTMLa)@en[version]] 属性 (HTML) [4] [CODE(HTMLe)@en[[[html]]]] [[要素]]の [DFN[[CODE(HTMLa)@en[version]] [[属性]]]]は、 その[[文書]]が使用している [[HTML]] [[DTD]] の[[版]]を指定します。 [20] [[内容属性]]: :状態:[[W3C]] [[勧告]] ([[非推奨]]) :[[要素]]:[CODE(HTMLe)@en[[QN[[[html]]] [http://www.w3.org/1999/xhtml]]]] :[[属性名]]:[CODE(HTMLa)@en[[[version]]]] ([Q@en[[[version]]]] ([Q[[[版]]]]) より) :[[属性値]]:不明 :[[既定値]]:使用している [[HTML]] [[DTD]] の[[公開識別子]] [41] [[DOM属性]]: :状態:[[W3C]] [[勧告]] :[[界面]]:[CODE(DOMi)@en[[[HTMLHtmlElement]]]] :[[属性名]]:[CODE(DOMa)@en[[[version]]]] :[[データ型]]:[CODE(DOMi)@en[[[DOMString]]]] [7] 仕様書: - [[HTML 4]] ([[W3C]] [[勧告]]) -- [CODE(HTMLe)@en[[[html]]]] [[要素]] [CODE(HTMLa)@en[[[version]]]] [[属性]] -- [[移行用DTD]] - [[Compact HTML]] -- [CSECTION@en[Appendix A. Compact HTML Tag List]] -- [CSECTION@en[Appendix B. Compact HTML DTD]] - [[XHTML m12n]] -- [CSECTION@en[5.2.1. Structure Module]] -- [CSECTION@en[C.3.1.1. Structure]] -- [CSECTION@en[F.3.1.1. Structure]] - [[XHTML 2.0]] -- [CODE(HTMLe)@en[[[html]]]] [[要素]] [CODE(HTMLa)@en[[[version]]]] [[属性]] - [[DOM水準1]] -- [[HTML]] [CODE(DOMi)@en[[[HTMLHtmlElement]]]] [CODE(DOMa)@en[[[version]]]] [[属性]] - [[DOM水準2]] -- [[HTML]] [CODE(DOMi)@en[[[HTMLHtmlElement]]]] [CODE(DOMa)@en[[[version]]]] [[属性]] ** 代替 [21] [[HTML 4]] は、版情報が[[文書型宣言]]と重複していて冗長なので、 この[[属性]]を'''[[非推奨]]'''としています。 [[#comment]] ** 属性値 [5] [[HTML 4]] 仕様書本文は[[属性値]]の書式について [CODE(SGML)@en[[[CDATA]]]] であるとだけ述べています。 また、[[大文字]]・[[小文字]]の区別には意味がないとされています。 [22] [[HTML 4]] [[移行用DTD]]・[[フレーム集合DTD]] では、それぞれの [[DTD]] の[[公式公開識別子]]が[[既定値]]であるような[[固定属性]]として[[宣言]]されています。 ;; [[厳密DTD]] には [CODE(HTMLa)@en[[[version]]]] [[属性]]が存在しません。 従って、 [[HTML 4.01]] で [CODE(HTMLa)@en[[[version]]]] [[属性]]を明示的に[[指定]]する場合、 - [[移行用DTD]] なら [CODE(HTML)@en[[[-//W3C//DTD HTML 4.01 Transitional//EN]]]] - [[フレーム集合DTD]] なら [CODE(HTML)@en[[[-//W3C//DTD HTML 4.01 Frameset//EN]]]] でなければならず、それ以外であれば[[非妥当]]です。 [[大文字]]・[[小文字]]も[[空白]]も正確にこの通りでなければなりません。 ;; 厳密にいえば、 [[SGML]] 的に無視される[[空白]]なら挿入可能です。 [[#comment]] ** 処理モデル [23] [CODE(HTMLa)@en[[[version]]]] [[属性]]が何のために存在するのか、 [[利用者エージェント]]がどう扱うべきなのかなどは [[HTML 4]] ではまったく規定されていません。 [[#comment]] ** 歴史 *** 誕生 [28] [[HTML 2.0]] 開発当時の [[HTML]] [[DTD]] の変更履歴には次のようにあります。 ;; > [PRE[ revision 1.18 date: 1994/07/20 16:24:43; author: connolly; state: Exp; lines: +2 -2 Changed HTML.version to a parameter entity, added #fixed attribute on HTML element to report version to application ]PRE] これ以前から [[DTD]] には[[一般実体]]として [CODE(SGML)@en[[[HTML.Version]]]] が定義されていて、 [[DTD]] の[[公開識別子]]が[[実体文]]になっていましたが、 このとき[[引数実体]]となり、同時に [CODE(HTMLa)@en[[[version]]]] [[属性]]が追加されたようです。 [CODE(HTMLa)@en[[[version]]]] [[属性]]を追加した動機は、 [[応用]]が [[HTML]] の[[版]]を判別できるようにすることのようです。 [[SGML]] [[構文解析器]]が [[SGML]] [[応用]]に[[文書]]の内容を渡す際に[[文書型宣言]]が失われてしまうことを考慮したのでしょう。 ;; 残念ながら当時の [[HTML]] [[DTD]] のすべては残っていないので、 [[引数実体]]への変更は確認できますが、 [CODE(HTMLa)@en[[[version]]]] [[属性]]の追加は確認できません。 1994年9月23日の1.19版では確かに [CODE(HTMLa)@en[[[version]]]] [[属性]]が追加されています。 [29] [CODE(HTMLa)@en[[[version]]]] [[属性]]は、 その[[宣言]]のされ方を含めてその後のほぼすべての [[HTML]] [[DTD]] に引き継がれています。 標準化されたものの中では、 [[HTML 2.0]]、 [[HTML 2.x]]、 [[HTML 3.2]]、[[HTML 4.0]]、[[HTML 4.01]] の [[DTD]] で [CODE(HTMLa)@en[[[version]]]] [[属性]]が [CODE(SGML)@en[%[[HTML.Version]];]] を値とする[[固定属性]]として[[宣言]]されています。 ;; [[HTML 4]] [[厳密DTD]] を除きます。 ;; [[ISO-HTML]]、[[XHTML 1.0]] には [CODE(HTMLa)@en[[[version]]]] も [CODE(SGML)@en[%[[HTML.Version]];]] も含まれていません。 [30] [[HTML 2.0]] も [[HTML 2.x]] も [[HTML 3.2]] も、 [[DTD]] には含めながら、 仕様書本文ではまったく説明していませんでした。 [31] [[HTML 4.0]] はその[[文書]]が使用している [[HTML]] [[DTD]] の[[版]]を指定するもので、[[文書型宣言]]もあって冗長なので[[非推奨]]にする、 と説明しています。そのため、[[移行用DTD]] と[[フレーム集合DTD]] には含まれていますが、 [[厳密DTD]] には含まれていません。 [[#comment]] *** Compact HTML [24] [[Compact HTML]] は、附属書 A の一覧表の [CODE(HTMLe)@en[[[html]]]] の欄の [Q@en[Comments]] として [Q@en[version="C-HTML 1.0".]] と記しています。 明らかに [CODE(HTMLa)@en[[[version]]]] [[属性値]]の規定または例と思われます。 [25] しかし、附属書 B の [[DTD]] では、 [[HTML 4]] 等と同様に [CODE(HTMLa)@en[[[version]]]] を [CODE(SGML)@en[%[[HTML.Version]];]] と同値 ([CODE(HTML)@en[[[-//W3C//DTD Compact HTML 1.0 Draft//EN]]]]) の[[固定属性]]として[[宣言]]しています。 [26] ちなみに、 [CSECTION@en[3.1 Design Principles]] で [Q@en[Compact HTML is defined as a subset of HTML 2.0, HTML 3.2 and HTML 4.0 specifications.]]、 [CSECTION@en[3.2 Features of Compact HTML]] でも [Q@en[The Compact HTML is a subset of HTML 2.0, HTML 3.2 and HTML 4.0.]] と述べられているのですが、 [[HTML 2.0]]、 [[HTML 3.2]]、[[HTML 4.0]] のいずれも [CODE(HTMLa)@en[[[version]]]] [[属性]]に [CODE(HTML)@en[[[-//W3C//DTD Compact HTML 1.0 Draft//EN]]]] や [CODE(HTML)@en[[[C-HTML 1.0]]]] が現れることを認めていないので、 [Q@en[subset]] とはいえません。 [27] [[iモード対応HTML]] 1.0 には [CODE(HTMLa)@en[[[version]]]] [[属性]]があり、 [Q@ja[このホームページで使用しているHTMLのバージョン情報を明示する。]] と説明されていました。 ;; [42] しかし、なぜか [[iモード対応HTML]] 2.0 では削除されています。 ;; [[#comment]] *** XHTML 1 [32] [CODE(HTMLa)@en[[[version]]]] [[属性]]は [[XHTML 1.0]] にはまったく含まれておらず、言及すらされていませんが、 [[XHTML m12n]] には普通に含まれています。 [37] [[XHTML 1]] の最初の [[WD]] には、 [[HTML 4]] で[[非推奨]]とされたものも含めてほぼすべての[[属性]]が含まれていますが、 [CODE(HTMLa)@en[[[version]]]] [[属性]]はなぜか含まれていません。 ;; これ以後 [[XHTML 1.0]] にはずっと [CODE(HTMLa)@en[[[version]]]] [[属性]]は含まれていません。 [38] [[XHTML m12n]] の最初の [[WD]] には [CODE(HTMLa)@en[[[version]]]] [[属性]]が含まれており、 面白い説明があります。 ;; > :[CODE(XML)@en[%Version.attrib;]]:the Formal Public Identifier (FPI) for this DTD. This parameter entity is a historical legacy of past HTML DTDs, and is preserved in case any application software uses it. It is also the only place within the DTD (excluding comments) that the DTD's FPI is declared. This declares the attribute specification containing the value as declared in the DTD driver. 歴史的なものだけど、もしかすると使っている[[応用]]があるかもしれないから残す、 といっています。 ;; 他の [[HTML 4]] で[[非推奨]]だった[[属性]]にこのような注記はなく、 なぜあえて [CODE(HTMLa)@en[[[version]]]] にだけこう説明を入れたのかは謎です。 [33] [[XHTML m12n]] では [[HTML 4]] で[[非推奨]]とされた[[属性]]は[[遺物]][[モジュール]]などに分けられているのですが、 [CODE(HTMLa)@en[[[version]]]] [[属性]]はなぜか[[中核]][[モジュール]]の[[構造]][[モジュール]]で [CODE(HTMLe)@en[[[html]]]] [[要素]]と共に定義されています。 [[非推奨]]であることをうかがわせる記述はまったくありません。 [34] [[XHTML m12n]] [[抽象モジュール]]定義によれば、 [CODE(HTMLa)@en[[[version]]]] [[属性]]は [CODE(XML)@en[[[CDATA]]]] で、[[既定値]]は特にありません。 [35] [[XHTML m12n]] [[DTDモジュール]]定義によれば、 [CODE(HTMLa)@en[[[version]]]] [[属性]]は [CODE(XML)@en[%[[FPI.datatype]];]] で、 [[固定属性]]で、[[既定値]]は [CODE(XML)@en[%[[XHTML.version]];]] です。 [[HTML 4]] と比べると、[[属性型]]が単なる [CODE(SGML)@en[[[CDATA]]]] ではなく [CODE@en[[[FPI]]]] ([[公式公開識別子]]) と明記されていること、 [[既定値]]が [CODE(SGML)@en[%[[HTML.version]];]] でなく [CODE(XML)@en[%[[XHTML.version]];]] であることが異なりますが、実質的に同じといってよいでしょう。 ;; [CODE(XML)@en[%[[XHTML.version]];]] は [[XHTML 1.1]] などの [[DTD駆動器]]で[[宣言]]されており、 [[公式公開識別子]]が[[実体値]]となっています。 [[抽象モジュール]]定義でなぜ [CODE@en[[[FPI]]]] とされていないのかという疑問が湧きますが、 そこは (旧) [[HTML WG]] クオリティーでしょう。 [36] [[XHTML m12n 1.1]] では [[XML Schemaモジュール]]定義が追加されています。 [[データ型]]は [CODE(XML)@en[[QN[xh11:[[FPI]]] [http://www.w3.org/1999/xhtml/datatypes/]]]] になっています。[[既定値]]はありません。 ;; [[XML Schema]] には[[引数実体]]に相当するものがないためでしょうか。 [[#comment]] *** XHTML 2 [39] [[XHTML 2.0]] の2004年7月22日版 [[WD]] で、 [CODE(HTMLe)@en[[QN[[[html]]] [http://www.w3.org/2002/06/xhtml2]]]] [[要素]]に [CODE(HTMLa)@en[[[version]]]] [[属性]]が追加されました。 [[属性値]]は [CODE(XML)@en[[[CDATA]]]] とされており、 > The value of this attribute specifies which XHTML Family document type governs the current document. The format of this attribute value is unspecified. と説明されていました。また、未解決の問題点として、 [CODE(HTMLa)@en[[[version]]]] [[属性]]の書式が決まっていないことが挙げられていました。 ;; 1つ前の2003年の [[WD]] では [CODE(HTMLe)@en[[QN[[[html]]] [http://www.w3.org/2002/06/xhtml2]]]] [[要素]]に [CODE(HTMLa)@en[[[profile]]]] [[属性]]がありました。2004年の [[WD]] で [CODE(HTMLa)@en[[[version]]]] が追加されたのは [CODE(HTMLa)@en[[[profile]]]] の代わりなのかもしれません。 ;; [[#comment]] *** メモ [[#comment]] ** 例 [6] '''HTML 4.01 移行用 DTD の場合''' [PRE(HTML deprecated example code)[ <[CODE(HTMLe)[[[html]]]] [CODE(HTMLa)[version]]="-//W3C//DTD HTML 4.01 Transitional//EN"> ]PRE] [9] [CITE[" FX Online Japan ]PRE] ([[名無しさん]]) [44] [CITE@ja-JP[第9節 大臣官房地方課 1.地方課の設置とその背景]] ([[mof]] 著, [CODE[2004-12-30 16:02:49 +09:00]] 版) > [PRE(HTML deprecated example code)[ 第9節 大臣官房地方課 1.地方課の設置とその背景 ]PRE] ([[名無しさん]]) [[#comment]] ** メモ [40] [CITE@ja[html要素]] ([CODE[2007-03-11 16:11:29 +09:00]] 版) [[HTML 4.01]] [[厳密DTD]] に [CODE(HTMLa)@en[[[version]]]] [[属性]]が存在すると説明し、使用例まで載せています。 ([[名無しさん]]) [45] [CITE@en[XHTML-Print]] ([CODE[2006-09-25 23:44:03 +09:00]] 版) ([[名無しさん]]) [46] >>45 [[XHTML-Print]] にも [CODE(HTMLa)@en[[[version]]]] [[属性]]はあるのですが、 無視してよいことになっていて、 > The version attribute is not applicable for printing since it was deprecated in the HTML 4.01 Specification [HTML4] in favor of version information within the DTD. という意味不明な説明があります。 ([[名無しさん]]) [47] [CITE[XHTML 1.1のバージョン表記 - vantguarde - web:g]] ([TIME[2008-10-07 14:31:03 +09:00]] 版) ([[名無しさん]]) [[#comment]] * メモ [8] [CITE@en-US[Internationalization Tag Set (ITS) Version 1.0]] ([CODE[2007-04-03 18:11:18 +09:00]] 版) ([[名無しさん]])