XML – Grundlagen und Anwendungen
Teil 2: Modellierung von Dokumenten mit der DTD
Prof. Dr. Michael Löwe, FHDW Hannover
XML Grundlagen und Anwendungen
2
InhaltMotivation
Modellierung von Elementen und Inhalt
Modellierung von Attributen
Modellierung von Referenzen
Validierung von Dokumenten
Zusammenfassung
XML Grundlagen und Anwendungen
3
MotivationXML allein ist und kann Alles und Nichts!
Jede Verarbeitung macht Annahmen über den InhaltAnnahmen stecken in der Verarbeitung
Verarbeitung realisiert O.-K.-Fall und Ausnahmen
Austausch der Dokumente setzt Austausch der Verarbeitung voraus
Unabhängige Beschreibung des Inhalts ist besserSeparierung von Fehlern und Ausnahmen
Konzentration der Verarbeitung auf das Wesentliche
Asynchrone Erstellung der Verarbeitungen (Sender und Empfänger)
Man benötigt Modelle für Klasse ähnlicher Dokumente (DTD)
XML Grundlagen und Anwendungen
4
MotivationDTD für XML wie
Datenbankschema für Datenbank
UML-Klassendiagramm für OO-Programm
Geschäftsprozessmodell für Geschäftsprozess
Algorithmus für Berechnung
Programm für Prozess
Petrinetz für „Event Structure“
Routenplan für konkrete Fahrt
Grammatik für Satz
XML Grundlagen und Anwendungen
5
Anforderungen an DTDWelche Elemente sind erlaubt.
Welche Elemente kommen in welchen anderen vor (Gliederung).
In welcher Reihenfolge kommen sie vor.
Welche Attribute gibt es.
Welchen Typ haben die Attribute
Sind die Attribute vorgeschrieben oder optional
Elementdefinit
ionElemen
tdefinition
AttributlistenAttributlisten
XML Grundlagen und Anwendungen
6
Elementdefinition<!ELEMENT name Inhaltsspezifikation>
Inhaltsspezifikation:EMPTY leeres Element
ANY beliebiger Inhalt
(#PCDATA) Text
(RA) Regulärer Ausdruck
(#PCDATA | E1 | … | En)* Gemischter Inhalt
XML Grundlagen und Anwendungen
7
Reguläre Ausdrücke in der DTD
• Jeder Elementname ist ein regulärer Ausdruck
• Wenn r, r1, r2,…, rn reguläre Ausdrücke sind, dann auch
– die Sequenz (r1, r2, …, rn)
– die Auswahl (r1 | r2 | … | rn )
– die möglicherweise leere Iteration r* (Kopfgesteuert)
– die nicht leere Iteration r+ (Fußgesteuert)
– der optionale Ausdruck r?
XML Grundlagen und Anwendungen
8
Eigenschaften Reg. Ausdrücke
(r, s), t = r, (s, t) ; (r | s) | t = r | (s | t)
r | s = s | r
(t, r | t, s) = t, (r | s)
r++ = r+ ; r** = r* ; r?? = r?
r+ = r, r* ; r* = (r+)? = (r?)+ ; (r*)? = (r?)* = r*
(r* | s*)* = (r | s)* ; (r+ | s+)* = (r | s)*
(r* | s*)+ = (r | s)* ; (r+ | s+)+ = (r | s)+
XML Grundlagen und Anwendungen
9
Eigenschaften der Inhaltsspezifikation
Kontextfreie Grammatik in erweiterter Backus/Naur-Form.
Es gibt nur eine Regel pro Element.
Inhalt und Reihenfolge nur für direkte Nachfahren.
Inhalt eines Elements kann endlicher Automat prüfen.
Korrektheit des Inhalts des gesamten XML-Dokuments:Prüfung durch Familie endlicher Automaten für die Elemente.
Gesamtaufwand der Prüfung linear in der Anzahl der Elemente.
Gesamtprüfung kann leicht parallelisiert werden.
XML ist einfach (auch in der Verarbeitung)!!!
XML Grundlagen und Anwendungen
10
Attributlisten<!ATTLIST elementName Attribute*>
Attribute name Type KindType
CDATA beliebiger TextNMTOKEN, NMTOKENS Text aus Buchstaben, Zahlen und _, -, ., :
(t1 | t2 | … | tn) Auswahl aus Liste von NMTOKENs
Kind#IMPLIED Optional#REQUIRED Zwingend erforderlich“defaultValue“ Optional, defaultValue wenn nicht vorhanden#FIXED “defaultValue“ Optional, wenn vorhanden = defaultValue
XML Grundlagen und Anwendungen
11
Übung 2Schreiben Sie eine DTD für Bücher, so dass:Bücher einen Titel, Autoren und Kapitel haben.
Autoren Name, Vorname und zur internen Kommunikation eine Email haben.
Kapitel einen Titel, ggf. ersten Paragraph und mindestens 2 Abschnitte haben.
Abschnitte einen Titel haben und dann bestehen ausentweder genau einem Paragraph oder
ggf. einem ersten Paragraph und mindestens 2 Abschnitten.
Paragraphen aus Texten und Fußnoten und Endnoten bestehen.
Titel, Texte, Fußnoten und Endnoten nicht weiter strukturiert sind.
Begründen Sie stets Ihre Entwurfsentscheidungen!
XML Grundlagen und Anwendungen
12
Validierung von Dokumenten
Genügen Dokumente den allgemeinen Regeln von XML, sind sie wohlgeformt.
Genügen sie den Einschränkungen einer DTD, nennt man sie gültig (bezogen auf die DTD).
Dokument auf DTD beziehen durch: <!DOCTYPE rootElementName SYSTEM “url“> oder
<!DOCTYPE rootElementName PUBLIC “publicDTDName“ “url“>
im Prolog des Dokuments.
XML Grundlagen und Anwendungen
13
Übung 3Schreiben Sie eine DTD für die Dokumente
aus „Elementen“, „Attributen“ und „Texten“, die sie in Übung 1 entwickelt haben!
XML Grundlagen und Anwendungen
14
ReferenzenFür Attribute gibt es folgende weitere Typen:• ID
Wert ist XML-Name, eindeutig unter allen ID-Werten.
• IDREFWert muss ein ID-Attributwert im Dokument sein.
• IDREFSDurch Leerzeichen getrennte Liste von IDREF-Werten.
XML-Namen sind NMTOKENs, die mit einem Buchstaben oder “_“ beginnen.
XML Grundlagen und Anwendungen
15
Übung 4Erweitern Sie Übung 2 um Kreuzreferenzen!
XML Grundlagen und Anwendungen
16
ZusammenfassungXML allein ist die Beliebigkeit an sich.
Erst mit DTDs wird der Austausch von Informationen über XML sicher und vernünftig.
DTDs nutzenReguläre Ausdrücke zur Inhaltspezifikation
Typisierung und Anwendungsbedingungen für Attributsspezifikationen
Globale eindeutige Namen für Verweise
Wohlgeformte XML-Dokumente können bzgl. einer DTD gültig oder ungültig sein.
Die Prüfung auf Gültigkeit ist effizient. (Linearer Aufwand)