XML Prof. Dr. W. Riggert FH Flensburg
Gliederung XML- Historie, Ziel, Position zu HTML z Struktur und Syntax z XPath, XQuery, Ablage z
Warum XML ?
XML ist die einzige Möglichkeit, die Vielzahl der Daten, Anwendungen und Geräte des E-Business zu verwalten
Historische Entwicklung
Entwicklungsmotive z
Zwei Motive haben die Entwicklung von XML ausgelöst: z Die seit 1969 für die Beschreibung von Dokumentenstrukturen verwendete Standard Generalized Markup Language SGML war zu komplex. z HTML als die einflussreichste aus SGML abgeleitete Auszeichnungssprache erwies sich wegen des weitgehend fixierten Satzes von Elementtypen als zu starr
XML-Beispiel
Quelle: GS1 Germany
XML-Merkmale ] ] ] ] ] ]
XML ist ein offener Standard XML basiert auf selbstbeschreibenden Merkmalen (Kontext als auch Inhalt) XML ist leicht erlernbar XML ist leicht sowohl von Rechnern als auch von Menschen zu lesen XML Dokumente sind leicht erweiterbar XML ist plattform- und anwendungsunabhängig
XML als Integrationswerkzeug
Business-toConsumer Transaktion
EDI
XML-fähige, genaue Suchmaschine
VS.
Inhaltsverteilung
Kommunikation zwischen Anwendungen
Computing as Usual
JIT Software …
Quelle : Hochberg, SAG-Symposium, 2000
XML-Dokumententypen Projektdaten
existierende Datenbanken
Briefe kj flsjd kjs lskjlkj lskjd lksjl fslk jdlksj fksjdlkjlkjf lskjdlkjf slkjkj flskdjljdkfj s lkjlkjlsd s dfl skjd f slkdjflskdj
zentrales Datenmanagement
lslkjdflk lskjd lfksjdlk lskdjfl aölskjdfölskdjf söldkfjlskdj föaslkdjlskdjf ösldkfjlskd föalskdj
ksjdlfkjslkjd
Fax Edmund Boister Minimillennium Minga Kunden# 08/15-4711
Sehr geehrte Damen und Herren! Bitte fakturieren Sie folgenden Auftrag: #
Beschreibung
Audio Listen
Video
asdas ddas(asdsad) asdasddasda asdasdsd asdasdsdasdsdasdas sdassdsdasd sdas
E-Mails kjfskdjfl lkjfkjdflks kjlfkjslkjkjl
Bilder
Prozessbeschreibungen
asdasdasdasd fa sdf asdfsdf as df asdf sdfsd
sdksldjfslkdf laskjdkdjf lskdj sd hflaksjdhf skk fksjdlfj öalsjdlfksjdf slkd lksdjf slkdfjlkdj aölskdjf skdjf slkjlj öa södlfjlkd föjkal slkdf lkjflksjdföa ljls df lskjd flkj llksd fjlakkjshd fkahlkh kshd flaksh kj flkahksjd flkajkjsh flkajsh dfkj h ksj fksjdhf la
sdasds dassdasdsdasd(werwe) sdasdaskjl lkjf ölkjglkdf jgs kjlkfjgölkfjg lkdfjg ldkfjglö dkfjlgdkk
XML für verschiedene Layouts und Geräte Wetterdaten
Drucker
CD
Bild
Bericht
News Ticker Internet
Frankfurt: Wind 4 WNW / Rain / 22°C
XML - Überblick z
Einordnung – Demo-Video
XML: Trennung von Content und Layout Darstellung der logischen Struktur von Dokumenten z Layoutinformationen davon separat z
Abbildung: Roland Boendgen
XML-Strukturphilosophie
XML-Nutzen ] XML Tags \ erlaubt selbstbeschreibende Daten ] XML Programming Interface \ arbeitet mit jedem Programmiermodell zusammen ] XML Style Sheets \ erleichtert die Personalisierung von Informationen ] XML Document Type Definitions \ gestattet eine Dokumentenbeschreibung für unterschiedlichste Belange
Quelle : Viljoen, SAG-Symposium, 2000
Struktur von XML Im Mittelpunkt stehen Dokumente
- Überschrift
Inhalt
- Einleitung - Text Inhalt = Struktur
Formatierung des Textes = Darstellung
HTML vs. XML HTML
XML
Struktur
Festgelegt durch Struktur-Tags. Dokumentstruktur bestimmt Anordnung der Tags. Nicht erweiterbar.
Festlegung einer eigenen Struktur durch selbstdefinierte Tags. Anordnung der Tags bestimmt Struktur des Dokuments. Beliebig erweiterbar.
Inhalt
Wird vom Autor festgelegt. Tags dienen der Formatierung des Textes zwischen den Tags. Dynamischer Zugriff auf den Text ohne Hilfsmittel nicht möglich.
Wird vom Autor festgelegt. Tags beinhalten den Text des Dokuments. Dynamischer Zugriff durch spezielle Zugriffsmethoden auf den Inhalt der Tags möglich.
Darstellung
Zentral im HTML Dokument durch Tags, die Formatanweisungen enthalten
Formatanweisungen sind ausgelagert in externe Datei
Darstellung von XMLDokumenten ] HMTL Seiten nutzen vordefinierte Tags für die Formatierung – der Browser interpretiert diese ] XML zeichnet sich durch eine unendliche Menge möglicher Tags aus – daher ist es unmöglich ein definiertes Layout für diese Tags im Browser festzulegen ] XSL (Extensible Stylesheet Language) ist ein Zusatzstandard, der XML-Dokumente formatiert und mit bedingten Anweisungen ausgeben kann
Gliederung XML- Historie, Ziel, Position zu HTML z Struktur und Syntax z XPath, XQuery, Ablage z
Besonderheiten Anwender definieren ihre eigenen Tags oder greifen auf öffentlich verfügbare Tagmengen zurück, die für verschiedene Anwendungsbereiche angeboten werden. z Inhaltliche Strukturen lassen sich in beliebiger Tiefe schachteln z Die verwendeten Tagnamen lassen einen Rückschluss auf die Bedeutung der Daten zu. Dagegen wird die Darstellung nicht explizit festgelegt. z XML erlaubt die Festlegung externer Bezüge für ein Dokument. Derartige Referenzen werden aufgelöst und druch die entsprechende Entität ersetzt. Mittels Referenzen werden Entitäten in einem Dokument bei Bedarf mehrfach verwendet. Auf diese Weise lässt sich ein XML-Dokument aus vorgefertigten Teilen zusammensetzen. z
Informationseinheiten z
Elf Typen von Informationseinheiten werden unterschieden: z Dokument z Element z Attribut z Verarbeitungsanweisung z Entitätsreferenz z Zeichen z Kommentar z Dokumenttyp-Deklaration z Ungeparste Entität z Notation z Namensraum
Bedeutung der Informationseinheiten Die wichtigsten Komponenten in der sich der Inhalt widerspiegelt, sind Elemente und Attribute. z Das XML-Dokument ist als Baum strukturiert mit einer Wurzel, die alle Elemente umschliesst z
XML-Syntax Um wohlgeformt zu sein, muss ein Dokument syntaktische Regeln der XML-Grammatik erfüllen. z Dabei gilt: z Jedes wohlgeformte Dokument beginnt mit einem Prolog, dem mindestens ein Element folgt. z Danach sind Kommentare oder Verarbeitungsanweisungen erlaubt. z Hinter dem Prolog beginnen die XML-Daten in Form eines Baumes aus Elementen und Attributen. z Das erste Element ist das Wurzelelement, das alle anderen Elemente einschließt z
XML-Deklaration - Video z
XML-Deklaration
XML - Baum
Aufbau eines XML-Dokumentes Bestandteile eines XML-Dokumentes
Vorspann DTD (intern oder extern)
XML
XML-Dokumentenstruktur
XML-Dokumentenbeispiel
XML-Dokument - Baum z
XML definiert Baumstruktur! z Wurzel heißt Dokumentelement z Blattelemente enthalten Werte z Einziger Datentyp: Zeichenkette
XML - Objekte z
XML nennt seine Objekte Elemente z Elemente sind begrenzt durch Tags z Tagnamen sind "case-sensitive" z Jedes geöffnete Tag muss auch wieder geschlossen werden z Tags dürfen einander nicht überlappen; nicht erlaubt z. B.: z Tags leerer Elemente haben besondere Syntax: (Shortcut für ) z Tags können Attribute enthalten: z Eine korrekte Schachtelung ist notwendig (anders als in HTML). XML-Elemente dürfen nicht überlappen.
Vorspann eines XMLDokumentes version z gegenwärtig nur 1.0, 1.1 z falls zukünftig weitere Versionen als Empfehlung vom W3C verabschiedet werden, dann ermöglicht der Parameter die Verarbeitung verschiedener Versionen. z encoding (optional) z Kodierung des Dokuments, Beispiele (UTF-8 – auch Defaultwert, UTF-16 - müssen ebenfalls alle XML-Prozessoren unterstützen). z standalone (optional) z 'yes' - spezifiziert, dass dem Dokument eine externe MarkupDeklaration (DTD oder XML-Schema) zugeordnet wird, sonst 'no' z Defaultwert 'no'‚ wenn externe Deklaration definiert ist und standalone nicht angegeben ist z
Beispiele - Vorspann
XML - Grammatik
Grammatik - Besonderheiten Anders als bei HTML ist auf Groß- und Kleinschreibung zu achten. Ein Name muss mit einem Buchstaben, einem Unterstrich oder einem Doppelpunkt beginnen z Elemente sind mit beliebig vielen Attributen definierbar, mit Paaren von Attributname und Attributwert z Jedes angegebene Attribut muss einen Wert haben, der in Hochkommata oder Anführungszeichen eingeschlossen ist. Mehrere Attribute werden durch Leerzeichen getrennt. z Ob in einer Dokumentenstruktur ein Objekt besser als Element oder Attribut behandelt wird, obliegt dem Anwender z
Grammatik - Namensräume Die freie Namenswahl bei Elementen und Attributen wirft Probleme auf, wenn die gleichen Namen mit unterschiedlicher Bedeutung verwendet werden. z kann Mitgliedsbeiträge oder Artikel für eine Zeitschrift bedeuten. z Um Mehrdeutigkeiten zu vermeiden, ordnet man Namen Namensräumen zu. Diese werden durch eine eindeutige URIReferenz identifiziert. z Der URI wird über ein xmlns-Attribut ein Präfix zugeordnet: Ein Element dieses Namensraums wird wie folgt angesprochen: 100 z
Aufbau von XML-Dokumenten 1
Titel : „Linux“ Autor : „Michael Kofler“ ISBN : 3-8273-1475-5
Komponenten eines Buchs
Linux Michael Kofler 3-8273-1475-5
Elemente eines XML Dokuments
Aufbau von XML-Dokumenten 2 Meyer 1-234-56789-0 2 30.00
Elemente und Attribute hierarchische Schachtelung Sequenz
XML builds on the principles of two existing languages, HTML and SGML to create a simple mechanism .. The generalized markup concept ..
Markup in Volltexten Mixed Content Elemente Viele der folgenden Folien basieren auf Meike Klettke, UNI Rostock
Syntax von Elementen /1 Ein Element besteht aus: z Start-Tag z Ende-Tag und z Elementinhalt Beispiel: Ronald Bourret
Start-Tag
Elementinhalt
Ende-Tag
Syntax von Elementen /2 Leere Elemente sind möglich: Beispiel: Elemente können verschachtelt werden: Bourret Ronald
Start-Tag Elementinhalt Ende-Tag
Graphische Darstellung von XML-Dokumenten XML-Dokumente sind Bäume! z Beispiel: z
Bourret Ronald z
korrekte Schachtelung der Elemente notwendig
Elementknoten Textknoten
Document Type Definition ] Einordnung von Dokumenten in Kategorien, macht Dokumente unterscheidbar ] Entscheidend dafür sind die Elemente, die das jeweilige Dokument enthält ] Um Elemente, die zu einem Dokument gehören zu definieren, verwendet man in XML die DTD
Schemabeschreibung - DTD Darstellung, welche Elemente auftreten können und wie sie geschachtelt werden z Deklaration von Strukturinformationen z
z
Vorteile einer DTD: z Entspricht einer Dokumentation für die XML-Dokumente z Anwendungen können darauf reagieren z Fehler in XML-Dokumenten können erkannt werden z Oft: bessere Qualität der XML-Dokumente, weil durchdachteres Vorgehen z PCDATA = Parsed Character Data
Definition von Elementen in einer DTD XML-Dokument: Ronald Bourret Zugehörige DTD: XML-Dokument: Bourret Ronald Zugehörige DTD:
Definition von Elementen in einer DTD (Inhaltsmodelle) Sequenz (A , B) A und B müssen in der angegebenen Reihenfolge im Dokument auftreten z Alternative (A | B) entweder A oder B treten im Dokumente auf z Wiederholung A? - 0..1 Mal A+ - 1..n Mal A* - 0..n Mal z Mixed Content (#PCDATA | A | B)* A, B oder beliebiger Text treten im Dokument auf z
Beispiele zur Definition von Elementen in einer DTD /1 Hotel am Leuchtturm ...
Beispiele zur Definition von Elementen in einer DTD /2 18119 Warnemuende Seestrasse 12 18051 Rostock 12345
Beispiele zur Definition von Elementen in einer DTD /3 Das Hotel am Leuchtturm befindet sich direkt am Alten Strom, mit Blick auf die Hafeneinfahrt, die Mole und den Strand. Unser Hotel verfügt über eine Sauna und eine Meerwasserschwimmhalle . Das Hotelrestaurant bietet regionale Küche und Fischspezialitäten.
Syntax von Attributen /1 Attribute werden einem Element des XML-Dokumentes zugeordnet: Attributwert Attributname Ronald Bourret Start-Tag
Elementinhalt
Zugehörige DTD:
Ende-Tag
Syntax von Attributen / 2 XML-Dokument DTD
Darstellung von XMLDokumenten z
XML-Dokumente sind Bäume!
Beispiel: Bourret Ronald
vortragender
tutorial
name
vorname
T1
Ronald
Elementknoten Textknoten Attributknoten
Bourret
Deklaration von Attributen in einer DTD Attribute haben z einen Namen z einen Typ (CDATA, ID, IDREF/IDREFs, ENTITY/ENTITYS, NMTOKEN/NMTOKENS oder (wert1|wert2|...) Aufzählung möglicher Werte z eine Angabe, ob das Attribut auftreten muss (#REQUIRED, #IMPLIED oder #FIXED) oder z einen optionalen Defaultwert (bei #FIXED ist dieser auch erforderlich)
Zusammenfassung der DTDDeklarationen
DTD-Elementdeklaration
DTD-Attributdeklaration
DTD-Attributdeklaration Beispiel
Beispiel: Bookstore
DTD-Deklarationsformen
Beispiel – externe Deklaration
Processing Instructions Anweisungen für die Verarbeitung des Dokuments z Einschränkung: im Namen der Processing Instruction darf der Teilstring xml nicht auftreten z gebräuchlichster Einsatz: Zuweisung von Stylesheets zu XMLDokumenten. Syntax: Beispiel:
Kommentare können in DTDs und in XML-Dokumenten auftreten z Kommentare lassen sich durch Applikationen auswerten (z.B. mit XML-Prozessoren, XSLT) z Syntax: z
XML-Editoren - Video z
XML-Editoren
Gliederung XML- Historie, Ziel, Position zu HTML z Struktur und Syntax z XPath, XQuery, Ablage z
XML-Zugriff
XPath
Quelle: Gorke, 2006
XQuery
Quelle: Gorke, 2006
Alternativen der XML-Dokumente Speicherung Speicherung im Dateisystem z XML-erweiterte Datenbanksysteme (XED) z Native XML-Datenbanksysteme (NXD) z Hybride XML-Datenbanksysteme (HXD) z
XED – Relation/XML
Quelle: Schöning, 2003
XED - BLOB
Quelle: Schöning, 2003
DTD-Schema – relationale Struktur
Quelle: Schöning, 2003
Vorteil – relationale Struktur
Quelle: Oracle
Vorteil - BLOB
Quelle: Oracle
Native Ablage
Vergleich – Relational vs. XML
XML-Flexibilität Flexibilität von XML bietet viele Möglichkeiten für den Aufbau eines XML Dokumentes z Dokumenttyp (Schema) ist nicht explizit festgelegt/bekannt z Probleme: z Anwendungen sind für bestimmte Dokumenttypen geschrieben z Fehlende Kompatibilität bei Datenaustausch z Fehleranfälligkeit (Datenformate, fehlende Datenfelder, etc.) z Vorgehen : Einschränkung der Flexibilität z Verabredung einheitlicher Formate z Standardisierung on Klassen von XML-Dokumenten z Möglichkeiten zur Beschreibung des Dokumenttyps bzw. -schemas z XML-DTD und XML-Schema z
Eigenschaften von XMLDokumenten Wohlgeformtheit z Dokument syntaktisch korrekt? Überprüft wird: z Alle Elemente müssen ein Start-Tag und ein Ende-Tag haben, außer leere Elemente z Korrekte Schachtelung von Tags z Alle Attributwerte stehen in Hochkommas oder Anführungsstrichen z Ohne zugeordnete DTD sind alle Attribute nach Definition vom Typ CDATA z Keine mehrfach auftretenden Attributnamen an einem Element z Alle Zeichen, die Markup sein könnten (Bsp