XML-Know How

Formale Regeln und Dokumenttyp-Definitionen (DTD)

XML ist, wie schon erwähnt, kein festgelegtes Kodierungsschema aus einem vorgegebenen Set von Bestandteilen, sondern eine Sprache zur präzisen Beschreibung von Dokumentstrukturen mittels frei definierbarer Elemente. Daher umfasst der XML-Standard zwei getrennte Bestandteile. Zum einen sind das formale Regeln für die Kodierung der Dokumente, zum anderen Regeln zur Definition des Dokumenttyps.

Die formalen Regeln bestimmen die Form der Auszeichnung im XML-Dokument. Zum Beispiel müssen die Auszeichnungen in XML-Dokumenten immer in spitzen Klammern stehen, um vom eigentlichen Text unterschieden werden zu können. Elementnamen müssen mit Buchstaben oder »_« beginnen und dürfen nur Buchstaben, Zahlen, »-«, ».«, und »_« enthalten.

Solche Regeln gibt es viele. Sie sagen aber nichts darüber aus, welche Elemente eines Textes ausgezeichnet werden sollen und welche Namen diese Elemente in XML erhalten sollen. Das liegt ganz im Ermessen des Anwenders. Der ist in aller Regel daran interessiert, seine Daten mit anderen auszutauschen oder weiterverarbeiten zu lassen. Daher ist es notwendig, dass sich alle Beteiligten darauf einigen, für definierte Elemente des Dokumentes immer die gleiche Bezeichnung zu verwenden und auch bei der Anordnung der Elemente bestimmte Regeln einzuhalten.

Für ein verlagsinternes Adressverzeichnis in XML wäre es z. B. hilfreich, sich darauf zu verständigen, dass bei den Personennamen immer zuerst der Nachname kommt und dann die Vornamen. Außerdem sollten die Vornamen immer als »Vorname« und nicht anders, z. B. als »Taufname« oder »forename« bezeichnet werden. Der Nachname sollte immer nur »Nachname« heißen und nicht manchmal »Familienname«. Die Regeln können natürlich beliebige andere Bezeichnungen oder Reihenfolgen festlegen – nur müssen sie die Einheitlichkeit der Auszeichnung gewährleisten. Denn allein durch Einhaltung solcher Regeln kann der Austausch und die automatische Verarbeitung von Dokumenten reibungslos funktionieren.

Welche Elemente ausgezeichnet werden, wie sie bezeichnet werden sollen und ob es bestimmte Reihenfolgen geben muss oder nicht, hängt immer vom Dokumenttyp ab. Für ein Adressverzeichnis müssen andere Elemente und Regeln festgelegt werden als für Gedichte oder technische Dokumentationen. Für unseren Beispiel-Dokumenttyp Adressverzeichnis wäre etwa festzulegen, welche Elemente außer Nachnamen und Vornamen noch benötigt werden und in welcher Reihenfolge diese Bestandteile auftreten sollen.

Die Gesamtheit der Regeln für einen Dokumenttyp nennt man die Document Type Definition (DTD). Formal ist die DTD selbst auch eine Textdatei und kann als Vorspann innerhalb des XML-Dokuments oder als separate Datei gespeichert werden. XML stellt auch hier formale Regeln zur Verfügung, die es dem Nutzer möglich machen, für einen Dokumenttyp die erlaubten Elemente zu benennen, ihre Reihenfolge zu bestimmen und weitere Festlegungen zu treffen.

Je mehr Beteiligte Daten austauschen, desto mehr wird eine DTD zu einem eigenen Standard. Wenn sich viele Anwender darauf verständigen, Adressdaten per XML auszutauschen, werden sie eine Arbeitsgruppe bilden und eine gemeinsame DTD festlegen. Genau das ist in vielen Industriezweigen der Fall, wo über Firmengrenzen hinweg Geschäftsdaten ausgetauscht werden, die der Einheitlichkeit wegen nach Branchen-DTDs kodiert sind.

Einige Beispiele für XML-Branchenstandards sind im Kapitel XML – die standardisierte Datenfreiheit aufgeführt. Diese Standardisierungen von Dokumenttypen sind freiwillige Übereinkünfte der Beteiligten und nicht selbst Bestandteil des XML-Standards. Es ist jedem Anwender freigestellt, ob er für seine Dokumente eine verbreitete DTD verwendet oder ob er eine eigene festlegt. Für beides gibt es gute Argumente. Wenn eine verbreitete DTD auf die eigenen Dokumente angewendet wird, können die Daten leicht mit anderen Interessierten ausgetauscht werden. Oft sind die Dokumente und Anforderungen eines Publikationsprojektes aber so speziell, dass sie in der nötigen Präzision nur durch eine eigene DTD beschrieben werden können.

Ursprünglich gab es für die Dokumenttyp-Definition in XML nur einen Kodierungs-Standard, der selbst auch als Dokumenttyp-Definition (DTD) bezeichnet wird. »Dokumenttyp-Definition« meint also im Allgemeinen die Definition des Dokumenttyps – unabhängig davon, wie deren Regeln aufgezeichnet werden – und im Besonderen eine im Rahmen von XML festgelegte Syntax zur Aufzeichnung der Regeln. Da die DTD-Syntax nicht alle Anforderungen abdecken kann, kamen diverse Erweiterungen aus der Industrie (TREX, RELAX, Schematron). Seit 2001 existiert auch ein alternativer Standard des Internet-Konsortiums W3C zur Dokumenttyp-Definition, die XML Schema Definition).

Für die dokumentenorientierte Anwendung von XML, wie sie im Verlagskontext typisch ist, reicht der DTD-Standard meist vollkommen aus; er ist deshalb auch am weitesten verbreitet. In diesem Artikel werden wir uns daher auf die Beschreibung der DTD-Syntax beschränken. XSD und ein Vergleich von DTD und XSD sind Thema eines eigenen Beitrags.

Entspricht ein XML-Dokument (auch XML-Instanz genannt) den formalen Regeln, spricht man von einem wohlgeformten (wellformed) XML-Dokument. Gibt es für das Dokument darüber hinaus eine Dokumenttyp-Definition, und entspricht das Dokument auch den Regeln der DTD oder XSD, bezeichnet man es als valide (valid).

Die Programme, die XML-Dokumente auf Wohlgeformtheit und Validität überprüfen, nennt man Parser. Mit Hilfe eines Parsers lassen sich XML-Dokumente hinsichtlich ihrer strukturellen Korrektheit überprüfen (»parsen«).

Der Parser analysiert die DTD, also das Regelwerk, und kontrolliert, ob das vorliegende Dokument mit den aufgestellten Regeln übereinstimmt. Auf diese Weise lassen sich strukturelle Fehler in Dokumenten weitestgehend ausschließen. Ein solcher Parser liegt auch den marktüblichen XML-Editoren zugrunde, so dass beim Erfassen neuer Dokumente gar kein strukturell fehlerhafter Code erstellt werden kann: der Editor bietet dem Benutzer nur Elemente an, die an der aktuellen Cursorposition gemäß DTD zulässig sind.

Im Folgenden werden wir zunächst auf die formalen XML-Regeln zur Auszeichnung von Dokumenten eingehen und darauf hinweisen, welche Festlegungen in der Dokumenttyp-Definition getroffen werden können. Dabei werden auch die wichtigsten DTD-Regeln erklärt.