* 文書型定義 (SGML) [17] 【[[SGML]]】 [[文書型]]の定義。 Document type definition。 [[DTD]]。 [16] > :3.24 [RUBYB[文書(型)定義][document (type) definition]], DTD: [[応用]]によって決定される[[規則]]であって、 [[SGML]] を特定の型の[[文書]]の[[マーク]]に適用するもの。 [[文書型定義]]は[[文書型宣言]]で表現された[[要素型]], [[要素]]の関係, [[属性]]の形式的な仕様と[[マーク]]で[[表現]]することができる[[参照]]を含む。 [[文書型定義]]は [[SGML]] が構文を定義している[[マーク]]の[[語彙]]を定義する。 出典: [[ISO/IEC 10744]]:1997 [CSECTION[3 Definitions]] [15] >[[共通識別子]]は、その[[要素]]がどの種類 ([Q[型]]) のものであるかを表している。 その特定の型のすべての[[文書]]に適用する[[マーク宣言]]の集合を、 文書型定義という。 [SRC[[[JIS X 4151]]‐1992 参考3 4.1]] 意味不明なのは [[JIS]] の翻訳が悪いと思われ。 > 何度も同じことを繰り返さないで済むように、[[文書型定義]]は、 普通、別個の[[実体]]として蓄えてある。それぞれの[[文書]]では、 その[[文書型]]を指定しその[[実体]]を[[参照]]できるようにした[[文書型定義]]を書くことで、 その中に取り込んで利用する。 [SRC[[[JIS X 4151]]‐1992 参考3 4.1]] [14] SGML では種々の[[マーク宣言]]を使って、[[文書型宣言]]によって文書型を定義します。 [7] 文書型定義と[[文書実現値]]は、 [[class]] と [[instance]] のような関係にあります。 - [1] 【[[SGML]]】 Document Type Definition。[[文書型定義]]。 - [2] [CODE(SGML)[[[DOCTYPE]]]] 宣言 ([[文書型宣言]]) により明示される。直接記述される[[内部部分集合]]と、[[識別子]]により参照される[[外部部分集合]]に大別できる。 - [3] DTD の明示は旧来の SGML では必須であったが、 [[WebSGML]] では省略 (暗示) することができる。 - [4] 本来の SGML よりも非常に機能を制限したものながら、 [[XML]] でも DTD を使用することが出来る。 (というか[[妥当]]であるためには DTD の明示が必須である。) - [5] しかしながら、 XML では妥当性検証が optional であるがために DTD は本来の実力をほとんど発揮できないばかりか、むしろ前時代の遺産として嫌われる傾向にある。 - [6] 嫌われる原因としては、 (1) XML が[[文書実現値]]本体の記述では捨てた記述の自由性が比較的 DTD には残されている (よって実装が比較的面倒である) こと、(2) 拡張性のある DTD にするためには超人的トリック(謎)が必要であること、(3) (2) に [[XML名前空間]]が加われば DTD との相性は最悪で、使い物にならなくなる場合さえあること、辺りに集約できよう。 [8] [CITE[Designing document type definition (DTD) in SGML/XML]] ([[名無しさん]]) [9] [CITE@en[DTDs Don’t Work on the Web]] ([[Henri Sivonen]] 著, [CODE[2007-01-19 00:24:34 +09:00]] 版) ([[名無しさん]] [WEAK[2007-01-24 12:40:59 +00:00]]) [10] [CITE@ja[DTD は役に立たない]] ([[わかば]] 著, [TIME[2007-05-25 09:21:54 +09:00]] 版) ([[名無しさん]] [WEAK[2007-06-03 14:33:00 +00:00]]) [12] [[SGML]] では[[文書型定義]]/[[DTD]] と似たものとして、[[連結処理定義]]/[[LPD]] を規定していますが、こちらは [[SGML]] の必須の機能ではなくあまり使われておらず、 [[XML]] にも含まれていません。 [11] [[ISO/IEC 10744]] は[[体系]]の定義のための[[体系的DTD]] を規定しています。 また、 [[DTD]] 風の[[マーク宣言]]の集合体として[[字句型定義]]も規定されています。 [13] [[ISO/IEC]] [[JTC1]]/[[SC34]] は[[名前空間・データ型対応DTD]] の標準化作業を行っていますが、作業はかなり[[ゆっくりしっていってね]]な感じのようです。 [18] [CITE@en[Ending DTD proliferation at the W3C]] ( ([[Michael'''['''tm''']''' Smith]] 著, [TIME[2014-01-14 04:22:05 +09:00]] 版))