Der Verfasser
Stefan Kayser ist selbständiger Dozent und Berater.
Seit über 15 Jahren hat er Erfahrung in der Vorbereitung und Durchführung von Schulungen. Zuletzt hatte er in einer Consulting als Dozent und Analyst in den Bereichen Webentwicklung, Programmierung, SAP u.v.m. gearbeitet. Ein Schwerpunkt seiner Arbeit ist seitdem XML. Kontakt: info@kayser-schulung.de
Copyright © Stefan Kayser 2004, 2005
DokumentTypDefinition V2.1 Inhalt
XML Dokumenttyp-Definition - kurz und bündig
Inhalt
1 Einleitung. 5
1.1 Zu diesem Text. 5
1.2 Was ist die Dokumenttyp-Definition? 6
2 Arbeitsvorbereitung 8
2.1 Software 8
2.2 Dokumente 10
3 Grundlagen von DTD 11
3.1 Allgemeines zur Syntax 11
3.2 Die Dokumenttyp-Deklaration. 11
3.3 Prolog 12
4 Elementtyp-Deklarationen. 13
4.1 Element-Inhalt. 13
4.1.1 Inhaltsmodell: Leere Elemente. 13
4.1.2 Inhaltsmodell: Kind-Elemente 14
4.1.3 Häufigkeit von Kind-Elementen 20
4.1.4 Inhaltsmodell: „Gemischter“ Inhalt. 24
4.1.4.1 Reiner Textinhalt 24
4.1.4.2 Echt gemischter Inhalt aus Text und Kind-Elementen 25
4.1.5 Inhaltsmodell: Beliebiger Inhalt (ANY) 25
4.2 Weiterführende Aspekte zu Element-Inhalten 26
4.2.1 Präzisierung der Häufigkeit von Kind-Elementen. 26
4.2.2 Kommentare und Verarbeitungsanweisungen in Element-Inhalten 29
5 Attributlisten-Deklarationen. 30
5.1 Grundlagen 30
5.2 Attributvorgaben 31
5.3 Attributtypen 34
5.3.1 Attributtyp CDATA 35
5.3.2 Die Token - Gruppe: Namen und Name - Token. 35
5.3.3 Attributtyp NMTOKEN 36
5.3.4 Attributtyp NMTOKENS. 36
5.3.5 Attributtyp ID. 37
5.3.6 Attributtyp IDREF 38
5.3.7 Attributtyp IDREFS 39
5.3.8 Aufzählungs-Attribute. 40
6 Teilmengen der DTD. 42
6.1 Interne Teilmenge der DTD 42
6.2 Externe Teilmenge der DTD 43
6.2.1 standalone - Dokumentdeklaration. 45
6.2.2 Textdeklaration 45
6.3 Zusammenwirken von interner und externer Teilmenge der DTD 46
7 Entitäten. 48
7.1 Grundlagen 48
7.2 Allgemeine Entitäten. 49
7.2.1 Interne allgemeine Entitäten. 49
7.2.2 Externe allgemeine Entitäten. 51
7.3 Parameter-Entitäten. 52
7.3.1 Zusammenarbeit der „drei“ Teilmengen 53
Copyright Stefan Kayser 2004, 2005 Seite 3 von 62
DokumentTypDefinition V2.1 Inhalt
7.3.2 Entwurf und Anwendung 54
7.3.3 Interne Parameter-Entitäten. 54
7.3.4 Externe Parameter-Entitäten 56
8 Bedingte Abschnitte 57
8.1 Idee und Konzept 57
8.2 Implementierung 58
9 Anhang. 61
9.1 Eingebaute Entitäten 61
9.2 Namenserweiterungen für Dateien. 61
9.3 Abbildungsverzeichnis 62
9.4 Quellenverzeichnis 62
9.4.1 Zitierte Quellen 62
9.4.2 Weitere Links 62
Copyright Stefan Kayser 2004, 2005 Seite 4 von 62
DokumentTypDefinition_V2.1 Einleitung
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.
Copyright © Stefan Kayser 2004, 2005 Seite 5 von 62
DokumentTypDefinition_V2.1 Einleitung
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.
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
Alle Elemente der Typen
Copyright © Stefan Kayser 2004, 2005 Seite 6 von 62
DokumentTypDefinition_V2.1 Einleitung
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“).
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
Ein nicht wohlgeformtes XML-Dokument ist per Definition nicht gültig. 1
1 Vgl. w3c: XML 1.1, Abschnitt 2.
Copyright © Stefan Kayser 2004, 2005 Seite 7 von 62
DokumentTypDefinition_V2.1 Arbeitsvorbereitung
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.
Copyright © Stefan Kayser 2004, 2005 Seite 8 von 62
DokumentTypDefinition_V2.1 Arbeitsvorbereitung
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
Copyright © Stefan Kayser 2004, 2005 Seite 9 von 62
DokumentTypDefinition_V2.1 Arbeitsvorbereitung
Der Browser meldet diesen Fehler:
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:
Copyright © Stefan Kayser 2004, 2005 Seite 10 von 62
DokumentTypDefinition_V2.1 Grundlagen von DTD
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 XML-Dokument genau so geschrieben sein wie in ihrer Deklaration. Ein Element
Eine DTD besteht aus mehreren Deklarationen. Deklarationen haben folgende allgemeine Syntax:
Jede Deklaration wird durch die Zeichenketten „“ 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.
3.2 Die Dokumenttyp-Deklaration 2
Eine DTD ist ein inhaltsbezogenes Regelwerk für ein oder mehrere vollständige XML-Dokumente. Aus diesem Grunde werden alle Deklarationen von der sogenannten Dokumenttyp-Deklaration 3 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.
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.
Copyright © Stefan Kayser 2004, 2005 Seite 11 von 62
DokumentTypDefinition_V2.1 Grundlagen von DTD
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.
3.3 Prolog 4
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 Dokumenttyp-Deklaration sowie zwischen ihnen und nach ihnen stehende Kommentare und Verarbeitungsanweisungen (VAs) sein.
4 Vgl. w3c: XML 1.1, Abschnitt 2.8, Def. [22].
Copyright © Stefan Kayser 2004, 2005 Seite 12 von 62
DokumentTypDefinition_V2.1 Elementtyp-Deklarationen
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
deklariert den Elementtyp
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
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.
Aufgrund dieser Deklaration müssen alle Elemente vom Typ
5 Vgl. w3c: XML 1.1, Abschnitt 3.2.
6 Vgl. ebd., Abschnitt 3.2, Def. [46].
Copyright © Stefan Kayser 2004, 2005 Seite 13 von 62
Arbeit zitieren:
Stefan Kayser, 2005, XML Dokumenttyp-Definition kurz und bündig, München, GRIN Verlag GmbH
Dieser Text kann über folgende URL aufgerufen und zitiert werden:
Einbetten
DOI
UDDI - Universal Description Discovery and Integration: Grundlagen und...
Informatik - Internet, neue Technologien
Seminararbeit, 29 Seiten
Enterprise Service Bus (ESB) als Grundlage SOA basierender Geschäftspr...
Informatik - Wirtschaftsinformatik
Seminararbeit, 17 Seiten
Formatvorlage (Microsoft Word) für eine Diplomarbeit, Masterarbeit, Ha...
Für MS Word 2003 - Update 2010
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Formatvorlage (OpenOffice) für eine Diplomarbeit, Masterarbeit, Hausar...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 35 Seiten
Formatvorlage / Vorlage zur Erstellung einer Diplomarbeit, Bachelorarb...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 15 Seiten
Formatvorlage / Vorlage für eine Diplomarbeit / Hausarbeit
Für MS Word 2007 - dotx
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 25 Seiten
Anleitung zum Erstellen schriftlicher Arbeiten: Der Aufbau einer wisse...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 20 Seiten
Erstellen einer schriftlichen Hausarbeit
Vorlagen, Muster, Formulare, Infobroschüren
Hausarbeit, 14 Seiten
Grundtechniken wissenschaftlichen Arbeitens
Bibliografieren - Reden - Schr...
Vorlagen, Muster, Formulare, Infobroschüren
Skript, 46 Seiten
Ratgeber zur Erstellung wissenschaftlicher Arbeiten. Diplomarbeiten - ...
Vorlagen, Muster, Formulare, Infobroschüren
Ausarbeitung, 39 Seiten
Stefan Kayser's Text XML Dokumenttyp-Definition kurz und bündig ist nun auf dem Buchmarkt erhältlich
Stefan Kayser hat den Text XML Dokumenttyp-Definition kurz und bündig veröffentlicht
Stefan Kayser hat einen neuen Text hochgeladen
0 Kommentare