DTD宣言

DTD 宣言 (SGML)

[2] DTDで使われるマーク宣言を特に DTD 宣言 (DTD declaration) といいます。

定義

[1]

Web SGML K.2.1.1 DTD 宣言 (DTD declaration)
文書型宣言部分集合の中に現れるマーク付け宣言

[3] 具体的には、

... があります。このうち、短縮参照使用宣言以外は XML でも使えます。

[5] マーク宣言には、この他にも DTD 宣言の外側文書型宣言や、 連結型宣言系の宣言、 SGML宣言短縮参照使用宣言文書実現値内での用法がありますが、 それらを除外したものに便宜上名前を与えたようです。

よくある (かもしれない) 誤解

[4] × DOCTYPE 宣言のことを DTD 宣言という ×

解説: 文書型宣言 (DOCTYPE) のことを俗に DTD 宣言とも言うようです。 ご丁寧に文書型定義宣言などとしている解説まであります。 この用法は Web SGML 以前からあるようですが、 正式な用語になった現在ではそれと異なる意味では使わない方が良いでしょう。

[6] × DTD 宣言はタグ要素の意味を決める ×

解説: DTD 宣言 (特に要素型宣言属性定義並び宣言) は要素の構造やタグに記述する属性の構造を記述できますが、 意味 (semantics) を記述することはできません

意味を記述するのは文書型を定義する仕様書です。 一般に意味を形式的に記述することは困難で、 自然言語で記述するのが普通です。

[7] × DTD では <! から始まる特別なタグを使う ×

解説: DTD 宣言はマーク宣言であり、タグではありません。

[8] 文字コードとDTD宣言 (2007-04-19 06:35:08 +09:00 版) <http://www.shoshinsha.com/hp/1hour/1hour_after/need.html>

HTMLのDTD宣言

もうひとつ重要なものがある。DTD宣言を入れておこう。

ちなみにこんな変なことも:

このページで使ったHTML4.01 Transitionalは文法・タグの使い方を完全には守っていません。もしくはHTML4.01 Strictや次世代言語XHTMLへ移行する途中ですという意味がある。

僕みたいに勉強中の人や、W3Cの取り決めたHTMLのルールどおりには作っていないページにつけるってことですね。

ついでにいえば:

その厳密なルールは勉強しなくていいんですか?

どっちだと言われれば勉強したほうがいい。だけど最初はホームページ作りを楽しみながらHTMLを覚えるぐらいで気楽にいこう。その中でHTMLについて興味が湧いてきたらHTML4.01 Strictを宣言できるように勉強してくれ。

せんせいも勉強中なんですね。

とっくの昔に挫折した。

こんなやつが偉そうに HTML を語るのが現実。 (名無しさん)

[9] DOCTYPEによる宣言 (2005-08-01 02:11:52 +09:00 版) <http://www.tohoho-web.com/lng/199904/99040071.htm>

HTMLがSGMLアプリケーションである以上、DTD宣言は必須です。 DTD宣言を解釈して表示を変更するブラウザが現存するかは不明ですが。

#RFCにはDTD宣言を省略した場合はHTML/2.0として解釈すべきと書いてあるらしいです(未確認)

1999年だからこんな認識でも仕方が無いのかもしれませんが。。。

(名無しさん)

[10] DOCTYPEによる宣言 (2005-08-01 02:11:52 +09:00 版) <http://www.tohoho-web.com/lng/199904/99040071.htm>

HTMLがSGMLアプリケーションである以上、DTD宣言は必須です。 DTD宣言を解釈して表示を変更するブラウザが現存するかは不明ですが。

#RFCにはDTD宣言を省略した場合はHTML/2.0として解釈すべきと書いてあるらしいです(未確認)

1999年だからこんな認識でも仕方が無いのかもしれませんが。。。

(名無しさん)

[11] DOCTYPEによる宣言 (2005-08-01 02:11:52 +09:00 版) <http://www.tohoho-web.com/lng/199904/99040071.htm>

HTMLがSGMLアプリケーションである以上、DTD宣言は必須です。 DTD宣言を解釈して表示を変更するブラウザが現存するかは不明ですが。

#RFCにはDTD宣言を省略した場合はHTML/2.0として解釈すべきと書いてあるらしいです(未確認)

1999年だからこんな認識でも仕方が無いのかもしれませんが。。。

(名無しさん)

[12] XHTMLの文書型宣言(DTD宣言) : webデザイナーのナナメガキ (2007-03-18 03:06:55 +09:00 版) <http://loconet.web2.jp/blog/archives/2006/05/xhtmldtd.html>

本文にはDTD宣言は一度も出てこない。題名だけ。 (名無しさん)

[13] Macromedia - Dreamweaver TechNotes : ページ内に記述されるDTD宣言によってコンテンツの表示がブラウザ上で異なる (2007-06-10 23:00:38 +09:00 版) <http://www.adobe.com/jp/support/dreamweaver/ts/documents/dw0458.html>

これも題名だけ。 (名無しさん)

