1 |
wakaba |
1.5 |
|
2 |
|
|
|
3 |
|
|
|
4 |
|
|
* HTML 4 の場合 |
5 |
|
|
|
6 |
|
|
[88] [[HTML文書]]は、その HTML の版を表すために[DFN[文書型宣言]]を最初に入れなければ'''なりません'''。 |
7 |
|
|
HTML 4 では3種類の DTD が定義されていますので、 |
8 |
|
|
そのうちのいずれかを参照する宣言が必要です。 |
9 |
|
|
<IW:HTML4:"struct/global.html#version-info"> 参照。 |
10 |
|
|
|
11 |
|
|
:[[Strict]] (厳格) DTD:[[非推奨]]ではなく、[[枠集合]]文書に現れるものではないすべての[[要素]]と[[属性]]を含みます。 |
12 |
|
|
[PRE[ |
13 |
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" |
14 |
|
|
"http://www.w3.org/TR/html4/strict.dtd"> |
15 |
|
|
]PRE] |
16 |
|
|
|
17 |
|
|
:Transitional (過渡的) DTD:Strict DTD に加え、 |
18 |
|
|
非推奨の要素・属性を含みます。 |
19 |
|
|
[PRE[ |
20 |
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" |
21 |
|
|
"http://www.w3.org/TR/html4/loose.dtd"> |
22 |
|
|
]PRE] |
23 |
|
|
|
24 |
|
|
:Frameset (枠集合) DTD:Transitional DTD に加え[[枠]]を含みます。 |
25 |
|
|
[PRE[ |
26 |
|
|
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" |
27 |
|
|
"http://www.w3.org/TR/html4/frameset.dtd"> |
28 |
|
|
]PRE] |
29 |
|
|
|
30 |
|
|
|
31 |
|
|
[89] なお、 |
32 |
|
|
- 将来の版の HTML 4 の DTD に加えられた変更で従来の |
33 |
|
|
HTML 4 文書が非妥当になることはありません。 |
34 |
|
|
- 従来の版の HTML 4 の DTD に適合するソフトウェアは将来の版の HTML 4 の認識出来ない機能を無視して構いません。 |
35 |
|
|
|
36 |
|
|
このため、文書型宣言の[[システム識別子]]の値は通常は |
37 |
|
|
「最新版」を表す [[URI参照]] (>>88 に示されているもの9 |
38 |
|
|
を使い、特定の版の HTML 4 DTD を特に指定したいときだけそれを使うこととできます。 |
39 |
|
|
|
40 |
|
|
[[#comment]] |
41 |
|
|
|
42 |
|
|
|
43 |
|
|
* HTML の文書型宣言の色々 |
44 |
|
|
|
45 |
|
|
- [1] お題: [[HTML]] ([[不思議マーク付け]]も含む。) |
46 |
|
|
の[[文書型宣言]] ([[DOCTYPE]]) の記述を収集せよ。 |
47 |
|
|
- [9] [CODE[<!DOCTYPE HTML PUBLIC "-//W3 Organization//DTD W3 HTML 2.0//EN">]] (''Hypertext Markup language and SGML'' <http://www.w3.org/MarkUp/1995-archive/Intro.html>) |
48 |
|
|
- [10] ''Mozilla の DOCTYPE 判別'' <http://jt.mozilla.gr.jp/docs/web-developer/quirks/doctypes.html> 色々な文書型宣言 (不正なものも含む。) の例示あり |
49 |
|
|
- [33] ''W3C QA - List of valid DTDs you can use in your document.'' <http://www.w3.org/QA/2002/04/valid-dtd-list.html> |
50 |
|
|
- [34] [CODE[<!DOCTYPE Mosaic-Communications-Bookmark-file-1>]] [[MosaicNetscape]] の bookmark |
51 |
|
|
- [37] ''SGML catalog for the W3C HTML Validation Service'' <http://validator.w3.org/sgml-lib/catalog> 色んなのが載ってます。 |
52 |
|
|
- [38] >>37 の [[DTD]] は ''Index of /sgml-lib'' <http://validator.w3.org/sgml-lib/> にあります。 |
53 |
|
|
- [54] [CODE(SGML)[<!DOCTYPE HTML PUBLIC "-//connolly hal.com//DTD WWW HTML 1.8//EN">]] ''HTML Design Notebook'' <http://www.w3.org/People/Connolly/drafts/html-design.html> で使われている。 |
54 |
|
|
- [55] [CODE(HTML)[<!DOCTYPE HTML PUBLIC "-//Mosaic Comm. Corp.//DTD HTML//EN">]] ''Testing mcom additions to HTML'' <http://www.w3.org/People/Connolly/html-test/mcom/test-mcom.html> で使われている。 |
55 |
|
|
- [67] [CODE(HTML)[<!doctype html public "html2.0">]] [[IBM]] の古い文書にある |
56 |
|
|
- [71] [CODE(HTML)[<!DOCTYPE HTML PUBLIC "ISO 15445:2000//DTD HTML//EN">]] 『[[ISO-HTML]] 利用者の手引き』中に出てきたが・・・ |
57 |
|
|
- [72] >>71 の出典は翻訳 JIS TR の。 ([[JIS-HTML]] 参照。) しかし、 [[InternetArchive]] に残っている最古の <http://web.archive.org/web/20000815232401/woodworm.cs.uml.edu/~rprice/15445/UG.html> も、既にちゃんと [CODE(HTML)[ISO/IEC]] になってるんだよなあ。 |
58 |
|
|
- [73] [CODE(HTML)[<!DOCTYPE Pre-HTML PUBLIC "-//ISO-HTML User's Guide//DTD Preparation of ISO-HTML//EN">]] 『[[ISO-HTML]] 利用者の手引き』9.1.1。 |
59 |
|
|
- [75] [CODE(HTML)["-//Netscape//netscape extension//JA"]]: ''Phrase/Typographic markup test'' <http://web.archive.org/web/20011110215859/www.dais.is.tohoku.ac.jp/~kabe/misc/fonts.html> |
60 |
|
|
- [76] [CODE(HTML)[<!doctype html public "-//W3C//DTD HTML 5.0//EN">]], [CODE(HTML)[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 5.0//EN">]], [CODE(HTML)[<!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 5.0 Frameset//EN" "http://www.w3.org/TR/REC-html140/frameset.dtd">]]: <IW:Strictスレ:"1:423"> |
61 |
|
|
- [77] [CODE(HTML)[<!DOCTYPE html SYSTEM "http://www.w3.org/Style/HTML40-plus-blink.dtd">]]: ''Web Style Sheets'' <http://www.w3.org/Style/> で使われている。余程 [[blink]] 要素が使いたかったらしい。 |
62 |
|
|
- [78] [CODE(HTML)[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2Final//EN"]] 壊れてる気がするが。 |
63 |
|
|
- [84] [CODE(HTML)[<!doctype html public "-//W3C//DTD HTML 1996-01//EN">]]: ''Extensible Markup Language (XML)'' <http://www.w3.org/TR/WD-xml-961114> の文書型。 |
64 |
|
|
- [87] [[FPI]] [CODE(HTML)[-//M3C//DTD XHTML Makoto Sawatari 1.6//EN]], [CODE(HTML)[-//M3C//DTD XHTML Mishio Amano 12.6//EN]], [CODE(HTML)[-//M3C//DTD XHTML Misuzu Kamio 7.23//EN]]: 単なる冗句。 ''Makoto Mishio Misuzu Cuties'' <http://m3c.misuzilla.org/> |
65 |
|
|
[[#comment]] |
66 |
|
|
|
67 |
|
|
|
68 |
|
|
* 文書型宣言のない HTML 文書 |
69 |
|
|
|
70 |
|
|
- [79] [[HTML]] 文書は、一般に文書型宣言を冒頭に入れるべきです。 |
71 |
|
|
[[XHTML]] 文書は、特定の ([[DTD]] の存在する) profile |
72 |
|
|
に適合することを主張する場合は、これを明示するべきです。 |
73 |
|
|
|
74 |
|
|
[80] >>79 はとりあえずおいておいて、文書型宣言のない HTML |
75 |
|
|
(not XHTML) 文書が正しいのか考えてみます。 |
76 |
|
|
|
77 |
|
|
[81] [[WebSGML]] では文書型宣言は必須ではありませんから、 |
78 |
|
|
これを採用している [[HTML4]] と [[XML]] では省略できます。 |
79 |
|
|
しかし HTML 4 では文書型宣言を必須と定義しています。 XML |
80 |
|
|
はここでの話の対象外です。 |
81 |
|
|
|
82 |
|
|
[82] [INS[(伝統的な HTML の話と HTML 2.0 の規定の話)]] |
83 |
|
|
|
84 |
|
|
[83] では旧来の HTML 文書で文書型宣言のないものが不当かというと、 |
85 |
|
|
必ずしもそうではありません。確かに、単独の文書 ([[SGML文書実体]]) |
86 |
|
|
としては不当です。 |
87 |
|
|
しかし、実はそれは[[外部解析実体]]だったとしたらどうでしょう。 |
88 |
|
|
|
89 |
|
|
つまり、[[WWWブラウザ]]は随時こんな感じの SGML |
90 |
|
|
文書実体を自動生成していると考えるのです。 |
91 |
|
|
|
92 |
|
|
[PRE[ |
93 |
|
|
<!SGML [VAR[その実装の SGML 宣言]]> |
94 |
|
|
<!DOCTYPE [[html]] SYSTEM "[VAR[その実装の DTD]]" [ |
95 |
|
|
<!ENTITY real-document SYSTEM "[VAR[当該文書の URI]]"> |
96 |
|
|
]> |
97 |
|
|
&real-document; |
98 |
|
|
]PRE] |
99 |
|
|
|
100 |
|
|
これなら、当該文書が [[SGML文実体]]として適当である限りは、 |
101 |
|
|
妥当な SGML 文書じゃないですかね? |
102 |
|
|
|
103 |
|
|
[85] >>83 の例は不正だった。 (文書要素の外の部分に[[実体参照]]は書けない。) |
104 |
|
|
訂正して、 |
105 |
|
|
[PRE[ |
106 |
|
|
<!SGML [VAR[その実装の SGML 宣言]]> |
107 |
|
|
<!DOCTYPE [[pre-html]] SYSTEM "[VAR[その実装の DTD]]" [ |
108 |
|
|
<!ELEMENT pre-html o o (html)> |
109 |
|
|
<!ENTITY real-document SYSTEM "[VAR[当該文書の URI]]"> |
110 |
|
|
]> |
111 |
|
|
&real-document; |
112 |
|
|
]PRE] |
113 |
|
|
|
114 |
|
|
[86] もっとも、 Web SGML ができたからもうこんな hack |
115 |
|
|
を考える必要はないですし、文書型宣言もない HTML |
116 |
|
|
文書実現値は往々にして SGML 的に不正なことが他にあったりするんですが。 |
117 |
|
|
|
118 |
|
|
|
119 |
|
|
[90] |
120 |
|
|
[CODE(SGML)[<!DOCTYPE HTML PUBLIC "-//W3C//DTD Netscape 4.0//EN">]]
|
121 |
|
|
|
122 |
|
|
<http://www.hss.osaka-u.ac.jp/new/index.shtml>
|
123 |
|
|
([CODE(MIME)[[[text/plain]]]](藁)) で使われてます。。。 |
124 |
|
|
([[名無しさん]] [WEAK[2004-11-09 12:33:45 +00:00]]) |
125 |
|
|
|
126 |
|
|
|
127 |
|
|
[[#comment]] |
128 |
|
|
|
129 |
|
|
|
130 |
|
|
* メモ |