Überblick • XML: “Extensible Markup Language” • Entwickelt, um Informationen bereitzustellen, zu speichern und zu übertragen • Im Gegensatz zu HTML keine vordefinierten Elemente wie Anker, Überschriften, Listen und Links • Alle XML-Elemente eines XML-Dokumentes sind frei definierbar (daher extensible = erweiterbar) • Die XML-Definition besteht nur aus einer Basissyntax • XML-Dokumente besitzen eine hierarchische Baumstruktur Ein XML Dokument <?xml version="1.0"?> XML-Deklaration <!-- Dateiname: Inventory.xml --> Kommentar <INVENTORY> <BOOK> <TITLE>The Adventures of Huckleberry Finn</TITLE> <AUTHOR>Mark Twain</AUTHOR> <BINDING>Taschenbuch</BINDING> <PAGES>336</PAGES> <PRICE>DM 12,75</PRICE> </BOOK> ... <BOOK> <TITLE>Leaves of Grass</TITLE> <AUTHOR>Walt Whitman</AUTHOR> <BINDING>Gebundene Ausgabe</BINDING> <PAGES>462</PAGES> <PRICE>DM 25,00</PRICE> </BOOK> </INVENTORY> End-Tag Start-Tag Prolog DokumentElement Im DokumentElement verschachtelte Elemente Ein XML Dokument • XML wird zur Beschreibung einer Datenbank eingesetzt • Ist für Menschen lesbar (Vorteil gegenüber anderen Formaten wie z.B. Access *.mdb) • Die Elementnamen (wie INVENTORV, BOOK oder TITLE) sind nicht Teil der XML-Spezifikation • Alle Elemente sind vollständig ineinander verschachtelt • Nur ein einziges Element auf oberster Ebene, das Dokumentenelement oder Wurzelelement genannt wird • Benennung der Elemente ist frei wählbar Die Struktur eines XML Dokuments XML Dokumente erstellen • Streng definierte Syntax • Jedes Objekt muß einen Start- und End-Tag besitzen • Jedes verschachtelte Element muß vollständig innerhalb des Elementes liegen, das es umschließt • XML-Objektnamen sind „Case-sensitive“ • Kann mit jedem Text-Editor erstellt werden • Kann mit dem Internet Explorer 5 angezeigt werden XML Dokumente anzeigen Der XML-Parser (ein Teil des XMLProzessors) analysiert das Dokument und erkennt Syntaxfehler. XML Dokumente anzeigen • Drei Möglichkeiten: – Stylesheet-Verknüpfungen Eigene Datei, die das Wiedergabeverhalten steuert – Datenbindung HTML-Elemente einer Seite an XML-Datei anbinden, dann wird durch diese HTML-Seite das XML-Dokument angezeigt – Scripts z.B. VBScripts, die das XML-Dokument lesen und darstellen Formatierung mit CSS-Stylesheets • display:block - Zeilenvorschub nach dem Element • margin-top:12pt - 12 Punkte Abstand vor dem Objekt • font-size:10pt - Zeichensatz 10 Punkte • font-style:italic - Kursivschrift • font-weight:bold - Schriftart fett • display:none - Element wird nicht angezeigt • margin-left:15pt - 15 Punkte Abstand nach links XML Dokumente anzeigen • Stylesheet-Verknüpfungen /* Dateiname: Inventory01.css */ <?xml version="1.0"?> BOOK {display:block; margin-top:12pt; font-size:10pt} <!-- Dateiname: Inventory01.xml --> TITLE {font-style:italic} <INVENTORY> <BOOK> <TITLE>The Adventures of Huckleberry Finn</TITLE> <AUTHOR>Mark Twain</AUTHOR> <BINDING>Taschenbuch</BINDING> <PAGES>336</PAGES> <PRICE>DM 12,75</PRICE> </BOOK> ... AUTHOR {font-weight:bold} Inventory01.css <?xml-stylesheet type="text/css" href="Inventory01.css"?> Inventory01.xml XML Dokumente anzeigen /* Dateiname: Inventory02.css */ BOOK {display:block; margin-top:12pt; font-size:10pt} TITLE {display:block; font-size:12pt; font-weight:bold; font-style:italic} AUTHOR {display:block; margin-left:15pt; font-weight:bold} <?xml version="1.0"?> <!-- Dateiname: Inventory02.xml --> <?xml-stylesheet type="text/css" href="Inventory02.css"?> PRICE {display:block; margin-left:15pt} <INVENTORY> <BOOK> <TITLE>The Adventures of Huckleberry Finn</TITLE> <AUTHOR>Mark Twain</AUTHOR> <BINDING>Taschenbuch</BINDING> <PAGES>336</PAGES> <PRICE>DM 12,75</PRICE> </BOOK> ... Inventory02.css Inventory02.xml BINDING {display:block; margin-left:15pt} PAGES {display:none} Wohlgeformte XML Dokumente • Besteht aus Prolog und Dokumentenelement • Zusätzlich sind auch Kommentare, Verarbeitungsanweisungen und Leerzeilen zulässig • Kommentare beginnen mit „!--“, enden mit „--“ und dürfen (natürlich) „--“ als Zeichenkette nicht enthalten • Zeichenketten im XML Markup Code, sog. Literate, werden entweder in ´oder in “ eingeschlossen – <?xml version=´1.0´?> – <?xml version=“1.0“?> • Beispieldatei: parts.xml Minimalistische XML Dokumente • Konform zum XML-Standard • <minimal> Ein minimalistisches Dokument </minimal> Struktur eines Elements Typ Typ <TITLE> The Adventures of Huckleberry Finn </TITLE> Start-Tag Inhalt (Zeichendaten) End-Tag • Der Typ wird auch Elementname oder „Generischer Bezeichner“, kurz GI genannt • Der Typ definiert einen bestimmten Typ oder eine Klasse von Elementen, nicht aber ein bestimmtes Element Der Elementtyp (Elementname) Typ Typ <TITLE> The Adventures of Huckleberry Finn </TITLE> Start-Tag Inhalt (Zeichendaten) End-Tag • Der Elementname kann Buchstaben, Zahlen, Punkte (.) oder Bindestriche enthalten • Der Elementname muß mit einem Buchstaben oder einem Unterstrich beginnen Gültige Namen • • • • • Part _1stPlace A B-SECTION Strasse.Adresse.1 Ungültige Namen • • • • • • • • Beginnt mit Zahl 1stPlace Klammern nicht zugelassen (Test) Schrägstrich nicht zugelassen B/Section Doppelpunkt nicht zugelassen Kapitel:01 Bindestrich nicht zugelassen -Teilbereich Dungeons&Dragons „&“ nicht zugelassen Leerzeichen nicht zugelassen B Section _Teilbereich04.test. GÜLTIG !!! Leere XML Elemente • Leere Elemente können in 2 Varianten notiert werden: – <Titel></Titel> – <Titel/> • Beide Notationen sind gleichbedeutend • Übung: Inventory03.xml Attribute in XML-Dokumenten • Eine Attributsspezifikation besteht aus einem Paar „Name:Wert“ • Beispiel: <TITLE Language=“Englisch”> The Adventures of Huckleberry Finn </TITLE> <TITLE Language=“Englisch”/> • Alternative, Informationen zu einem Element hinzuzufügen • Attribute können nur mit XLS-Stylesheets, Datenbindung oder Scripts dargestellt werden Regeln für die Attributserstellung • Name muß mit einem Unterstrich oder einem Buchstaben beginnen • Beispiel: Folgen dürfen beliebig viele Buchstaben, Zahlen, Bindestriche, Punkte oder Unterstriche • Attribute mit dem Präfix xml (beliebige Kombination aus Groß- und Kleinbuchstaben) sind für die Standardisierung von XML reserviert • Ein bestimmter Attributname kann innerhalb eines Tags nur einmal vorkommen • Abschließend Beispiele