DTDs


 ... [ Ausarbeitung: Schema Sprachen ] ... [ << Einleitung ] ... [ Bausteine vs. Muster >> ] ...  




Die Dokument Typ Definiton war die erste Schema Sprache für XML-Dokumente und wurde als Bestandteil der XML Spezifikation 1.0 vom W3C veröffentlicht.
Das folgende Beispiel zeigt eine DTD, die in der Lage ist, ein Buch mit einem Vorwort, einem Inhaltsverzeichnis und einer beliebigen Anzahl von Kapiteln darzustellen. Außerdem werden einige Attribute zu verschiedenen Elementen deklariert.

01) <!ELEMENT Online-Buch (Vorwort, Inhaltsverzeichnis, (Kapitel|Verweis)+)>
02)    <!ATTLIST Online-Buch Titel CDATA #REQUIRED
03)                             Verfasser CDATA #REQUIRED
04)                             Typ (Aufsatz|Nachschlagewerk|Spass) "Spass">
05)    <!ELEMENT Vorwort (#PCDATA)>
06)    <!ELEMENT Inhaltsverzeichnis (Kapitelueberschrift)+>
07)    <!ELEMENT Kapitelueberschrift (#PCDATA)>
08)    <!ATTLIST Kapitelueberschrift Kapitelverweis IDREF #REQUIRED>
09)    <!ELEMENT Kapitel (#PCDATA|Abschnitt|Verweis)*>
10)    <!ATTLIST Kapitel Nummer ID #IMPLIED>
11)    <!ELEMENT Abschnitt ANY>
12)    <!ELEMENT Verweis EMPTY>
13)    <!ATTLIST Verweis Ziel CDATA "">
     Hinweis: Die Ziffern auf der linken Seite der Beispiele dienen als Zeilennummern und werden zur besseren Erläuterung der Beispiele eingesetzt. Sie haben ansonsten keine inhaltliche Bedeutung für die Beispiele. In den erklärenden Texten wird die entsprechende wichtige Zeile durch die Angabe der Zeilennummer in Klammern, zum Beispiel (3) für die dritte Zeile, deutlich gemacht.

DTDs besitzen eine Reihe von Schwächen, die den Einsatz als Beschreibungssprache von XML erschweren.
  1. XML DTDs sind eine vereinfachte Version der SGML DTDs und waren hauptsächlich für die Auszeichnung von Text konzipiert. Aus diesem Grund war ein einziger Datentyp: String für die Beschreibung des Inhalts von Dokumenten vollkommen ausreichend. Andere Datentypen stehen innerhalb von XML DTDs nicht zur Verfügung, weshalb man bei DTDs von einem dokumentenorientierten, im Gegensatz zu einem datenorientierten, Modell spricht.
    Die durch die zunehmende Verbreitung von XML entstandenen neuen Einsatzgebiete forderten allerdings immer häufiger eine detailliertere Beschreibung der enthaltenen Daten, z.B. von Datums- oder Zahlenwerten, die durch Zeichenketten nur sehr schwierig und umständlich abgebildet werden konnten.
  2. Eine weitere gravierende Schwäche von DTDs besteht darin, dass DTDs in Erweiterter Backus-Naur-Form (EBNF) und nicht in XML-Syntax verfasst werden. Der Anwender muss eine zweite Sprache und Notation lernen und kann auch nicht dieselben Werkzeuge für die Verarbeitung von XML-Dokumenten und DTDs einsetzen.
  3. Durch ein fehlendes Namensraum-Konzept ist die Erweiterbarkeit und Wiederverwendung von DTDs extrem eingeschränkt.
  4. Es existiert auch keine Möglichkeit bestehende Inhaltsmodelle durch Vererbungstechniken, wie sie zum Beispiel im W3C Schema zur Verfügung stehen, an die eigenen Anforderungen anzupassen, was die Erweiterungsfähigkeit zusätzlich begrenzt.
  5. Die Formulierung von Integritäts- und Kardinalitätsbedingungen sind mit einer DTD ebenfalls nur sehr eingeschränkt abbildbar, komplexe Bedingungen können nicht definiert werden. W3C Schema und Relax NG bieten dem Anwender hier deutlich mehr Freiheiten und Modellierungsmöglichkeiten.

Neben diesen Schwächen besitzen DTDs natürlich auch Stärken, die an dieser Stelle kurz erwähnt werden sollen.
  1. Das Inhaltsmodell lässt sich mit einer DTD sehr kurz und kompakt beschreiben. Entsprechende W3C Schemata oder Relax NG Modelle sind in der Regel um den Faktor 3-5 länger.
  2. Durch die kompakte Beschreibungsmöglichkeit kann eine DTD sehr schnell geparst und verarbeitet werden, was sich vor allem bei längeren Dokumenten positiv im Verhältnis zu neueren Schema Sprachen auswirkt.
  3. Das Erlernen von DTDs ist durch den kleineren Sprachumfang, im Gegensatz zu einem W3C Schema, deutlich besser.
  4. Es existiert eine breite Unterstützung von DTDs durch Anwendungsprogramme, XML-Prozessoren und Editoren.
Die nächsten Kapitel erläutern jetzt, wie mit der W3C Schema Sprache bzw. Relax NG die aufgezeigten Schwächen von DTDs behoben wurden und welche unterschiedlichen Strategien und Ansätze die beiden Schema Sprachen dabei verwenden. Am Ende eines jeden Kapitels erfolgt eine abschließende kurze Bewertung der gewählten Konzepte.



 ... [ Ausarbeitung: Schema Sprachen ] ... [ << Einleitung ] ... [ Bausteine vs. Muster >> ] ... [ nach oben ] ...