[103] HTML2〜HTML4 は SGML応用であると主張していました。また、 XHTML1、XHTML2、
XHTML5 は XML の応用です。そのため、文書型宣言によって DTD
を指定することができます。また、 HTML5 では歴史的理由から文書の先頭に
DOCTYPE
を指定することになっています。
[88] HTML文書は、その HTML の版を表すために文書型宣言を最初に入れなければなりません。 HTML 4 では3種類の DTD が定義されていますので、 そのうちのいずれかを参照する宣言が必要です。 <IW:HTML4:"struct/global.html#version-info"> 参照。
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd">
[89] なお、
このため、文書型宣言のシステム識別子の値は通常は 「最新版」を表す URI参照 (>>88 に示されているもの9 を使い、特定の版の HTML 4 DTD を特に指定したいときだけそれを使うこととできます。
[101] aaa (名無しさん 2007-12-13 11:11:38 +00:00)
[102] Shiit is happened!(c)Forrest Gump (Sector [gaz@pisem.net])
<!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>)<!DOCTYPE Mosaic-Communications-Bookmark-file-1>
MosaicNetscape の bookmark<!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> で使われている。<!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> で使われている。<!doctype html public "html2.0">
IBM の古い文書にある<!DOCTYPE HTML PUBLIC "ISO 15445:2000//DTD HTML//EN">
『ISO-HTML 利用者の手引き』中に出てきたが・・・ISO/IEC
になってるんだよなあ。<!DOCTYPE Pre-HTML PUBLIC "-//ISO-HTML User's Guide//DTD Preparation of ISO-HTML//EN">
『ISO-HTML 利用者の手引き』9.1.1。"-//Netscape//netscape extension//JA"
: Phrase/Typographic markup test <http://web.archive.org/web/20011110215859/www.dais.is.tohoku.ac.jp/~kabe/misc/fonts.html><!doctype html public "-//W3C//DTD HTML 5.0//EN">
, <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 5.0//EN">
, <!DOCTYPE HTML PUBLIC"-//W3C//DTD HTML 5.0 Frameset//EN" "http://www.w3.org/TR/REC-html140/frameset.dtd">
: <IW:Strictスレ:"1:423"><!DOCTYPE html SYSTEM "http://www.w3.org/Style/HTML40-plus-blink.dtd">
: Web Style Sheets <http://www.w3.org/Style/> で使われている。余程 blink 要素が使いたかったらしい。<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2Final//EN"
壊れてる気がするが。<!doctype html public "-//W3C//DTD HTML 1996-01//EN">
: Extensible Markup Language (XML) <http://www.w3.org/TR/WD-xml-961114> の文書型。-//M3C//DTD XHTML Makoto Sawatari 1.6//EN
, -//M3C//DTD XHTML Mishio Amano 12.6//EN
, -//M3C//DTD XHTML Misuzu Kamio 7.23//EN
: 単なる冗句。 Makoto Mishio Misuzu Cuties <http://m3c.misuzilla.org/>
[79] 現在では、 HTML 文書 (あるいは text/html
実体)
には最初に文書型宣言を記述するべきであると考えられています。
XHTML 文書の場合は、特定の DTD に適合することを主張する場合には文書型宣言を記述するべきです。
[80] >>79 はとりあえずおいておいて、文書型宣言のない HTML (not XHTML) 文書が正しいのか考えてみます。
[81] WebSGML では文書型宣言は必須ではありませんから、 これを採用している HTML 4 と XML では省略できます。 しかし HTML 4 では文書型宣言を必須と定義しています。 XML はここでの話の対象外です。
[83] では旧来の HTML 文書で文書型宣言のないものが不当かというと、 必ずしもそうではありません。確かに、単独の文書 (SGML文書実体) としては不当です。 しかし、実はそれは外部解析実体だったとしたらどうでしょう。
つまり、WWWブラウザは随時こんな感じの SGML 文書実体を自動生成していると考えるのです。
<!SGML その実装の SGML 宣言> <!DOCTYPE html SYSTEM "その実装の DTD" [ <!ENTITY real-document SYSTEM "当該文書の URI"> ]> &real-document;
これなら、当該文書が SGML文実体として適当である限りは、 妥当な SGML 文書じゃないですかね?
[85] >>83 の例は不正だった。 (文書要素の外の部分に実体参照は書けない。) 訂正して、
<!SGML その実装の SGML 宣言> <!DOCTYPE pre-html SYSTEM "その実装の DTD" [ <!ELEMENT pre-html o o (html)> <!ENTITY real-document SYSTEM "当該文書の URI"> ]> &real-document;
[86] もっとも、 Web SGML ができたからもうこんな hack を考える必要はないですし、文書型宣言もない HTML 文書実現値は往々にして SGML 的に不正なことが他にあったりするんですが。
[82] HTML 4 仕様書は、次のように述べています。
HTML 2.0 仕様書は、多くの HTML 2.0 利用者エージェントは文書が文書型宣言で始まらないとき、 HTML 2.0 仕様書を参照していると仮定すると見ていました。 経験によればこれは愚かな仮定であり、現在の仕様書はこの動作を推奨していません。
HTML 4 B.1 Notes on invalid documents <IW:HTML4:"appendix/notes.html#notes-invalid-docs">
[91] HTML 4 は、仕様の拡張について、附属書 B (参考) で次のように述べています。
相互運用性の理由から、著者は SGML の仕組みを使って HTML を
拡張(例: DTD の拡張, 実体定義の追加, その他) してはなりません。
HTML 4 B.1 Notes on invalid documents <IW:HTML4:"appendix/notes.html#notes-invalid-docs">
[92] HTML 4 は SGML応用です。 ISO 8879 は SGML 応用が SGML の仕組みの一部の使用を禁止することを認めていません。 ですから、この規定は (附属書 B (参考) の中にありますし) 強制力を持たないものであると解釈されています。
[90]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD Netscape 4.0//EN">
<http://www.hss.osaka-u.ac.jp/new/index.shtml>
(text/plain
(藁)) で使われてます。。。
(名無しさん 2004-11-09 12:33:45 +00:00)
[93] 上記ページの管理者です。検索でこちらに来ました。確かに、operaで見るとテキストで表示されるのでおかしいなと思っていたので確認したところ、text/htmlでした。頭のところで定義しているとおり、このページはあまり更新していないのですが、書き換えられたのかもしれません。とにかくご指摘ありがとうございました。 (名無しさん 2005-01-20 09:30:27 +00:00)
[99]
>>90-93 よくわからないですけど依然として
DTD Netscape 4.0
なのがなんとも。
(名無しさん 2007-07-04 12:17:03 +00:00)
[94] So, You Want An HTML Declaration, Huh? (Joe Burns 著、2005年7月現在) <http://www.htmlgoodies.com/tutorials/getting_started/article.php/3479361#intelliTxt> (同じシリーズの内容から90年代後半に書かれたものと推測)
かなり楽しいことが書かれています。
It's called an "HTML Declaration."
(これは HTML 宣言といいます。): そう呼んでるのはお前らだけだ。
!DOCTYPE HTML PUBLIC proclaims this is an HTML document type that can be read by public browsers.
:
(これは public なブラウザが読むことの出来る HTML 文書型だと言っています。): 何の話だ?
//DTD HTML 3.2 stands for Document Type Description HyperText MarkUp Language (version) 3.2.
(文書型記述ハイパーテキスト・マーク付け言語 3.2 (版) を表します。):
文書型記述って何よ?
//EN means the document will be written in the English language.
(文書が英語で書かれることを意味します。): よくある間違い。
著者は HTML について詳しく知りたければ W3C の Webサイトを頭が一杯になるまで読めと勧めていますが、 著者自身は読む前から頭が一杯で何も読まなかったのでしょうかね(藁
(名無しさん)
[95] HTML宣言については別項も参照。 (名無しさん [sage])
[96]
HTML5 IRC logs: w3c / #html-wg / 20070423 (2007-06-30 15:38:51 +09:00
版) <http://krijnhoetmer.nl/irc-logs/html-wg/20070423#l-94>
[03:12] <Hixie> and about 50% had doctypes of any kind
[100]
HTML5 IRC logs: freenode / #whatwg / 20070704 (2007-07-04 21:13:36 +09:00
版) <http://krijnhoetmer.nl/irc-logs/whatwg/20070704#l-230>
(名無しさん 2007-07-04 12:18:26 +00:00)