DTD
Begriff
Die DTD (Kurzform für Document Type Definition) ist der „Bauplan“ bzw. das Regelwerk für ein XML-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.
Die Dateiendung ist .dtd
.
XML Prolog
Innerhalb eines XML-Dokumentes ist es zulässig, innerhalb des Prologs Ergänzungen zum vorhandenen Regelwerk (DTD) vorzunehmen. In der Regeln wird das für die Referenzierung von Grafiken verwendet.
Es ist auch möglich, die DTD komplett pro Dokument innerhalb des XML-Dokumentes in den Prolog einzubetten.
Inhaltsmodell
Innerhalb der DTD werden die zu verwendenen Bestandteile, Entitäten und Elemente, deren Eigenschaften (Attribute) und die Inhaltsmodelle der Elemente mittels Element-Deklarationen sowie durch Attribut-List-Deklarationen definiert.
Element-Deklaration
Mit der Element-Deklaration (engl. element declaration) werden die Inhaltsmodelle der Elemente definiert.
Syntax <!ELEMENT ...>
Attribut-List-Deklarationen
Mit der Attribut-List-Deklaration (engl. attribut list declaration) werden die Attribute für die Elemente definiert.
Syntax <!ATTLIST ...>
Entity-Deklarationen
Mit der Entity-Deklaration (engl. entity declaration) werden Entitäten definiert.
Syntax <!ENTITY ...>
Beispiel
Im Beispiel definieren wir ein Hauptelement
eines Dokumentes, welches 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.
<!ELEMENT Buch (Vorwort*, Kapitel+, Anhang?)>
Erläuterung:
,
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.
<!ELEMENT Text #PCDATA>
Ein Sonderfall ist ein Leerelement, also ein Element, welches keinen Inhalt haben kann.
<!ELEMENT Bild EMPTY)>
In XML wird das Leerelement mit einer
speziellen Zeichenfolge />
gekennzeichnet.
In den Daten sieht das dann so aus:
<Bild/>
Unsere Dienstleistungen
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.