<XML und XSLT – Eine Einführung/> Katharina Hemmeter, Claus Ludewig 01.06.2015 SQ: Digitale Dokumente Gliederung • XML: • Problemstellung • Theorie • Beispiel • XSLT: • Problemstellung • Theorie • Beispiel • Quellenverzeichnis 2 Problemstellung Eingeschränktheit • Grammatik • Primär für Webseiten Kein Datenaustausch • Andere Datenformate • Datenbank Unsauberkeit • Fehlende Trennung von Form und Inhalt • Auf Ebene des Quellcodes 3 Gliederung • XML: • Problemstellung • Theorie • Beispiel • XSLT: • Problemstellung • Theorie • Beispiel • Quellenverzeichnis 4 XML – extensible markup language 1989 1994 1998 SGML – Standard Generalized Markup Language • Einsatz als Datenspeicherformat • Eine Untersprache von SGML: HTML 5 XML – extensible markup language 1989 1994 1998 W3C – World Wide Web Consortium • Für Weiterentwicklung von HTML zuständig • Entwickeln mit Softwarekonzernen gemeinsam XML 6 XML – extensible markup language 1989 1994 1998 XML – extensible markup language • Version 1.0 wird im Februar veröffentlicht • Aktuell: 5. Edition von XML erhältlich 7 XML – extensible markup language Metasprache Erweiterbar Trennung von Inhalt und Form Selbstbeschreibend Datenaustausch 8 HTML vs. XML Anwendungssprache HTML - Formatierung - Hierarchie Metasprache - Eigene Grammatik XML - Anpassbarkeit 9 XML-Familie TEI XSL-FO DocBook XHTML • Textkodierung und Austauschformat • Formatierung • Ausgabeformat • HTML-Ausgabe einer XML-Datei SVG • Erstellung von Grafiken GML • Geographische Daten 10 Aufbau einer Instanz – Prolog <?xml version="1.0" encoding="UTF-8" standalone="no"?> <?xml-stylesheet href="beispiel.css" type="text/css"?> <!DOCTYPE bildersammlung SYSTEM "bild01.dtd"> 11 Aufbau einer Instanz <?xml version="1.0" encoding="UTF-8" standalone="no"?> • XML Version • Zeichencodierung • Standalone: yes/no 12 Aufbau einer Instanz <?xml-stylesheet href="beispiel.css" type="text/css"?> • Stylesheet • Link • Typ 13 Aufbau einer Instanz <!DOCTYPE bildersammlung SYSTEM "bild01.dtd"> • Root-Element • Schlüsselwort • URL der DTD 14 Aufbau einer Instanz – Regeln • • • • Start mit Buchstaben oder Unterstrich Kein Start mit Zahlen Keine Leerzeichen, Doppelpunkte oder Umlaute Groß- und Kleinschreibung muss beachtet werden, da XML case-sensitive ist • Es können einem Element mehrere Attribute zugewiesen werden 15 Aufbau einer Instanz – Regelanwendung Wohlgeformtheit • Tags • Case-sensitive • Zeichencodierung Validität • Hierarchie • Grammatik wohlgeformte und valide XMLDatei Prüfung mittels Parser: www.xmlvalidation.com 16 Namensräume Human • Body – physischer Körper Web • Body – Textkörper <body> Hiermit ist der Textkörper gemeint.</body> Problem: Semantische Doppeldeutigkeit 17 Namensräume Kontext HUMAN: <body> <height>182 cm</height> <weight>85 kg</weight> </body> <man:body> <man:height>182 cm</man:height> <man:weight>85 kg</man:weight> Kontext WEB: <body> Das ist meine Webseite </body> <web:body>Das ist meine Webseite.</web:body> </man:body> 18 Entities Ersetzung von Zeichen &llt; < &amp; & &gt; &quot; &apos; Verweis auf Unicode-Zeichen <test> (x&llt; y) &amp; &amp; (y &illt; z) </test> > “ ` 19 Definitionssprachen • • • • DTD XML- Schema RELAX NG Schematron Häufigste Sprachen Dienen auch zur Validierung 20 DTD – document type definition datei eintrag autor date eintrag content geparste Zeichen 21 DTD vs. XML-Schema Validierungssprache DTD - Uneindeutige Verknüpfung von Metainformation und Information Validierungssprache - Exakte Verknüpfung von Metainformation und Information XMLSchema 22 XML-Schema – Typen • Festlegung der Dokumentenstruktur Datentyp • Festlegung des Inhalts von Attributen / Elementen • Wertebereich Dokumententyp 23 XML-Schema – Beispiel <xs:schema xmlns:xs=http://www.w3.org/2001/XMLSchema> <xs:element name="nachname" type="xs:string"/> <xs:element name="gebdatum" type="xs:date"/> <xs:element name="alter" type="xs:integer"/> • Root-Element • Attribut • Datentyp 24 25 Wohlgeformtheit? <TITEL>Max und Moritz</titel> <p>Mancher gibt sich viele Müh’ Mit dem lieben <b>Federvieh<b/>; Einesteils der Eier wegen, Welche diese Vögel legen, <IMG Src=vogel.jpg> 26 Wohlgeformtheit <buch> <titel>Max und Moritz</titel> <p>Mancher gibt sich viele Mueh&apos Mit dem lieben <b>Federvieh</b>; Einesteils der Eier wegen, Welche diese Voegel legen,</p> <img src=”vogel.jpg”> </buch> 27 Gliederung • XML: • Problemstellung • Theorie • Beispiel • XSLT: • Problemstellung • Theorie • Beispiel • Quellenverzeichnis 28 Beispiel – ONIX 29 Beispiel – E-Book 30 Gliederung • XML: • Problemstellung • Theorie • Beispiel • XSLT: • Problemstellung • Theorie • Beispiel • Quellenverzeichnis 31 Problemstellung Eingeschränktheit Flexibilität Unsauberkeit • Lineare Formatierung • Primär für Webseiten • Verschiedene Ausgabeformate • Single source – mulitple media • Fehlende Trennung von Form und Inhalt • Auf Ebene des Quellcodes 32 CSS vs. XSLT CSS Hohe Flexibilität Eingeschränkte Einsatzmöglichkeiten XSLT 33 Gliederung • XML: • Problemstellung • Theorie • Beispiel • XSLT: • Problemstellung • Theorie • Beispiel • Quellenverzeichnis 34 XSL – Extensible Stylesheet Language XSLT Transformationssprache XSL-FO Formatierungssprache Xpath Navigationssprache 35 XSLT • XSLT kennt unterschiedliche Zielformate, die sich wie folgt festlegen lassen: <xsl:output method=‘format‘/> • Für format können folgende Werte festgesetzt werden: • • • • text html xml xhtml 36 XSLT – text <xsl:output method="text" /> Text Dokument 37 XSLT – html <xsl:output method="html"/> HTML Dokument 38 XSLT – xhtml <xsl:output method="xhtml"/> Xhtml Dokument 39 XSLT – xml <xsl:output method="xml"/> XML Dokument 40 41 XPath • Um XML-Transformationen zu implementieren, ist es nötig, diese adressieren zu können • Dies erfolgt über den separaten Sprachstandard XPath • Er erlaubt es Knotenmengen aus XML-Dokumenten zu bilden • Verwendung: Datenbanken • Wie SQL ist Xpath eine Abfragesprache, die es ermöglicht durch logische Ausdrücke Ergenismengen von Objekten zu bilden 42 XSLT – Aufbau eines XSLT-Skripts <xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text"/> <xsl:template match="/buchbestand"> <xsl:value-of select="buch[2]/@titel"/> </xsl:template> </xsl:stylesheet> 43 XSL-FO Grafiken XMLDokument XSLStylesheet XSLTProzessor XSL-FO XSLFormatter PDFGenerator PDF SVGGenerator SVG 44 XSL-FO 45 JPG vs. SVG JPG Einbettung Schlechte Skalierbarkeit Wiederverwendbarkeit Gute Skalierbarkeit SVG 46 SVG – Aufbau einer Instanz <?xml version="1.0" encoding="utf-8"?> <svg <rect x="100" y="100" width="200" height="200" fill =“white”/> <polygon points="100 100, 150 100, 150 250, 250 250, 250 100, 300 100, 300 300, 100 300" fill="none" stroke="red" stroke-width="3"> </svg> 47 SVG – Aufbau einer Instanz <rect x="100" y="100" width="200" height="200" fill =“white”/> • Form • Position • Breite und Höhe in Pixel • Farbe 48 SVG – Aufbau einer Instanz 49 SVG – Aufbau einer Instanz <polygon points="100 100, 150 100, 150 250, 250 250, 250 100, 300 100, 300 300, 100 300" fill="none" stroke="red" stroke-width="3"> • Beliebige Form mit Koordinaten • Rahmenfarbe • Rahmenbreite 50 SVG – Aufbau einer Instanz 51 SVG – Wiederverwendung <defs> Formen definieren rec <use> polygon 52 53 Gliederung • XML: • Problemstellung • Theorie • Beispiel • XSLT: • Problemstellung • Theorie • Beispiel • Quellenverzeichnis 54 Beispiel XPath 55 Beispiel XPath 56 Quellenverzeichnis • Internet: http://www.dosco.de/ueber_xml.html . http://www.knv.de/uploads/tx_flexslider/298_Wanne n.jpg . http://www.knv.de/fileadmin/user_upload/Lieferante n/Onix_Musterdatei_kommentiert__3_.pdf . http://media.engadget.com/img/products/490/ai41/ai 41.jpg . 57 Quellenverzeichnis • Internet: http://www.oxygenxml.com/download_oxygenxml_ed itor.html . http://ruthe.de/cartoon/2635/datum/asc/ . http://www.w3.org/standards/xml/ . 58 Quellenverzeichnis • Literatur: HAUSER, TOBIAS: XML Standards. Entwickler-press. 2010. HOFFMANN-WALLBECK, THOMAS et al. : Standards in der Medienproduktion. Springer Vieweg. 2013. KURZ, SABINE: Digital Humanities. Springer Vieweg. 2015. SKULSCHUSS, MARCO: XML Schema. Cormelio-Medien. 2011. WANG, VICTOR: E-Books mit ePub. Mitp. 2011. 59