XML ist ein unabhängiges Datenformat, das sich in rasend schneller Zeit zum Standard einer übergreifenden Datenübertragung zwischen verschiedenen Datenbanken, Webbrowsern und Office-Anwendungen entwickelt. XML wurde vom World Wide Web Consortium (w3c) entwickelt und lizenzfrei zur Verfügung gestellt. Bekannte Softwareprodukte, die mit XML arbeiten, sind u.a.: Microsoft SQL Server, mySAP, Oracle und das neue Windows Vista samt Office 12.
Die Dokumenttyp-Definition (DTD) ist die Formulierung eines eigenen inhaltsbezogenen Regelwerks für XML-Dokumente. Mit DTD kann der XML-Experte festlegen, ob eine Anschrift wirklich „Anschrift“ oder aber „Adresse“ heißt, ob zuerst Vorname oder Nachname erscheint, ob ein Kunde ein oder mehrere Konten hat. Gerade wenn mehrere Web-Anwendungen oder Datenbanken gemeinsam mit XML-Dokumenten umgehen müssen, ist eine klare und vorher (!) festgelegte Benennung und Strukturierung der Dokumente unerlässlich. Schon bei Analyse und Entwurf sind diese Kenntnisse wertvoll. Manch eine zwar regelkonforme, aber ungeschickte Formulierung wird gar nicht erst aufkommen. Das w3c hält dieses Thema für so wichtig, dass es die DTD im selben Dokument wie XML selber formuliert hat!
Dieser Text ist eine leicht verständliche Schnelleinführung in DTD. Kurz und bündig wird alles Wissenswerte über die Dokumenttyp-Definition erklärt und eine praxisnahe Einführung in den fortgeschrittenen Entwurf von XML-Dokumenten geboten. Wie schon im Text über Wohlgeformtes XML wird das Verständnis durch viele konkrete Beispiele erleichtert. Der Text soll dem Leser besonders in zweierlei Hinsicht einen Mehrwert bieten: Als praxisbezogenes und leichtverständliches Lehrmaterial soll er den Leser in die Lage versetzen, schnell mit dem gelernten arbeiten zu können. Aus diesem Grund soll er auch „Übersetzer“ zwischen der sehr theoretischen und formalistischen Sprache der offiziellen Regelwerke des w3c und der täglichen Sprache des Praktikers sein. Insbesondere beim Verständnis des zumindest umständlich formulierten Konzepts des gemischten Element-Inhalts sowie zum Einsatz externer Parameter-Entitäten dürfte er zu deutlich mehr Klarheit beitragen. Zweitens war es dem Verfasser als Praktiker wichtig, nicht nur Syntaxregeln zu vermitteln, sondern von Anfang an Stilfragen und Modellierung zu erörtern. Denn nicht alles, was möglich ist, ist auch sinnvoll. Eine systematisch qualitätsvolle Formulierung verbreitert und erleichtert die Einsatzmöglichkeiten von XML-Dokumenten.
Inhalt
1 Einleitung
1.1 Zu diesem Text
1.2 Was ist die Dokumenttyp-Definition?
2 Arbeitsvorbereitung
2.1 Software
2.2 Dokumente
3 Grundlagen von DTD
3.1 Allgemeines zur Syntax
3.2 Die Dokumenttyp-Deklaration
3.3 Prolog
4 Elementtyp-Deklarationen
4.1 Element-Inhalt
4.1.1 Inhaltsmodell: Leere Elemente
4.1.2 Inhaltsmodell: Kind-Elemente
4.1.3 Häufigkeit von Kind-Elementen
4.1.4 Inhaltsmodell: „Gemischter“ Inhalt
4.1.4.1 Reiner Textinhalt
4.1.4.2 Echt gemischter Inhalt aus Text und Kind-Elementen
4.1.5 Inhaltsmodell: Beliebiger Inhalt (ANY)
4.2 Weiterführende Aspekte zu Element-Inhalten
4.2.1 Präzisierung der Häufigkeit von Kind-Elementen
4.2.2 Kommentare und Verarbeitungsanweisungen in Element-Inhalten
5 Attributlisten-Deklarationen
5.1 Grundlagen
5.2 Attributvorgaben
5.3 Attributtypen
5.3.1 Attributtyp CDATA
5.3.2 Die Token - Gruppe: Namen und Name - Token
5.3.3 Attributtyp NMTOKEN
5.3.4 Attributtyp NMTOKENS
5.3.5 Attributtyp ID
5.3.6 Attributtyp IDREF
5.3.7 Attributtyp IDREFS
5.3.8 Aufzählungs-Attribute
6 Teilmengen der DTD
6.1 Interne Teilmenge der DTD
6.2 Externe Teilmenge der DTD
6.2.1 standalone - Dokumentdeklaration
6.2.2 Textdeklaration
6.3 Zusammenwirken von interner und externer Teilmenge der DTD
7 Entitäten
7.1 Grundlagen
7.2 Allgemeine Entitäten
7.2.1 Interne allgemeine Entitäten
7.2.2 Externe allgemeine Entitäten
7.3 Parameter-Entitäten
7.3.1 Zusammenarbeit der „drei“ Teilmengen
7.3.2 Entwurf und Anwendung
7.3.3 Interne Parameter-Entitäten
7.3.4 Externe Parameter-Entitäten
8 Bedingte Abschnitte
8.1 Idee und Konzept
8.2 Implementierung
9 Anhang
9.1 Eingebaute Entitäten
9.2 Namenserweiterungen für Dateien
9.3 Abbildungsverzeichnis
9.4 Quellenverzeichnis
9.4.1 Zitierte Quellen
9.4.2 Weitere Links
1 Einleitung
1.1 Zu diesem Text
XML ist ein unabhängiges Datenformat, das sich in rasend schneller Zeit zum Standard einer übergreifenden Datenübertragung entwickelt. Insbesondere im Datenaustausch zwischen Datenbanken und Webbrowsern oder unter verschiedenen Datenbanken ist XML mittlerweile zu einem wichtigen Werkzeug geworden. Die beiden wichtigsten Datenbanken im professionellen Bereich, Oracle® und der sich schnell verbreitende Microsoft SQL Server®, haben ihre XML-Tools.
Die Dokumenttyp-Definition (DTD) ist die Formulierung eines eigenen inhaltsbezogenen Regelwerks für XML-Dokumente. Mit DTD legt man fest, wie die XML-Dokumente eines bestimmten Projektes gegliedert sind, wie ihre Elemente und Attribute heißen usw. Mit DTD kann der XML-Experte festlegen, ob eine Anschrift nun wirklich „Anschrift“ oder aber „Adresse“ heißt, ob zuerst der Vorname oder zuerst der Nachname erscheint, ob es eine Postleitzahl oder eine PLZ gibt. Gerade wenn mehrere Web-Anwendungen oder Datenbanken gemeinsam mit XML-Dokumenten umgehen müssen, ist eine klare und vorher (!) festgelegte Benennung und Strukturierung der Dokumente unerläßlich.
Das World Wide Web Consortium (w3c), das die verbindliche XML-Spezifikation erlassen hat, hält dieses Thema für so wichtig, daß es die DTD im selben Dokument wie XML selber formuliert hat! Für den XML-Experten ist die Beschäftigung mit der DTD wichtig, weil er mit dieser relativ einfachen Grammatiksprache schnell eine Struktur für die Datendokumente erstellen kann. Schon bei Analyse und Entwurf sind diese Kenntnisse wertvoll. Außerdem vertieft das Fachwissen über DTD noch einmal das Grundlagenwissen über wohlgeformtes XML: Auch wenn letztendlich vielleicht auf die Programmierung in DTD verzichtet wird, kann man mit diesem Wissen XML sauberer und strukturierter formulieren. Manch eine zwar regelkonforme, aber ungeschickte Formulierung wird gar nicht erst aufkommen.
Dieser Text ist eine leichtverständliche Schnelleinführung in DTD für Leser, die den Kurstext „Wohlgeformtes XML - kurz und bündig“ gelesen oder aus anderer Quelle die Grundlagen zu XML erworben haben, für die aber die Formulierung eigener Grammatiken, insbesondere DTD noch neu ist. Kurz und bündig wird alles Wissenswerte über die Dokumenttyp- Definition erklärt und eine praxisnahe Einführung in den fortgeschrittenen Entwurf von XML-Dokumenten geboten.
Dieser Text soll dem Leser besonders in zweierlei Hinsicht einen Mehrwert bieten:
1) Als praxisbezogenes und leichtverständliches Lehrmaterial soll er den Leser in die Lage versetzen, schnell mit dem gelernten arbeiten zu können. Aus diesem Grund soll dieser Text auch „Übersetzer“ zwischen der sehr theoretischen und formalistischen Sprache der offiziellen Regelwerke des w3c, die mitunter zu merkwürdigen Zuständen und Varianten führt, und der täglichen Sprache des Praktikers sein. Insbesondere beim Verständnis des zumindest umständlich formulierten Konzepts des gemischten Element-Inhalts (Mixed content) sowie zum Einsatz externer Parameter-Entitäten dürfte er zu deutlich mehr Klarheit beitragen.
2) Dem Verfasser als Praktiker war es weiterhin wichtig, nicht nur Syntaxregeln zu vermitteln, sondern von Anfang an - wie auch schon im Grundlagentext über Wohlgeformtes XML - Stilfragen und Modellierung zu erörtern. Denn nicht alles, was möglich ist, ist auch sinnvoll. Eine systematisch qualitätsvolle Formulierung verbreitert und erleichtert die Einsatzmöglichkeiten von XML-Dokumenten.
Einige sehr gewagte Konzepte der DTD, die das w3c vor einigen Jahren als Formulierung anbot, die aber mittlerweile von der technischen Entwicklung überholt sind, wurden weggelassen, um sich auf das wesentliche zu konzentrieren.
In diesem Text werden gelegentlich in Fußnoten oder Bemerkungen Vergleiche zu relationalen Datenbanken gegenüber der XML-Modellierung gemacht sowie Hinweise zur Stylesheet-Sprache XSL(T) gegeben. Diese Anmerkungen sollen zusätzliche Hilfen für Leser mit entsprechenden Vorkenntnissen sein. Leser ohne Erfahrungen auf diesen Gebieten können über diese Stellen ohne Informationsverlust bezüglich XML hinweglesen.
Hier erwähnte Softwareprodukte u.a. Produkte sind Marken oder eingetragene Marken der jeweiligen Firmen
1.2 Was ist die Dokumenttyp-Definition?
Dokumenttyp-Definition oder kurz DTD ist eine Sprache, mit der inhaltsbezogene Regeln für XML-Dokumente formuliert werden können. Mit Hilfe geeigneter Software, sogenannter validierender Parser, können XML-Dokumente auf Konformität mit diesen selbstformulierten Regeln überprüft werden.
Abbildung in dieser Leseprobe nicht enthalten
Dokument 1: Einführungsdokument
Dokument 1 zeigt ein einfaches XML-Dokument mit DTD. Der untere Teil des Dokumentes ist das eigentliche XML, er enthält die qualifizierten und strukturierten Daten.
Der obere Teil ist die DTD, er legt die unten angewandte Struktur und Benennung fest. Die gesamte DTD ist Inhalt der mit dem Schlüsselwort DOCTYPE beginnenden Deklaration. Sie enthält die Deklarationen für drei Elementtypen:
Alle Elemente des Typs <Name> müssen ein Element <Vorname> und ein Element <Nachname> enthalten, und zwar in dieser Reihenfolge.
Alle Elemente der Typen <Vorname> und <Nachname> dürfen nur Text - ausgedrückt durch #PCDATA - enthalten.
Das XML-Dokument muß unabhängig von der DTD den grundsätzlichen Syntaxvorschriften folgen, dann ist es wohlgeformt. Wenn es wohlgeformt ist und darüber hinaus den inhaltlichen Formulierungsvorschriften der DTD folgt, nennt man es gültig (engl. „valid“).
Abbildung in dieser Leseprobe nicht enthalten
Dokument 2: Wohlgeformtes, ungültiges Dokument
Dokument 2 zeigt ein wohlgeformtes, aber ungültiges XML-Dokument. Es hält alle grundsätzlichen XML-Regeln ein und ist deshalb wohlgeformt. Aber es beachtet nicht die in der DTD vorgeschriebene Formulierung des Elementes <Vorname>, weil dieses keinen Text, sondern Kind-Elemente enthält, welche außerdem ihrerseits nicht deklariert sind. Deshalb ist das Dokument ungültig.
Ein nicht wohlgeformtes XML-Dokument ist per Definition nicht gültig.1
2 Arbeitsvorbereitung
2.1 Software
Es gibt mittlerweile eine Reihe sogenannter XML-Parser. Das sind Programme, die die Erstellung von XML-Dokumenten durch fortgeschrittene Editor-Werkzeuge unterstützen sowie die Wohlgeformtheit und ggf. auch Gültigkeit von Dokumenten prüfen und durch Fehlermeldungen bei deren Korrektur helfen. Auf Gültigkeit (engl. „validity“) prüfende Parser nennt man auch validierende Parser.
Ein guter Parser muß mindestens einen hochwertigen Editor und eine Browseransicht bieten. Er muß getrennt die Wohlgeformtheit und die Gültigkeit von XML sowie die korrekte Formulierung der DTD überprüfen können. Außerdem sollte er die Zusammenarbeit verschiedener XML-Sprachen wie XML-Schema und XSL unterstützen.
Da dieser Text aber eine einfache und schnelle Einführung darstellt und den Leser in die Lage versetzen soll, zügig mit XML und DTD arbeiten zu können, wollen wir uns auf einfache und meist auf jedem handelsüblichen Rechner vorhandene Software beschränken.
Zur Erstellung von XML-Dokumenten ist nahezu jeder beliebige Editor geeignet. Der Leser mag sich hier denjenigen aussuchen, der seinen Ansprüchen und Gewohnheiten am nächsten kommt.
Zur Darstellung der Dokumente und Prüfung ihrer syntaktisch korrekten Formulierung genügt ein Internetbrowser. Hier wird der Microsoft Internet Explorer® ab Version 5.x, besser ab Version 6.x empfohlen, der ein nicht-validierender Parser ist. Für diesen Browser sprechen mehrere Argumente:
1. Er hält sich ziemlich genau an die Vorgaben des w3c.
2. Er bietet eine sehr übersichtliche und komfortable Darstellung von XML- Dokumenten.
3. Verstöße gegen Wohlgeformtheitsregeln sowie fehlerhaft formulierte DTD werden mit meist brauchbaren Fehlermeldungen angezeigt.
4. Er verarbeitet auch externe Entitäten, womit er über die Mindestanforderungen des w3c an nicht-validierende Parser hinausgeht.
Es gibt aber auch Nachteile:
1. Er prüft als nicht-validierender Parser nicht die Gültigkeit von XML.
2. Er zeigt die DTD nicht vollständig an; hierzu muß man in den Quelltext im Editor schauen.
Abbildung in dieser Leseprobe nicht enthalten
Abb. 1: XML-Dokument mit DTD in der Browseransicht
Abb. 1 zeigt das Dokument aus der Einführung im Browserfenster. Die DTD wird oben in blauer Schrift angedeutet. Ihr vollständiger Inhalt ist aber nicht zu sehen.
Die DTD im XML-Dokument aus der Einführung wird jetzt so verändert, daß bei der Deklaration des Elementtyps <Vorname> die schließende spitze Klammer > am Ende der Zeile weggelassen ist, was ein Syntaxfehler ist (vgl. richtige Formulierung in Dokument 1)
Abbildung in dieser Leseprobe nicht enthalten
Dokument 3: fehlerhafte DTD
Der Browser meldet diesen Fehler:
Abbildung in dieser Leseprobe nicht enthalten
Abb. 2: Browseransicht - Fehlermeldung
2.2 Dokumente
Es wird empfohlen, ein Verzeichnis für Dokumente einzurichten. Darin sollte zunächst ein Blanko-Dokument als Vorlage für weitere XML-Dokumente mit DTD erstellt werden. XML- Dateien haben die Namenserweiterung .xml. Ein Blanko wie z.B. eine Datei 000VorlageMitDtd.xml (bei alphabetischer Sortierung immer vorne) kann so aussehen:
Abbildung in dieser Leseprobe nicht enthalten
Dokument 4: XML-Vorlagedatei
3 Grundlagen von DTD
3.1 Allgemeines zur Syntax
DTD unterscheidet genau wie reines XML zwischen Groß- und Kleinbuchstaben. Man nennt das auch „case sensitive“. Bei der Formulierung der DTD selber ist die vorgegebene Groß-/ Kleinschreibung einzuhalten; die Schlüsselworte werden in Großbuchstaben geschrieben.
Weiterhin müssen in DTD deklarierte Objekte wie Elemente oder Attribute im XMLDokument genau so geschrieben sein wie in ihrer Deklaration. Ein Element <wert> paßt nicht zu einem deklarierten Elementtyp <Wert> und wird durch ihn nicht gültig.
Eine DTD besteht aus mehreren Deklarationen. Deklarationen haben folgende allgemeine Syntax:
<!OBJEKT Name Definition> Jede Deklaration wird durch die Zeichenketten „<!“ und „>“ eingeschlossen. Ihr erster Bestandteil ist die Angabe des zu deklarierenden Objekts in Großbuchstaben, z.B. ELEMENT. Darauf folgt der Name des Objektes und dann die genaue Definition, deren Formulierung von der Art des Objektes abhängt.2
3.2 Die Dokumenttyp-Deklaration
Eine DTD ist ein inhaltsbezogenes Regelwerk für ein oder mehrere vollständige XMLDokumente. Aus diesem Grunde werden alle Deklarationen von der sogenannten Dokumenttyp-Deklaration3 umschlossen, deren „Name“ das Wurzel-Element der zugehörigen XML-Dokumente ist.
Am Beispiel des Einführungsdokuments: Die Dokumenttyp-Deklaration beginnt mit dem Schlüsselwort DOCTYPE. Dann folgt der Name des Wurzelelementes, hier „Name“. Die Definition besteht einfach aus einem Paar eckiger Klammern [], die alle weiteren Deklarationen enthalten.
DokumentTypDefinition_V2.1 Grundlagen von DTD
Abbildung in dieser Leseprobe nicht enthalten
Dokument 5: Dokumenttyp-Deklaration
Außer den Einzeldeklarationen darf die Dokumenttyp-Deklaration XML-wohlgeformte Kommentare (s. 3. Zeile in Dokument 5) und Verarbeitungsanweisungen (VAs) enthalten.
Zu der Formulierung der Dokumenttyp-Deklaration gibt es eine Variante für Deklarationen in externen Dateien. Diese fortgeschrittene Technik wird unten im Kapitel Teilmengen der DTD vorgestellt.4
3.3 Prolog
In der XML-Spezifikation und auch in der Literatur findet sich gelegentlich der Begriff „Prolog“. Damit ist schlicht und ergreifend alles das gemeint, was in einem XML-Dokument vor dem Wurzel-Element steht: Das können die XML-Deklaration und die DokumenttypDeklaration sowie zwischen ihnen und nach ihnen stehende Kommentare und Verarbeitungsanweisungen (VAs) sein.
4 Elementtyp-Deklarationen
Mit Elementtyp-Deklarationen werden XML-Elemente deklariert. Unter Elementtyp versteht man das Muster für alle Elemente, die in den betroffenen XML-Dokumenten denselben Namen haben.
Die Deklaration
Abbildung in dieser Leseprobe nicht enthalten
deklariert den Elementtyp <Name>. Alle Elemente mit dem Bezeichner <Name> müssen den Vorgaben dieser Deklaration entsprechen, um gültig zu sein.
Bei Elementtyp-Deklarationen werden die Elementtypen mit eindeutigen Namen angemeldet und ihre zulässigen Inhalte vorgegeben. Sie beginnen mit dem Schlüsselwort ELEMENT, dann folgt der eindeutige Name des Elementtyps und schließlich die Formulierung des Inhalts, die im folgenden erläutert wird.
Falls eine DTD mehrere Deklarationen eines gleichnamigen Elementtyps enthält wie im folgenden Codefragment, dann ist das ein Fehler, der vom Parser beanstandet werden muß:5
Abbildung in dieser Leseprobe nicht enthalten
4.1 Element-Inhalt
Die Elementtyp-Deklarationen geben also die zulässigen Formulierungen des Inhalts ihrer zugehörigen Elemente an. Über mögliche Attribute ist damit noch nichts ausgesagt: Diese werden in Attributlisten-Deklarationen deklariert (vgl. Kapitel Attributlisten-Deklarationen).
Die XML-Spezifikation unterscheidet vier Inhaltsmodelle für Elemente, nämlich leere Elemente, Kind-Elemente, gemischter Inhalt (i.d.R. mit Text) und beliebiger Inhalt.6
4.1.1 Inhaltsmodell: Leere Elemente
Mit diesem Inhaltsmodell werden Elementtypen deklariert, deren zugehörige Elemente allesamt leer sein müssen.
Abbildung in dieser Leseprobe nicht enthalten
Aufgrund dieser Deklaration müssen alle Elemente vom Typ <Bild> in den zugehörigen XML-Dokumenten leer sein. Dieses Inhaltsmodell wird mit dem Schlüsselwort EMPTY (= leer) hinter dem Namen des Elementtyps angegeben.
Abbildung in dieser Leseprobe nicht enthalten
Dokument 6: Inhaltsmodell EMPTY
Dokument 6 zeigt dies im Zusammenhang: Im Datenteil des XML-Dokumentes sind zwei Elemente vom Typ <Bild> gegeben, die zu der Elementtyp-Deklaration gültig sind. Das Attribut Bilddatei beim zweiten Element <Bild> verstößt nicht gegen diese Deklaration, ist aber nicht gültig, weil es nicht deklariert worden ist.
Praxistip: Nur Elemente, deren Typ zum Inhaltsmodell EMPTY paßt, sollten als Leer-Tag geschrieben werden. Elemente anderer Inhaltsmodelle, die im Einzelfall leer bleiben, schreibt man besser als leeres Paar von Beginn-Tag und End-Tag.
Neben der besseren Dokumentation kann dies auch die Zusammenarbeit mit älteren SGMLProzessoren verbessern oder überhaupt erst ermöglichen.7
4.1.2 Inhaltsmodell: Kind-Elemente
Das wichtigste Inhaltsmodell ist die Anordnung von Kind-Elementen, also weiteren, unmittelbar in einem Element enthaltenen Elementen. Im englischen Original heißt dieses Inhaltsmodell children.
In der Elementtyp-Deklaration setzt man hinter den deklarierten Elementtyp in runden Klammern den Namen des Kind-Elementes oder der Kind-Elemente. Das folgende Dokument gibt ein Beispiel:
Abbildung in dieser Leseprobe nicht enthalten
Dokument 7: Inhaltsmodell Kind-Elemente, einfach
Die Elementtyp-Deklaration für <Personal> sieht vor, daß dieses Element - hier das WurzelElement - nur Elemente des Typs <Mitarbeiter> enthalten darf. Das Pluszeichen am Ende der Deklaration bedeutet, daß auch mehrere Kind-Elemente <Mitarbeiter> vorkommen dürfen; dazu mehr im Abschnitt Häufigkeit von Kind-Elementen.
Die Elementtyp-Deklaration für <Mitarbeiter> sieht vor, daß jedes Element dieses Typs genau ein Kind-Element vom Typ <Bild> haben muß. Elemente dieses Typs müssen leer sein. Die Attribute sind noch nicht deklariert.
Praxistips: Die Reihenfolge der Elementtyp-Deklarationen einer DTD spielt keine Rolle, weil XML-Prozessoren zuerst die komplette DTD lesen und auswerten, bevor sie die XML- Daten lesen und ggf. auf Gültigkeit prüfen. Trotzdem wird dringend empfohlen, eine bestimmte Reihenfolge einzuhalten: Man beginnt mit der Deklaration des Wurzel-Elements, dann seiner Kind-Elemente, dahinter jeweils deren Kind-Elemente usw. So ist die DTD für menschliche Leser schneller und leichter verständlich. Insbesondere eine Revision der hier formulierten Regeln oder die Einarbeitung neuer Mitarbeiter werden so erleichtert.
Diesem Ziel dienen auch die Einrückungen der Deklarationen. <Mitarbeiter> sind KindElemente von <Personal>, darum ist die Deklaration von <Mitarbeiter> gegenüber derjenigen von <Personal> eingerückt. Die Deklaration von <Bild>, Kind-Element von <Mitarbeiter>, ist wiederum eingerückt. So wird die hierarchische Struktur des XML-Dokumentes visuell wiedergegeben und das Lesen der DTD zusätzlich erleichtert.
Ein XML-Element kann natürlich auch eine Abfolge oder Sequenz mehrerer verschiedener Kind-Elemente enthalten. Dazu wird die Deklaration so formuliert, daß alle vorkommenden Kind-Elemente in der geforderten Reihenfolge genannt werden. Die aufgezählten KindElemente werden durch Kommata getrennt.8
Abbildung in dieser Leseprobe nicht enthalten
Dokument 8: Inhaltsmodell Kind-Elemente, Abfolge
Zu der hervorgehobenen Deklaration in Dokument 8 sind die gegebenen Elemente vom Typ <Adresse> gültig. Nicht gültig (aber wohlgeformt) sind folgende Beispiele:
Abbildung in dieser Leseprobe nicht enthalten
Dokument 8a: Ungültige Elemente
Das erste Element <Adresse> ist zur DTD aus Dokument 8 nicht gültig, weil das zwingend vorgeschriebene Kind-Element <Straße> fehlt. Das zweite Element <Adresse> ist nicht gültig, weil die geforderte Reihenfolge der Kind-Elemente (<Straße> vor <Stadt>) nicht eingehalten wurde.
Eine weitere Variante beim Inhaltsmodell Kind-Elemente ist das Vorhalten einer Auswahl von möglichen Kind-Elementen9. Als Beispiel wird das Adreßbuch von oben um eine Kategorie Kontakt erweitert, die entweder eine Telefonnummer oder eine Faxnummer enthalten kann.
Abbildung in dieser Leseprobe nicht enthalten
Dokument 9: Inhaltsmodell Kind-Elemente, Auswahl
In der Deklaration werden die zur Auswahl stehenden Kind-Elemente durch einen senkrechten Strich | („Pipe“) getrennt. Hier muß jedes Element <Kontakt> entweder ein KindElement <Telefon> oder ein Kind-Element <Fax> haben. Ungültig ist das Element <Kontakt> im folgenden Fragment, weil keine Auswahl (entweder oder) vorgenommen wurde:
Abbildung in dieser Leseprobe nicht enthalten
Dokument 9a: Ungültige Elemente
Bis hierhin wurde gezeigt, wie die DTD für XML-Elemente einzelne Kind-Elemente, Abfolgen mehrerer Kind-Elemente oder eine Auswahl aus mehreren möglichen KindElementen festlegen kann. Darüber hinaus sind aber auch Kombinationen aus Einzelelementen, Abfolgen und Auswahlen möglich10.
Abbildung in dieser Leseprobe nicht enthalten
Dokument 10: Kombination von Kind-Element-Mustern
Die hervorgehobene Deklaration in Dokument 10 verlangt, daß jede <Adresse> nach den obligatorischen Kind-Elementen <Name>, <Straße> und <Stadt> noch unmittelbar entweder ein Kind-Element <Telefon> oder <Fax> hat.
Der bislang verwandte Elementtyp <Kontakt> ist weggefallen.
Abfolgen und Auswahlen können beliebig kombiniert und ineinander verschachtelt werden. An oberster Stelle steht immer eine Abfolge oder Auswahl, deren Bestandteile Einzelelemente, weitere Abfolgen oder Auswahlen sein können. Enthaltene Abfolgen und Auswahlen können wiederum beliebige Kombinationen enthalten.
Praxistip: Für den Anfänger kann es nützlich sein, seine Entwürfe auch daraufhin zu prüfen, ob jede geöffnete Klammer auch wieder geschlossen wird und sich keine Klammerungen überlappen.
Copyright © Stefan Kayser 2004, 2005 Seite 18 von 62
[...]
1 Vgl. w3c: XML 1.1, Abschnitt 2.
2 Vgl. w3c: XML 1.1, Abschnitt 2.8, Def. [28].
3 Die Benennungen sind etwas verwirrend: Dokumenttyp-Definition bezeichnet die selbstdefinierte Grammatik und die „Sprache“, in der sie formuliert ist. Die Dokumenttyp-Deklaration ist die umgebende Deklaration. Die Abkürzung DTD gilt nur für den Begriff Dokumenttyp-Definition.
4 Vgl. w3c: XML 1.1, Abschnitt 2.8, Def. [22].
5 Vgl. w3c: XML 1.1, Abschnitt 3.2.
6 Vgl. ebd., Abschnitt 3.2, Def. [46].
7 Vgl. w3c: XML 1.1, Abschnitt 3.2.1.
8 Vgl. w3c: XML 1.1, Def. [50].
9 Vgl. w3c: XML 1.1, Def. [49].
10 Vgl. w3c: XML 1.1, Def. [48].
- Arbeit zitieren
- Stefan Kayser (Autor:in), 2005, XML Dokumenttyp-Definition kurz und bündig, München, GRIN Verlag, https://www.grin.com/document/36098
-
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen. -
Laden Sie Ihre eigenen Arbeiten hoch! Geld verdienen und iPhone X gewinnen.