コンテンツへスキップ
uencoder

DTD

DTD(Document Type Definition)は XML 1.0 の構造定義機構である。XSD より簡素だが能力は限られ、特殊な(XML ではない)構文で記述される。

目的

XML に基本的な構造検証を提供し、許容される要素・属性・階層を定義する。

メカニズム

<!ELEMENT name (content)> は要素とその子を、<!ATTLIST> は属性を、<!ENTITY> は実体を宣言する。型システムはなく(文字列のみ)、名前空間もない。HTML5 以前の HTML は DTD を使っていた。

ユースケース

  • HTML 4.01 と XHTML 1.0 の DTD
  • レガシー XML 文書の検証
  • SVG 1.1 の DTD
  • 教育用のサンプル

例

  • 入力
    <!ELEMENT name (#PCDATA)>
    Output
    The name element contains text only

    Element declaration

よくあるエラー

A DTD cannot express modern constraints (types, namespaces)
Migrate to XSD or JSON Schema

関連用語

References