XHTML+RDFa 1.1

html 要素 version 属性 (HTML)

[4] HTMLhtml 要素version 内容属性は、その文書が利用している HTML (バージョン) を記述するものでした。 かつては定義こそされていましたが、実用上まったく意味を成さないため、現実には使われていませんでした。 この属性HTML5 によって完全に廃止されています。

[41] HTMLHtmlElement インターフェイスversion IDL属性は、 version 内容属性反映する DOMString 型の読み書きできる属性です。内容属性の方が廃止されていますが、 IDL属性は互換性のため引き続き Webブラウザーが実装しなければならないものに含まれています。

代替

[52] 歴史的に HTML の仕様書には「版」がありましたが、 HTML という言語は唯一のもので、 の違いはありません。どんなHTML文書も現行 HTML Standard の規定によって解釈されますから、 文書に版を記述する必要はありません。

仕様書

属性値

[5] HTML 4 仕様書本文は属性値の書式について CDATA であるとだけ述べています。 また、大文字小文字の区別には意味がないとされています。

[22] HTML 4 移行用DTDフレーム集合DTD では、それぞれの DTD公式公開識別子既定値であるような固定属性として宣言されています。

厳密DTD には version 属性が存在しません。

従って、 HTML 4.01version 属性を明示的に指定する場合、

でなければならず、それ以外であれば非妥当です。 大文字小文字空白も正確にこの通りでなければなりません。

厳密にいえば、 SGML 的に無視される空白なら挿入可能です。

処理モデル

[23] version 属性が何のために存在するのか、 利用者エージェントがどう扱うべきなのかなどは HTML 4 ではまったく規定されていません。

[57] RDFa においては RDFa の版を切り替えるために使われています。 RDFa処理器の項を参照してください。

[58] おそらくこれが version の処理モデルを明確に規定する唯一の例です。

歴史

[7]

誕生

[28] HTML 2.0 開発当時の HTML DTD の変更履歴には次のようにあります。

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

これ以前から DTD には一般実体として HTML.Version が定義されていて、 DTD公開識別子実体文になっていましたが、 このとき引数実体となり、同時に version 属性が追加されたようです。

version 属性を追加した動機は、 応用HTMLを判別できるようにすることのようです。 SGML 構文解析器SGML 応用文書の内容を渡す際に文書型宣言が失われてしまうことを考慮したのでしょう。

残念ながら当時の HTML DTD のすべては残っていないので、 引数実体への変更は確認できますが、 version 属性の追加は確認できません。 1994年9月23日の1.19版では確かに version 属性が追加されています。
[53] この時点では、SGML処理器からSGML応用への情報伝達のためだけの目的の擬似的な属性であって、 文書実現値著者が明記することは想定していなかったものと推測されます。このように #FIXED 属性を使って DTD からSGML応用に引き渡す情報を記述するのは、 SGML DTD ではよく用いられていた技法です。

[29] version 属性は、 その宣言のされ方を含めてその後のほぼすべての HTML DTD に引き継がれています。

標準化されたものの中では、 HTML 2.0HTML 2.xHTML 3.2HTML 4.0HTML 4.01DTDversion 属性%HTML.Version; を値とする固定属性として宣言されています。

HTML 4 厳密DTD を除きます。
ISO-HTMLXHTML 1.0 には version%HTML.Version; も含まれていません。

[30] HTML 2.0HTML 2.xHTML 3.2 も、 DTD には含めながら、 仕様書本文ではまったく説明していませんでした。

[31] HTML 4.0 はその文書が使用している HTML DTDを指定するもので、文書型宣言もあって冗長なので非推奨にする、 と説明しています。そのため、移行用DTDフレーム集合DTD には含まれていますが、 厳密DTD には含まれていません。

[21] HTML 4 は、版情報が文書型宣言と重複していて冗長なので、 この属性非推奨としています。

Compact HTML

