Datenmodelle in XML: DTD und XML Schema

XML Datenmodell mit XML Schema und DTDIn diesem vergleichsweise kurzen Kapitel des XML Tutorials erfährt man ein bisschen mehr, was Datenmodelle sind, für was man sie braucht und vor allem welche Datenmodelle es bei XML gibt. Zur Sprache kommen dabei die beiden XML-Datenmodelle DTD und XML Schema, die kurz charakterisiert und vor allem ihre Unterschiede herausgearbeitet werden. Dieses Kapitel ist damit die theoretische Grundlage für die kommenden beiden Kapiteln, in denen DTD und XML Schema im Detail vorgestellt werden.

In dem vorherigen Kapitel über die XML Grundlagen habe wir festgestellt, dass ein XML-Dokument wohlgeformt sein muss und damit sichergestellt wird, dass das Dokument ein paar grundlegenden Regeln einhält. Dies ist aber häufig nicht ausreichend, da man genau die Struktur eines Dokuments vorschreiben möchte. Hier kommen nun die sogenannten Datenmodelle ins Spiel, die Strukturen einer Klasse von Dokumenten in Dokumententypen beschreiben. Mit einem Datenmodell wird also versucht Objekte aus der Realität auf XML abzubilden. Es geht also um Vorschriften, wie das XML Dokument aufgebaut sein muss. So kann man darüber definieren, welche Elemente ein XML-Dokument eines bestimmten Typs enthalten muss, wie diese innerhalb des Dokuments verwendet werden oder auch welche Eigenschaften diese Elemente haben müssen oder dürfen. Über das Datenmodell kann man dann ganz einfach nachprüfen, ob ein bestimmtes XML-Dokument diese Vorschriften einhält oder nicht. Es wird also die Gültigkeit eines XML-überprüft. Im vorherigen Kapitel haben wir beispielsweise festgestellt, dass eine Information in einem XML-Dokument sowohl in einem Element als auch in einem Attribut abgelegt werden könnte. Ein Datenmodell schreibt nun genau vor, in welcher Form das ist. Damit kann es auch zu keinen Inkonsistenzen kommen. Datenmodelle ermöglichen also unter anderem:

  • eine einfache Fehlererkennung und automatische Syntaxüberprüfung
  • vereinfachte automatische Interpretation der Inhalte von Anwendungsprogrammen
  • effiziente Verarbeitung von Dokumenten

Während zwingend verlangt wird, dass XML-Dokumente wohlgeformt sein Müssen, ist Gültigkeit optional. Damit sind Datenmodelle kein Muss, sondern viel mehr eine Möglichkeit. Sie machen deshalb nicht immer Sinn. Wird beispielsweise eine Datenstruktur nur ein einziges Mal verwendet, dann muss diese nicht unbedingt durch ein Datenmodell abgebildet werden. Viel mehr greift man auf ein Datenmodell dann zurück, wenn man regelmäßig bzw. öfter dieselben Daten verarbeitet. In diesem Fall kann man mit einem Datenmodell die Gültigkeit der XML-Dokumente einfach überprüfen und damit die Verarbeitung und Pflege deutlich vereinfachen.

Dieses Konzept einer „Schemasprache“ kennt man übrigens schon aus der Datenbankwelt, wo man es unter dem Stichwort „Datenbankschema“ wieder findet. In XML gibt es zwei große Datenmodelle bzw. Schemasprachen:

  1. DTD
  2. XML Schema

DTD steht dabei für Document Type Definition und ist im Vergleich zu XML Schema bei weitem nicht so ausdruckskräftig. Unter anderem deshalb ist DTD heutzutage kaum noch im Einsatz, da man beispielsweise mit XML Schema ein viel flexibleres und mächtigeres Datenmodell zu Verfügung hat. Nachfolgend werdend die beiden Modelle in einigen Punkten gegenübergestellt:

DTD
XML Schema
Syntax Eigene XML
Typsystem #PCDATA als einziger primitiver Datentyp für Elemente + einfach strukturierte Datentypen für Attribute (bspw. Tokens, Listen) Sehr viele primitive und davon abgeleitete Datentypen für Elemente und Attribute (z.B. string, integer …)
Kardinalitäten nur grob mit ?, + und * Exakt mit min und max
Objektorientierung Nein Ja, beispielsweise Erweiterung (Vererbung), Mehrfachverwendung …
Namespaces Nein Ja (URI-Verweise)

Nachfolgend sollen die beiden Datenmodelle DTD und XML Schema im Detail vorgestellt werden. Los geht es mit dem DTD Tutorial.

Schreibe einen Kommentar