 |
 | |  |  | | Beschreibung |  | Eines der mächtigsten Leistungsmerkmale von XML besteht darin, daß Sie sich damit Ihre eigene Auszeichnungssprache erstellen sowie die Elemente und Attribute definieren können, die am besten zu den Informationen passen, die Sie erfassen möchten, statt auf eine mehr schlecht als recht passende Allzweck-Sprache angewiesen zu sein. Das Verfahren, in XML eine Sprache formal zu definieren, wird als ”Dokumentenmodellierung” bezeichnet. Eine formale Modellierung ist Voraussetzung dafür, daß automatisch überprüft werden kann, ob ein gegebenes XML-Dokument nicht nur wohlgeformt ist, sondern darüber hinaus einer speziellen ”XML-Sprache” angehört, also zum Beispiel ein XHTML-Dokument ist.
Für die Dokumentenmodellierung stehen zwei Methoden zur Verfügung: Document Type Definition (DTD) und das XML-Schema. Wir betrachten zunächst DTDs und dann XML-Schema.
Das folgende XML-Dokument ist vom Dokumenttyp ”Buchhandlung”:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE Buchhandlung SYSTEM "Buchhandlung.dtd" >
<Buchhandlung>
<Buch id = "1" >
<Titel>Der Zauberberg</Titel>
<Autor>Thomas Mann</Autor>
</Buch>
<Buch id = "2" >
<Titel>Per Anhalter durch die Galaxis</Titel>
<Autor>Douglas Adams</Autor>
</Buch>
</Buchhandlung>
Die Dokumenttyp-Deklaration im Prolog sorgt dafür, daß der XML-Prozessor überprüfen kann, ob die vorgesehenen Einschränkungen für Elemente, Attribute und Content-Modelle eingehalten wurden. Dies geschieht hier mit Hilfe der Datei “Buchhandlung.dtd”, die die Dokumenttyp-Definition beinhaltet:
<!ELEMENT Buchhandlung (Buch)*>
<!ELEMENT Buch (Titel, Autor)>
<!ATTLIST Buch id CDATA #REQUIRED>
<!ELEMENT Titel (#PCDATA)*>
<!ELEMENT Autor (#PCDATA)*>
Für jedes Element findet sich eine Element-Deklaration, die den Element-Namen einführt und ein Content-Modell für dieses Element definiert. Die Content-Modelle von “Buchhandlung” und “Buch” werden mit Hilfe von Ausdrücken erklärt, die regulären Ausdrücken sehr ähnlich sind. Eine ”Buchhandlung” kann beliebig viele Bücher beinhalten und das Element “Buch” besteht aus Titel und Autor. Die Elemente “Titel” und “Autor” dürfen nur Zeichendaten enthalten.
Für die Definition von Attributen stehen Attributlisten-Deklarationen zur Verfügung. Im Beispiel hat nur das Element “Buch” Attribute. Die “Liste” besteht hier aus nur einem Eintrag, der festlegt, daß “id” ein obligatorisches Attribut ist und Zeichendaten enthält. Für die Deklaration von Attributen stehen auch andere Typen zur Verfügung, ihnen kann ein Standardwert zugewiesen werden, und sie können auch optional sein.
<?xml version="1.0"?>
<DOCTYPE doc SYSTEM "dtds/generic.dtd"
[
<!ENTITY Teil1 SYSTEM "T1.xml">
<!ENTITY Teil2 SYSTEM "T2.xml">
<!ENTITY Teil3 SYSTEM "T3.xml">
]>
<Langtext>
&Teil1;
&Teil2;
&Teil3;
</Langtext>
DTDs gingen XML zeitlich voraus und sind weit verbreitet. Sie sind eigentlich eine Hinterlassenschaft von SGML mit fast vollständig erhaltener Syntax.
Außer Element- und Attributlisten-Deklarationen gibt es noch Deklarationen für Entities und Notationen. Alle Deklarationen einer DTD können wie oben in einer gesonderten Datei abgelegt werden, und auf diese “externe DTD” wird dann in der Dokumenttyp-Deklaration verwiesen. Die Dokumenttyp-Deklaration kann aber auch eine “interne Deklarationen” beinhalten. Interne und externe DTDs können auch miteinander kombiniert werden.
|  |
 | |  |  | |  | |  | |  |  |  | | Zu dieser Seite wurden noch keine Kommentare oder Bewertungen abgegeben. |
|
|  | |  |  |   | Übergeordnet |  |  |  | |  |  |  |  |  | XML-Modellierung |  |  |  |  |  | Literaturhinweise |  |  |  | |  |  | |  |  | |  |  | |  |  |  |  |  | Löst die Probleme |  |  |  | |  |  |  |  |  | Weitere Themen |  |  |  | |  |  | |  |  | |  |  |  | Glossar |  |  |  | |  |  | |  |  | |  |  | |  |  |  |  |  |  |
|