[24] Compact HTML は、附属書 A の一覧表の html の欄の Comments として version="C-HTML 1.0". と記しています。 明らかに version 属性値の規定または例と思われます。

[25] しかし、附属書 B の DTD では、 HTML 4 等と同様に version%HTML.Version; と同値 (-//W3C//DTD Compact HTML 1.0 Draft//EN) の固定属性として宣言しています。

[26] ちなみに、 3.1 Design PrinciplesCompact HTML is defined as a subset of HTML 2.0, HTML 3.2 and HTML 4.0 specifications.3.2 Features of Compact HTML でも The Compact HTML is a subset of HTML 2.0, HTML 3.2 and HTML 4.0. と述べられているのですが、 HTML 2.0HTML 3.2HTML 4.0 のいずれも version 属性-//W3C//DTD Compact HTML 1.0 Draft//ENC-HTML 1.0 が現れることを認めていないので、 subset とはいえません。

[27] iモード対応HTML 1.0 には version 属性があり、 このホームページで使用しているHTMLのバージョン情報を明示する。 と説明されていました。

[42] しかし、なぜか iモード対応HTML 2.0 では削除されています。

XHTML 1

[32] version 属性XHTML 1.0 にはまったく含まれておらず、言及すらされていませんが、 XHTML m12n には普通に含まれています。

[37] XHTML 1 の最初の WD には、 HTML 4非推奨とされたものも含めてほぼすべての属性が含まれていますが、 version 属性はなぜか含まれていません。

これ以後 XHTML 1.0 にはずっと version 属性は含まれていません。

[38] XHTML m12n の最初の WD には version 属性が含まれており、 面白い説明があります。

%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非推奨だった属性にこのような注記はなく、 なぜあえて version にだけこう説明を入れたのかは謎です。

[33] XHTML m12n では HTML 4非推奨とされた属性遺物モジュールなどに分けられているのですが、 version 属性はなぜか中核モジュール構造モジュールhtml 要素と共に定義されています。 非推奨であることをうかがわせる記述はまったくありません。

[34] XHTML m12n 抽象モジュール定義によれば、 version 属性CDATA で、既定値は特にありません。

[35] XHTML m12n DTDモジュール定義によれば、 version 属性%FPI.datatype; で、 固定属性で、既定値%XHTML.version; です。

HTML 4 と比べると、属性型が単なる CDATA ではなく FPI (公式公開識別子) と明記されていること、 既定値%HTML.version; でなく %XHTML.version; であることが異なりますが、実質的に同じといってよいでしょう。

%XHTML.version;XHTML 1.1 などの DTD駆動器宣言されており、 公式公開識別子実体値となっています。

抽象モジュール定義でなぜ FPI とされていないのかという疑問が湧きますが、 そこは (旧) HTML WG クオリティーでしょう。

[36] XHTML m12n 1.1 では XML Schemaモジュール定義が追加されています。 データ型xh11:FPI になっています。既定値はありません。

XML Schema には引数実体に相当するものがないためでしょうか。

XHTML 2

[39] XHTML 2.0 の2004年7月22日版 WD で、 html 要素version 属性が追加されました。

属性値CDATA とされており、

The value of this attribute specifies which XHTML Family document type governs the current document. The format of this attribute value is unspecified.

と説明されていました。また、未解決の問題点として、 version 属性の書式が決まっていないことが挙げられていました。

1つ前の2003年の WD では html 要素profile 属性がありました。2004年の WDversion が追加されたのは profile の代わりなのかもしれません。

XHTML-Print

[46] >>45 XHTML-Print にも 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.

という意味不明な説明があります。

RDFa

[48] XHTML+RDFa 1.0 では version 属性値XHTML+RDFa 1.0 とするべきとされていました。

[49] それ以前の XHTML1 では文書型宣言が必須でしたが、 XHTML+RDFa 1.0 ではその要件が削除されており、その代わりに設けられたのだと思われます。 でもその割には MUST でなくて SHOULD なのが謎です。

[55] XHTML+RDFa 1.1 では version 属性値XHTML+RDFa 1.1 として構わないとされていました。

[56] なぜトーンダウンしたのかは謎です。

[59] XHTML+RDFa 1.1version 属性の値によって XHTML+RDFa の版を切り替えることを求めています。 (RDFa処理器の項を参照。)

[63] ところで RDFa初期文脈の定義文書である >>61>>62XHTML+RDFa 1.1文書のようですが、なぜか versionRDFa 1.1 という謎の値になっています。

[64] HTML+RDFa 1.1 は、 XHTML5+RDFa 1.1文書version 属性を使うべきではないとしています。

[66] XHTML+RDFa 1.0XHTML+RDFa 1.1 と区別するためのようです。
[65] なぜ禁止していないのかは謎です。

HTML5

[60] HTML Standard は廃止された内容属性のリストにこれを含めました。一方で IDL属性は互換性のためとして HTMLHtmlInterface に残されています。

[6] HTML 4.01 移行用 DTD の場合

<html version="-//W3C//DTD HTML 4.01 Transitional//EN">

[9] "<html version=" - Google Code Search (2007-04-15 16:02:30 +09:00 版) <http://www.google.com/codesearch?q=+%22%3Chtml+version%3D%22>

Web で配布されているプログラム等に同梱されている HTML 文書その他が検索対象なので、本当の Web の実態とは一致しないでしょうが、参考までに。

こんな version 属性値がありました:

全部で24件見つかりました。

[43] FX Online Japan (2007-06-10 22:06:37 +09:00 版) <http://www.fxonline.co.jp/i/>

<!doctype HTML PUBLIC "-//W3C//DTD Compact HTML 1.0 Draft//EN">
<html version="C-HTML 1.0">
<head>
<title>FX Online Japan</title>
<meta http-equiv="Content-Language" content="ja">
<meta http-equiv="Content-Type" content="text/html; charset=shift_jis">
<META name="CHTML" content="yes">
<META name="description" content="FX Online Japan">
</head>

(名無しさん)

[44] 第9節 大臣官房地方課 1.地方課の設置とその背景 (mof 著, 2004-12-30 16:02:49 +09:00 版) <http://www.mof.go.jp/zaimu/30nenn/main/010901.htm>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 Final//EN">
<HTML LANG="ja-JP" VERSION="3.2">
<HEAD>
    <META HTTP-EQUIV="Content-Type" CONTENT="text/html; CHARSET=Shift_JIS">
    <META HTTP-EQUIV="Content-Language" CONTENT="ja">
    <META NAME="Author" CONTENT="mof">
    <LINK REV="Made" HREF="mailto:info@mof.go.jp">
    <TITLE>第9節 大臣官房地方課 1.地方課の設置とその背景</TITLE>
</HEAD>

(名無しさん)

メモ

[40] html要素 (2007-03-11 16:11:29 +09:00 版) <http://w3g.jp/xhtml/dic/html#version>

HTML 4.01 厳密DTDversion 属性が存在すると説明し、使用例まで載せています。

[47] XHTML 1.1のバージョン表記 - vantguarde - web:g ( 版) <http://web.g.hatena.ne.jp/vantguarde/20080127/1201401694>

[1] Inline XBRL Part 0: Primer 1.0 ( 版) <http://www.xbrl.org/specification/inlinexbrl-part0/rec-2010-04-20/inlinexbrl-part0-rec-2010-04-20.html>

The version attribute can, optionally, be used to identify a document as Inline XBRL. If used, the value MUST be the Formal Public Identifier defined in [Inline XBRL Schema] (currently "-//XBRL International//DTD XHTML Inline XBRL 1.0//EN").

[3] Bug 8979 – Please reconsider should-level requirement for version attribute ( 版) <http://www.w3.org/Bugs/Public/show_bug.cgi?id=8979>