[14] XHTML 1.1 DTD (2007-03-10 11:04:55 +09:00 版) <http://msugai.fc2web.com/web/XHTML11/dtd.html>

XHTML 1.1 DTD (2006-02-12 05:50:09 +09:00 版) <http://www.nextindex.net/web/XHTML11/dtd.html>

本文に何度も登場する。

[15] >>14 と同じサイト

[16] @IT:XMLテクニック集 - 外部サブセットを利用して、DTDをXML文書から分離する (2007-06-10 23:14:24 +09:00 版) <http://www.atmarkit.co.jp/fxml/tecs/013dtd/13.html>

XML の文脈だけどやっぱりおかしい。 (名無しさん)

[17] XHTML DTDの宣言 (2007-06-10 23:15:30 +09:00 版) <http://w-d-l.net/html/course/xhtml_dtd/>

XHTMLの場合のDTD宣言は、まず最初にXMLのどのバージョンを使用したのか記述します。その次に、どのDTDに準拠しているのかを定義します。

どうやら XML宣言DTD宣言の一部分らしい。。。 (名無しさん)

[18] HTML / XHTML入門〜HTML DTDの宣言 (2007-06-10 23:16:45 +09:00 版) <http://w-d-l.net/html/course/html_dtd/>

>>17 と同じサイトの HTML 版。

HTMLでは、作成した文書が、どのHTMLのバージョンとDTDに準拠しているのかをブラウザに知らせるために、最初の行にその命令文を記述することになっています。

HTMLの場合は、最初の行にSGMLの命令文を記述することで、その文書がどのDTDに準拠しているのかを定義します。

命令!? (名無しさん)

[19] [#CHURA-23] Teeda用HTMLにDTD宣言が存在しない場合に、ワーニングを出力する。 - The Seasar Foundation Issues (2007-06-10 23:18:27 +09:00 版) <https://www.seasar.org/issues/browse/CHURA-23>

Teeda用のHTMLに、DTD宣言が全く存在しない場合、ワーニングマークを出力する。 ワーニングマークをクリックすると、「Add DTD」がメニューとして出力され、それを選択すると、 「XML宣言及び、DOCTYPE宣言」もしくは、「DTD宣言」が挿入される。

後者の場合何が挿入されるの? それとも英語の or の直訳で >>17 と同じ意味?

(名無しさん)

[20] mozilla dtd test (MARUYAMA Tsukasa 著, 2001-05-25 22:28:17 +09:00 版) <http://www.ash.ne.jp/~mal/mozilla/mozdtd/> (名無しさん)

[21] XML宣言・DTD宣言の記述方法 (2007-06-10 23:19:37 +09:00 版) <http://www.boj.or.jp/type/form/tame/data/esengen.pdf>

それにしても根要素型名が様式何番の何とかいうやつ (もちろん日本語) とはwww (名無しさん)

[22] Weblog Entry - 11/24/2002: "DTD宣言? しねーよバーカ" (2005-03-23 04:21:44 +09:00 版) <http://monkey.workarea.jp/gm/archives/00000053.html>

言ってる内容はそう間違っていないのですが・・・。 (名無しさん)

[23] スキーマ言語とDTDXML[セマンティックWeb] -TECHSCORE- (4DD 著, 2007-06-10 23:24:15 +09:00 版) <http://www.techscore.com/tech/SemanticWeb/xml/2.html>

例えば、W3C が勧告する XHTML 1.1 の DTD 宣言は次のようになります。

(名無しさん)

[24] W3C勧告と正しいHTML書式(DTD)の実例 (2007-03-28 18:04:06 +09:00 版) <http://dokodemo.rankuappu.com/w3c/index.html>

DTD (Document Type Definition)

文書の構造を定義するもので文書型定義ともいう。文書の冒頭にDTDを宣言するとか段落は<p>で表すとかを定義しています。以下に使用を推奨されているDTDを紹介します。

いや、いくらなんでも文書型宣言を記述しろと DTD 内ではいわんでしょう。

横着をして<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">で済ませる事は出来ません。DTD宣言は必ず最後まで書き、1字1句間違わないように。

システム識別子を省略してはいけないらしい。

(名無しさん)

[25] 余白と画像、XML講座/メールマガジン第65号 今週のおさらい (2003-09-11 23:51:38 +09:00 版) <http://www.scollabo.com/banban/magazine/review_065.html#back2>

DTDで要素型宣言を記述する前に、文書中に DTD宣言を行わなければなりません。DTD宣言は、ルート要素(最上位要素)を指定して行います。

(名無しさん)

[26] 碧落 - content block (2007-05-06 19:12:44 +09:00 版) <http://sgry.sakura.ne.jp/articles/contentblock.html>

最初は正しく DOCTYPE 宣言と書いているのに、後の方はおかしい。 (名無しさん)

[27] XHTMLの基礎 (2001-09-27 17:14:55 +09:00 版) <http://freebooks.info.nara-k.ac.jp/archive/XHTML_Primer/xhtml-basic.html> (名無しさん)

[28] その他沢山大杉。 (名無しさん 2007-06-10 14:41:15 +00:00)

メモ