Einführung in XML 1-Tages-Kurs
Übersicht über den Kursinhalt Einführung: Was ist XML? Erste Schritte: einfache XML-Beispiele Weitere Technologien: XPath, XSD, XSL Das komplette Bild: Bearbeitung von XML Anwendungsbeispiele
Rückblick: Woher kommt XML? SGML XML 80/20 DocBook HTML … DocBook XHTML HL7 V3 Internet Semantic Web
Einführung: Was ist XML Rückblick: Auszeichnungssprachen Warum war XML nötig? Komplexität des bestehenden Internets Strengere Trennung des Inhalts von der Darstellung (Beispiel) Was also ist XML? 80:20 Nachfolger von SGML Obermenge von HTML Umgebung, die HTML und andere Anwendungen definieren kann
Einführung: Was ist XML? Auszeichnungssprachen: Trennung von Inhalt, Struktur und Darstellung Struktur XSD (DTD) PDF HTML WordML SVG etc. Inhalt Darstellung XSL XML
Einführung: Was ist XML Beispiel: Ausgang: [49] (2151) 32-29 44 Struktur: <lk> <vw> <rn> <dw> Inhalt: 49 2151 32 2944 Layout: [ ]_( )_ - _
Erste Schritte: Einfache XML Beispiele Syntax eines XML Elements: Start-Tag Element-Wert End-Tag < Name Attribut(e) > Text XML-Elemente </ Name > Beispiel: <test id="123" user="Müller">Das ist der Inhalt</test>
Erste Schritte: Einfache XML Beispiele XMLElement <test>Elementwert</test> <test attribut="Attributwert"><kind>Wert</kind></test> Leeres Element <test></test> oder <test/>, auch: <test attribut="123"/> Attribut Besteht aus Attributname und Attributwert Syntax: attribut="attributwert" Kann beliebig oft wiederholt werden
Erste Schritte: Einfache XML Beispiele <Adresse id="456135"> <Name>Willi Müller</Name> <Straße>Dorfweg 234</Straße> <PLZ>34567</PLZ> <Ort>Testdorf</Ort> </Adresse>
Erste Schritte: Einfache XML Beispiele Beispiel 2: Attribut-orientiert <Adresse id="456135" name="Willi Müller" straße="Dorfweg 234" plz="34567" ort ="Testdorf"/> Achtung: XML ist case-sensitive! Es gibt keine Vorgabe über Groß- oder Kleinschreibung
Erste Schritte: Einfache XML Beispiele Sonstige Bausteine: Processing Instruction <?Irgendein Inhalt, keine XML Elemente erlaubt ?> Kommentar <!-- Hier kann stehen was immer man will --> CDATA-Sektion <[CDATA[ Dieser Bereich wird vom Parser ignoriert ]]> "Weißraum" (Whitespace): Tabulatoren und Leerzeichen, die über ein einzelnes Leerzeichen hinausgehen
Erste Schritte: Einfache XML Beispiele Behandlung geschützter Zeichen <, >, &, ", ' sind geschützte Zeichen, da sie für XML selbst benötigt werden "Output Escaping": ">" wird zu > "<" wird zu < & ' &qout; Werden lediglich in Kommentaren und CDATA-Abschnitten ignoriert.
Erste Schritte: Einfache XML Beispiele XML ist hierarchisch organisiert: Wurzel-Element Blatt Knoten Attribut "/" (Wurzel)
Erste Schritte: Einfache XML Beispiele Aufgabe: Strukturieren Sie eine Telefonnummer Entwerfen Sie eine XML-Datei, die eine Adresse sowie die eben entwickelte Telefonnummer beinhaltet. Achten Sie auf korrekte Syntax Verwenden Sie einen einfachen Editor
Weitere Technologien: XML Schema Definition (XSD) Struktur XSL Inhalt Darstellung XML XSD (DTD) PDF HTML WordML SVG etc.
Weitere Technologien: XSD XML Schema Definition Language (XSD) Definiert die Struktur von XML-Dateien Ermöglicht die Validierung im Gegensatz zum einfacheren Wohlgeformtheits-Test Ist für das maschinelle Verarbeiten von Daten unabdingbar Legt die Semantik einer XML-Datei fest Ist ebenfalls eine XML-Datei und wird normalerweise vom XML-Parser verarbeitet
Einschub: Namensräume Gliederungsebene zur Abgrenzung von Element-Definitionen Wird als Attribut im Element definiert Gilt für die von diesem Element umschlossenen Elemente Wird als Kürzel referenziert Beispiel: <xs:schema xmlns:xs="www.w3.org/2001/XMLSchema"/>
Weitere Technologien: XSD
Weitere Technologien: XSD Anwendungseinführung: XMLSpy Marktführer bei den XML-Editoren Einfaches graphisches Frontend zur Erstellung von Schema-Beschreibungen Gruppenarbeit: Erstellung einer Schema-Beschreibung für eine Adresse
Weitere Technologien: XSD XML-Parser XML-Schema "valide" XML-Instanz "wohlgeformt"
Weitere Technologien: XML Stylesheet Language (XSL) Struktur XSL Inhalt Darstellung XML XSD (DTD) PDF HTML WordML SVG etc.
Weitere Technologien: XSL Erzeugt aus XML-Instanzen Ausgabedokumente in verschiedenen Formaten: PDF, HTML, SVG, WordML, Text, HL7 etc. Ist ebenfalls eine XML-Datei Wird im Regelfall durch den XML-Parser verarbeitet
Weitere Technologien: XSL XML-Instanz XML-Parser XSL-Datei Anweisung zur Erzeugung der Ausgabe-Datei Enthält die "beweglichen" Informationen Ausgabe- Datei Ergebnis der Transformation im gewünschten Format
Weitere Technologien: XSL XSL-Datei muss "wissen", welche Elemente wie oft vorkommen können Logische Abhängigkeit von XSD XSL verfolgt einen "Event-basierten" Ansatz Eventhandler für jeden Knoten, jedes optionale oder jedes mehrfach erlaubte Element Eventhandler für den Wurzelknoten Arbeitet als "deskriptive Programmiersprache" Beschreibung des Ausgabe-Ergebnisses, nicht des Wegs dorthin
Weitere Technologien: XSL XML-Parser Ausgabe XML-Instanz Ausgabe_1 Element_1 XSL-Dokument Ausgabe_2 Element_2 Handler_1 Ausgabe_1 Element_1 Handler_2 Ausgabe_3 Element_3 Ausgabe_2 Element_2 Handler_3 Ausgabe_2 Element_2
Weitere Technologien: XSL Designregeln: Start mit dem zu erzeugenden Dokument Analyse: Knoten, wiederkehrende und optionale Elemente erkennen Root-Template erstellen Ausgabe-Ergebnis in das Root-Template einfügen Templates für Knoten, mehrfache und optionale Elemente erstellen Ausgabe-Ergebnis auf die entsprechenden Templates verteilen Werte aus XML-Instanz referenzieren Geschäftslogik umsetzen
Weitere Technologien: XPath Navigation durch den hierarchischen XML-Baum mit Hilfe von XPath
Weitere Technologien: XPath Navigations-Instrument durch den DOM-Baum Angelehnt an UNIX / DOS Ordnerhierarchie Ergänzung durch Funktionen Achsenkonzept: "Blickrichtung" beachten Aktuelle Position im Baum kennen Wissen, welche Funktionen die Position im Baum verändert Notation absolut oder relativ
Weitere Technologien: XPath Übersicht über die Syntax 13 Achsen (sibling, ancestor, child etc.) z.B.: "child::Person" Kürzel: "." = aktuelle Position, ".." übergeordneter Knoten "/" = Wurzel des Baums, "/ElementName" Wurzelelement "../ElementName" = erster Nachbar "/*" = alle Kinder, "//ElementName" = egal, wo Attribut-Achse wird durch "@" angesteuert Beispiel: "/Adressbuch/Eintrag/Erreichbarkeit/@art"
Weitere Technologien: XPath Xpath-Funktionen Erweitern die Funktionsvielfalt Werden benötigt, um Knotentests durchzuführen Werden in "[..]" geschrieben, wenn sie innerhalb eines XPath-Ausdrucks berechnet werden sollen Beispiele: position(), last(), name(), count() "/Addressbuch/Eintrag[3]/Adresse[last()]"
Das komplette Bild: Bearbeitung von XML Struktur XSD (DTD) PDF HTML WordML SVG etc. Inhalt Darstellung XSL XML
Das komplette Bild: Bearbeitung von XML Szenario: Erstellung eines Adressbuches Erster Schritt: Die Strukturbeschreibung XSD Zweiter Schritt: Die Umformung in HTML Dritter Schritt: Test mit einer XML Instanz
Bearbeitung von XML: Erstellung der Strukturbeschreibung Designprinzip: Flexibilität versus Eindeutigkeit Vergleichbar mit der Erstellung eines Datenmodells für eine Datenbank Hierarchie versus Relation versus Objekt-orientierung
Bearbeitung von XML: Erstellung der Strukturbeschreibung Datei in XMLSpy
Bearbeitung von XML: Die Umformung in HTML Erster Schritt: Ausgabe-Ergebnis analysieren Zweiter Schritt: Knoten, mehrfache und optionale Elemente identifizieren Dritter Schritt: Templates erstellen Vierter Schritt: Geschäftslogik integrieren
Bearbeitung von XML: Die Umformung in HTML Link auf die Datei
Bearbeitung von XML: Die Umformung in HTML Datei in XMLSpy
Bearbeitung von XML: Die Umformung in HTML Datei in XMLSpy
Bearbeitung von XML: Die Umformung in HTML Wie wird der Transformationsprozess gesteuert? "Processing Instruction" in der XML-Instanz verweist auf Stylesheet XML-Instanz und Stylesheet werden dem Parser übergeben Ausgabe-Ergebnis wird als Datei ausgegeben
Anwendungsbeispiele Daten werden aus einer Datenbank in XML abgefragt und konvertiert Zur Darstellung in HTML oder PDF Zum Datenaustausch zwischen zwei Datenbanken mit unterschiedlichem Layout Zur Übermittlung von Bestell-, Befund-, oder Arztbriefdaten
Anwendungsbeispiele Daten werden in XML erfasst und gespeichert Plattformunabhängiges Format Maschinen-lesbar Wiederverwertbar Rohdaten in XML werden Multimedial aufbereitet Content von Layout getrennt Konsistenz verschiedener Medien
Anwendungsbeispiele Internet-Seiten werden mittels XML und Stylesheets aufbereitet Ideale Plattform für Content Management Systeme Leicht indizierbar, offen für Such-Robots Reiche Semantik Industrien vereinbaren XML Schemas Standardisierte Kommunikation ohne spezifische Parser Einfache Konversion zwischen Systemen Einfache Migration von Altdaten
Zusammenfassung XML bietet einen offenen, plattformunabhängigen und mächtigen Standard zur Verwaltung von Daten Es ist ein Datenformat mit flankierenden Techniken, die die Weiterverarbeitung ermöglichen XML schlägt die Brücke zwischen Maschinen- und Menschen-verständlichen Datenhaltungen
Zusammenfassung Alle Werkzeuge zur Bearbeitung von XML sind kostenlos und für alle Plattformen verfügbar Die Anwendung von XML ist auch für Nicht-Informatiker erlernbar und mit professionellem Erfolg einsetzbar XML hat eine breite Unterstützung durch die Industrie