SEUME Erfurt – Ihr Dienstleister für das digitale Publizieren
DienstleistungenDaten • DTD

DTD

Begriff

Die DTD (Kurzform für Document Type Definition) ist der „Bauplan“ bzw. das Regelwerk für ein XML- oder SGML-Dokument.

Die DTD beschreibt (stark vereinfacht) die mögliche und/oder erforderliche Menge und Anordnung von Elementen in einem Dokument.

Die DTD ist ein Pflichtbestandteil von XML, allerdings kann in XML die DTD mit dem Schalter standalone="yes" abgewählt werden.

In SGML ist die DTD ein Pflichtbestandteil.

Kompatibilität

Die Syntax und die Definitionsmöglichkeiten einer DTD unterscheiden sich zwischen XML und SGML.

XML-DTD und SGML-DTD sind zwar ähnlich, aber nicht miteinander kompatibel.

Syntax

Innerhalb der DTD werden die zu verwendenen Elemente, deren Eigenschaften (Attribute) und deren Inhaltsmodelle definiert.

So kann beispielsweise definiert werden, dass ein Hauptelement eines Dokumentes Buch heißen muss und dass ein Buch aus einem oder mehreren optionalen Vorwort-Elementen, einem oder mehreren Kapitel-Elementen, und einem optionalen Anhang bestehen kann.

XML: <!ELEMENT Buch (Vorwort*, Kapitel+, Anhang?)>

SGML: <!ELEMENT Buch - - (Vorwort*, Kapitel+, Anhang?)>

Erläuterung:

- - bedeutet in SGML, dass der Starttag <Buch> und der Endtag </Buch> nicht ausgelassen werden dürfen. In XML dürfen Starttags und Endtags nie ausgelassen werden, weshalb diese Option dort nicht mehr möglich ist.

, bedeutet Sequenz, also die Reihenfolge der Elemente. Also zuerst muss ein Vorwort erscheinen und dann erst ein Kapitel.

? bedeutet, dass das betreffende Element an dieser Position exakt einmal erlaubt ist oder nicht nötig ist.

+ bedeutet, dass das betreffende Element an dieser Position einmal oder mehrfach auftreten darf.

* bedeutet, dass das betreffende Element an dieser Position einmal oder mehrfach auftreten darf oder auch ausgelassen werden darf.

Gibt es keine Spezifikation ?, + oder *, dann muss das betreffenden Element exakt einmal gesetzt werden.

Elemente, die Textzeichen enthalten sollen werden beispielsweise wie folgt definiert.

XML: <!ELEMENT Text #PCDATA>

SGML: <!ELEMENT Text - - #PCDATA>

Ein Sonderfall ist ein Leerelement, also ein Element, welches keinen Inhalt haben kann.

XML: <!ELEMENT Bild EMPTY)>

SGML: <!ELEMENT Bild - o EMPTY>

o bedeutet in SGML, dass der Endtag ausgelassen werden kann (o steht omit, auslassen). In XML wird das Leerelement mit einer speziellen Zeichenfolge /> gekennzeichnet.

In den Daten sieht das dann so aus:

XML: <Bild/>

SGML: <Bild>

Siehe auch XML, SGML und SGML vs. XML.

DTD-Entwicklung

Wir entwickeln Ihre DTD passgenau zu Ihrem Projekt.

Gern adaptieren wir bestehende DTD-Entwicklungen zu einer neuen DTD. Natürlich unter Beachtung der Kompatibilität der DTD-Versionen wie auch der Kompatibilität der bestehenden Daten.

Gern portieren wir auch Daten und DTD-Bestandteile aus der DocBook-DTD oder aber zu der DocBook-DTD.