/[pub]/suikawiki/wikidata/page/48544D4C.ns/CAB8BDF1B7BFC0EBB8C0.txt
Suika

Contents of /suikawiki/wikidata/page/48544D4C.ns/CAB8BDF1B7BFC0EBB8C0.txt

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.13 - (hide annotations) (download)
Tue Mar 18 03:01:24 2008 UTC (16 years, 6 months ago) by wakaba
Branch: MAIN
CVS Tags: suikawiki3-final, HEAD
Changes since 1.12: +5 -1 lines
File MIME type: text/plain
auto-committed

1 wakaba 1.7
2    
3     * HTML 4 の場合
4    
5     [88] [[HTML文書]]は、その HTML の版を表すために[DFN[文書型宣言]]を最初に入れなければ'''なりません'''。
6     HTML 4 では3種類の DTD が定義されていますので、
7     そのうちのいずれかを参照する宣言が必要です。
8     <IW:HTML4:"struct/global.html#version-info"> 参照。
9    
10     :[[Strict]] (厳格) DTD:[[非推奨]]ではなく、[[枠集合]]文書に現れるものではないすべての[[要素]]と[[属性]]を含みます。
11     [PRE[
12     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
13     "http://www.w3.org/TR/html4/strict.dtd">
14     ]PRE]
15    
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    
25     :Frameset (枠集合) DTD:Transitional DTD に加え[[枠]]を含みます。
26     [PRE[
27     <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN"
28     "http://www.w3.org/TR/html4/frameset.dtd">
29     ]PRE]
30    
31    
32     [89] なお、
33     - 将来の版の HTML 4 の DTD に加えられた変更で従来の
34     HTML 4 文書が非妥当になることはありません。
35     - 従来の版の HTML 4 の DTD に適合するソフトウェアは将来の版の HTML 4 の認識出来ない機能を無視して構いません。
36    
37     このため、文書型宣言の[[システム識別子]]の値は通常は
38     「最新版」を表す [[URI参照]] (>>88 に示されているもの9
39     を使い、特定の版の HTML 4 DTD を特に指定したいときだけそれを使うこととできます。
40    
41 wakaba 1.12 [101]
42     aaa
43     ([[名無しさん]] [WEAK[2007-12-13 11:11:38 +00:00]])
44 wakaba 1.13
45    
46     [102]
47     Shiit is happened!(c)Forrest Gump
48     ([[Sector]] [gaz@pisem.net])
49 wakaba 1.12
50    
51 wakaba 1.7 [[#comment]]
52    
53    
54     * HTML の文書型宣言の色々
55    
56     - [1] お題: [[HTML]] ([[不思議マーク付け]]も含む。)
57     の[[文書型宣言]] ([[DOCTYPE]]) の記述を収集せよ。
58     - [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>)
59     - [10] ''Mozilla の DOCTYPE 判別'' <http://jt.mozilla.gr.jp/docs/web-developer/quirks/doctypes.html> 色々な文書型宣言 (不正なものも含む。) の例示あり
60     - [33] ''W3C QA - List of valid DTDs you can use in your document.'' <http://www.w3.org/QA/2002/04/valid-dtd-list.html>
61     - [34] [CODE[<!DOCTYPE Mosaic-Communications-Bookmark-file-1>]] [[MosaicNetscape]] の bookmark
62     - [37] ''SGML catalog for the W3C HTML Validation Service'' <http://validator.w3.org/sgml-lib/catalog> 色んなのが載ってます。
63     - [38] >>37 の [[DTD]] は ''Index of /sgml-lib'' <http://validator.w3.org/sgml-lib/> にあります。
64     - [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> で使われている。
65     - [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> で使われている。
66     - [67] [CODE(HTML)[<!doctype html public "html2.0">]] [[IBM]] の古い文書にある
67     - [71] [CODE(HTML)[<!DOCTYPE HTML PUBLIC "ISO 15445:2000//DTD HTML//EN">]] 『[[ISO-HTML]] 利用者の手引き』中に出てきたが・・・
68     - [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]] になってるんだよなあ。
69     - [73] [CODE(HTML)[<!DOCTYPE Pre-HTML PUBLIC "-//ISO-HTML User's Guide//DTD Preparation of ISO-HTML//EN">]] 『[[ISO-HTML]] 利用者の手引き』9.1.1。
70     - [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>
71     - [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">
72     - [77] [CODE(HTML)[<!DOCTYPE html SYSTEM "http://www.w3.org/Style/HTML40-plus-blink.dtd">]]: ''Web Style Sheets'' <http://www.w3.org/Style/> で使われている。余程 [[blink]] 要素が使いたかったらしい。
73     - [78] [CODE(HTML)[<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2Final//EN"]] 壊れてる気がするが。
74     - [84] [CODE(HTML)[<!doctype html public "-//W3C//DTD HTML 1996-01//EN">]]: ''Extensible Markup Language (XML)'' <http://www.w3.org/TR/WD-xml-961114> の文書型。
75     - [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/>
76     [[#comment]]
77    
78    
79     * 文書型宣言のない HTML 文書
80    
81     [79] 現在では、 HTML 文書 (あるいは [CODE(MIME)[[[text/html]]]] 実体)
82     には最初に文書型宣言を記述するべきであると考えられています。
83     [WEAK[XHTML 文書の場合は、特定の [[DTD]] に適合することを主張する場合には文書型宣言を記述するべきです。]]
84    
85     [[#comment]]
86    
87    
88     ** 文書型宣言のない HTML 文書 (片) の解釈
89    
90     [80] >>79 はとりあえずおいておいて、文書型宣言のない HTML
91     (not XHTML) 文書が正しいのか考えてみます。
92    
93     [81] [[WebSGML]] では文書型宣言は必須ではありませんから、
94     これを採用している [[HTML 4]] と [[XML]] では省略できます。
95     しかし HTML 4 では文書型宣言を必須と定義しています。 XML
96     はここでの話の対象外です。
97    
98     [83] では旧来の HTML 文書で文書型宣言のないものが不当かというと、
99     必ずしもそうではありません。確かに、単独の文書 ([[SGML文書実体]])
100     としては不当です。
101     しかし、実はそれは[[外部解析実体]]だったとしたらどうでしょう。
102    
103     つまり、[[WWWブラウザ]]は随時こんな感じの SGML
104     文書実体を自動生成していると考えるのです。
105    
106     [PRE[
107     <!SGML [VAR[その実装の SGML 宣言]]>
108     <!DOCTYPE [[html]] SYSTEM "[VAR[その実装の DTD]]" [
109     <!ENTITY real-document SYSTEM "[VAR[当該文書の URI]]">
110     ]>
111     &real-document;
112     ]PRE]
113    
114     これなら、当該文書が [[SGML文実体]]として適当である限りは、
115     妥当な SGML 文書じゃないですかね?
116    
117     [85] >>83 の例は不正だった。 (文書要素の外の部分に[[実体参照]]は書けない。)
118     訂正して、
119     [PRE[
120     <!SGML [VAR[その実装の SGML 宣言]]>
121     <!DOCTYPE [[pre-html]] SYSTEM "[VAR[その実装の DTD]]" [
122     <!ELEMENT pre-html o o (html)>
123     <!ENTITY real-document SYSTEM "[VAR[当該文書の URI]]">
124     ]>
125     &real-document;
126     ]PRE]
127    
128     [86] もっとも、 Web SGML ができたからもうこんな hack
129     を考える必要はないですし、文書型宣言もない HTML
130     文書実現値は往々にして SGML 的に不正なことが他にあったりするんですが。
131    
132     [[#comment]]
133    
134    
135     ** 仕様書の規定
136    
137     [82] HTML 4 仕様書は、次のように述べています。
138    
139     > HTML 2.0 仕様書は、多くの HTML 2.0
140     利用者エージェントは文書が文書型宣言で始まらないとき、
141     HTML 2.0 仕様書を参照していると仮定すると見ていました。
142     経験によればこれは愚かな仮定であり、現在の仕様書はこの動作を推奨していません。
143    
144     [[HTML 4]] [CITE[B.1 Notes on invalid documents]]
145     <IW:HTML4:"appendix/notes.html#notes-invalid-docs">
146    
147     [[#comment]]
148    
149    
150     * 仕様の拡張
151    
152     [91] HTML 4 は、仕様の拡張について、附属書 B (参考) で次のように述べています。
153    
154     > 相互運用性の理由から、著者は SGML の仕組みを使って HTML
155     を[Q[拡張]] (例: DTD の拡張, 実体定義の追加, その他) してはなりません。
156    
157     [[HTML 4]] [CITE[B.1 Notes on invalid documents]]
158     <IW:HTML4:"appendix/notes.html#notes-invalid-docs">
159    
160     [92] HTML 4 は [[SGML応用]]です。 [[ISO 8879]] は SGML 応用が
161     SGML の仕組みの一部の使用を禁止することを認めていません。
162     ですから、この規定は (附属書 B (参考) の中にありますし)
163     強制力を持たないものであると解釈されています。
164    
165     [[#comment]]
166    
167    
168     * メモ
169    
170     [90]
171     [CODE(SGML)[<!DOCTYPE HTML PUBLIC "-//W3C//DTD Netscape 4.0//EN">]]
172    
173     <http://www.hss.osaka-u.ac.jp/new/index.shtml>
174     ([CODE(MIME)[[[text/plain]]]](藁)) で使われてます。。。
175     ([[名無しさん]] [WEAK[2004-11-09 12:33:45 +00:00]])
176    
177     [93]
178     上記ページの管理者です。検索でこちらに来ました。確かに、operaで見るとテキストで表示されるのでおかしいなと思っていたので確認したところ、text/htmlでした。頭のところで定義しているとおり、このページはあまり更新していないのですが、書き換えられたのかもしれません。とにかくご指摘ありがとうございました。
179     ([[名無しさん]] [WEAK[2005-01-20 09:30:27 +00:00]])
180    
181 wakaba 1.11 [99]
182     >>90-93 よくわからないですけど依然として
183     [Q@en[DTD Netscape 4.0]] なのがなんとも。
184     ([[名無しさん]] [WEAK[2007-07-04 12:17:03 +00:00]])
185    
186 wakaba 1.8 [[#comment]]
187    
188 wakaba 1.7
189 wakaba 1.8 * メモ
190    
191     [94]
192 wakaba 1.9 [CITE@en[So, You Want An HTML Declaration, Huh?]]
193     ([[Joe Burns]] 著、2005年7月現在)
194     <http://www.htmlgoodies.com/tutorials/getting_started/article.php/3479361#intelliTxt>
195     (同じシリーズの内容から90年代後半に書かれたものと推測)
196    
197     かなり楽しいことが書かれています。
198     - [Q@en[It's called an "HTML Declaration."]<http://www.htmlgoodies.com/tutorials/getting_started/article.php/3479361#intelliTxt>]
199     ([Q[これは [DFN[HTML 宣言]]といいます。]]):
200     そう呼んでるのはお前らだけだ。
201     - [Q@en['''!DOCTYPE HTML PUBLIC''' proclaims this is an HTML document type that can be read by public browsers.]<http://www.htmlgoodies.com/tutorials/getting_started/article.php/3479361#intelliTxt>]:
202     ([Q[これは public なブラウザが読むことの出来る HTML 文書型だと言っています。]]):
203     何の話だ?
204     - [Q@en['''//DTD HTML 3.2''' stands for '''D'''ocument '''T'''ype '''D'''escription '''H'''yperText '''M'''arkUp '''L'''anguage (version) 3.2.]<http://www.htmlgoodies.com/tutorials/getting_started/article.php/3479361#intelliTxt>]
205     ([Q[文書型記述ハイパーテキスト・マーク付け言語 3.2 (版) を表します。]]):
206     [Q[文書型記述]]って何よ?
207     - [Q@en['''//EN''' means the document will be written in the English language.]<http://www.htmlgoodies.com/tutorials/getting_started/article.php/3479361#intelliTxt>]
208     ([Q[''文書が''英語で書かれることを意味します。]]):
209     よくある間違い。
210    
211     著者は [[HTML]] について詳しく知りたければ [[W3C]]
212     の [[Webサイト]]を頭が一杯になるまで読めと勧めていますが、
213     著者自身は読む前から頭が一杯で何も読まなかったのでしょうかね(藁
214 wakaba 1.7
215 wakaba 1.8 ([[名無しさん]])
216 wakaba 1.9
217     [95]
218     [[HTML宣言]]については別項も参照。
219     ([[名無しさん]] [sage])
220 wakaba 1.7
221 wakaba 1.10 [96]
222     [CITE[HTML5 IRC logs: w3c / #html-wg / 20070423]] ([CODE[2007-06-30 15:38:51 +09:00]] 版) <http://krijnhoetmer.nl/irc-logs/html-wg/20070423#l-94>
223    
224     > [03:12] <Hixie> and about 50% had doctypes of any kind
225    
226     ([[名無しさん]])
227    
228     [97]
229     [CITE@en[The “ja1200” Japanese Web Page Statistics ― June 2007]] ([CODE[2007-06-30 15:34:43 +09:00]] 版) <http://suika.fam.cx/www/ja1200/doc/ja1200-200706#doctypes>
230    
231     > More than a quarter of the Web pages don't use the [CODE(HTML)@en[[[DOCTYPE]]]] declaration at the top of the document.
232    
233     ([[名無しさん]])
234    
235     [98]
236 wakaba 1.11 >>96-97
237    
238     [CODE(HTMLa)@en[[[xmlns]]]] も [CODE(HTML)@en[[[DOCTYPE]]]] も、
239     [[ja1200]] の方が [[Hixie]] よりずっと多くなっています。
240 wakaba 1.10 [[Google]] は全時代、 [[ja1200]] はここ2,3年が中心だからでしょうか。
241     ([[名無しさん]])
242 wakaba 1.11
243     [100]
244 wakaba 1.12 [CITE[HTML5 IRC logs: freenode / #whatwg / 20070704]] ([CODE[2007-07-04 21:13:36 +09:00]] 版) <http://krijnhoetmer.nl/irc-logs/whatwg/20070704#l-230>
245     ([[名無しさん]] [WEAK[2007-07-04 12:18:26 +00:00]])

admin@suikawiki.org
ViewVC Help
Powered by ViewVC 1.1.24