[7] > :DTD: DTD ([[文書型定義]]) は [[XML]] [[マーク宣言]]の[[集成]]であり、 [[DTD]] に適合する[[文書]]で使うことができる合法的な構造、 [[要素]]、[[属性]]を[[集成]]として定義するものです。 仕様書: - [[XHTML 1.0]] -- [CITE[2.2. General Terms]] - [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]])