Björn Klippstein

DTD

Klippstein IT Service

Aus 4webmaster.de

Wechseln zu: Navigation, Suche
<!DOCTYPE … >

Die DTD Document Type Definition ist die formale Beschreibung einer XML-Sprachvariante bzw. eines XML-Datenformates. Sie definiert das Vokabular, die Grammatik und die Datentypen einer XML-Struktur, vor allem zum Zwecke der Validierung. Ein XML-Dokument verweist in seiner Doctype-Angabe auf seine DTD.

Validierung

Ähnlich wie Sie bei Datenbank-Tabellen Regeln für gültige Datensätze aufstellen können, oder wie Sie für Eingaben in ein Webformular Gültigkeitsregeln aufstellen, so können Sie auch Regeln für gültige XML-Daten formulieren.

Wenn Sie eine XML-Datei validieren möchten, dann muss überprüft werden,

  • ob alle verwendeten Elemente definiert sind,
  • ob sie korrekt ineinander verschachtelt sind,
  • ob ihre Attribute definiert sind, und
  • ob die Attribute erlaubte Werte enthalten.

Diese Informationen können als DTD Document Type Definition formuliert werden. Eine gültige XML-Datei verweist in ihrem Prolog auf die DTD und genügt den dort aufgestellten Regeln.

Die Validierung einer XML-Datei ist optional und nicht immer notwendig.

Eigene Entities definieren

Zusätzlich zur Validierung bietet die Verwendung einer DTD die Möglichkeit, eigene Entities zu definieren. Entities sind Platzhalter für vorgefertigte Inhalte. Z.B. erzeugt die Entity &quot; ein Anführungszeichen. Diese Entity ist immer vordefiniert, aber sie können auch beliebige Textbausteine, Grafiken oder andere XML-Inhalte als Entity definieren.

Standardwerte für Attribute definieren

In einer DTD können auch Standardwerte für Attribute festgelegt werden, die immer dann gesetzt werden, wenn nicht ein anderer Wert explizit angegeben wird.

DOCTYPE: Angabe der DTD

Auf die zu verwendende DTD verweist man mit der DOCTYPE-Angabe. Diese Angabe erfolgt typischerweise in der zweiten Zeile des XML-Dokumentes, direkt nach der XML-Deklaration. Je nachdem, ob es sich um die DTD einer offiziellen Spezifikation handelt oder um eine private DTD, verwenden Sie eine andere Syntax. Zum Verweis auf eine private DTD verwenden Sie
<!DOCTYPE  document-elementSYSTEM"URI" >
Diese Doctype-Angabe besteht aus drei Teilen:

  • document-element: der Name des Document-Elementes, z.B. html
  • SYSTEM: Klassifizierung der DTD als privat.
  • "URI": Adresse des DTD-Dokumentes, z.B. "../myxml.dtd"

Zum Verweis auf die DTD einer offiziellen Spezifikation verwenden Sie einen anderen Syntax:

<!DOCTYPE  document-elementPUBLIC"Registrierungsart // Eigentümer // Beschreibung // Sprache""URI" >

Die DTDs aller HTML-Varianten sind beispielsweise öffentlich. Im Artikel Doctype finden Sie die Doctype-Angaben aller (X)HTML-Varianten.

Andere Schemasprachen

Die DTD-Sprache hat zahlreiche Nachteile:

  • DTD ist nicht selbst in XML formuliert, sondern in einer proprietären Sprache
  • DTD kennt keine Namensräume
  • DTD kann nicht zwischen Zahl und Text unterscheiden

Daher werden DTDs wahrscheinlich demnächst vollständig von den (wesentlich komplexeren) siehe auch::XML-Schemata abgelöst. Sprachen wie DTD oder XML-Schema nennt man Schemasprachen. Es gibt weitere Schemasprachen, z.B. Document Structure Description, RELAX NG, Schematron und Examplotron.


Siehe auch

Weblinks