XSLT. Ihre Speaker. Tobias Kieninger Christian Dedek Thomas Bayer.

Größe: px
Ab Seite anzeigen:

Download "XSLT. Ihre Speaker. Tobias Kieninger Christian Dedek Thomas Bayer."

Transkript

1 Tobias Kieninger Christian Dedek Thomas Bayer Orientation in Objects GmbH Weinheimer Str Mannheim 1 Ihre Speaker Tobias Kieninger Christian Dedek 2

2 Organisatorisches Unterlagen Kein Rechner benötigt 3 Überblick Einführung Stylesheets XPath Advanced Anwendungen PDF Erzeugung Erzeugung von Grafiken Praxis Techniken und Beispiele 4

3 "Als Antwort der Industrie auf den Welthunger hat XML Java, Entwurfsmuster und die Objekttechnologie ersetzt... Trotzdem ist die Industrie im Moment dabei, alles, was gut und teuer ist, bezüglich XML umzukrempeln, ob dies Sinn macht oder nicht..." Don Box, Essential XML 5 Die Quelle als XML <?xml version="1.0" encoding="iso "?> <cdliste>.. <cd id="65" jahr="2000"> <titel>music</titel> <interpret>madonna</interpret> <hersteller>bmg</hersteller> <preis/> <track id="01"> <titel>music</titel> <laenge>4:35</laenge> </track> <track id="02"> <titel>impressive Instant</titel> <laenge>5:10</laenge> </track> </cd>... </cdliste> 6

4 XSL - extensible Stylesheet Language Bestand aus zwei Teilen: Der Transformationssprache Ändern der Struktur Hinzufügen von Formatierungsanweisungen XML Vokabular für Formatierungen Darstellungsform XML-Quellbaum XSL Transformation XML-Zielbaum XSL Formatierer PDF... 7 XSL im Browser Server XML XSL 8

5 XSL im Browser Vorteile: Trennung von Content und Style Suchmaschinen könnten XML Daten auswerten XML Daten können von Fremdsystemen eingelesen und verwertet werden Nachteile: Menge der übertragenen Informationen Browser muss XSL unterstützen 9 Von XSL zu extensible Stylesheet Language for Transformation XPath Transformationsanweisungen Adressierung Formatierung XSL-FO extensible Stylesheet Language - Formatting Objects 10

6 Prozessor + Transformationen html.xsl csv.xsl news.html txt.xsl docbook.xsl news.xml Prozessor news.txt (Xalan, Saxon,..) news.csv docbook.xml 11 XML-Transformationen mit Bäumen Stylesheet Datei Stylesheet XML Datei Quelle Prozessor Output Output Datei 12

7 Transformation in verschiedene Formate HTML Text CSV XML 13 Überblick Einführung Stylesheets XPath Advanced Anwendungen PDF Erzeugung Erzeugung von Grafiken Praxis Techniken und Beispiele 14

8 im Detail Was ist (nicht)? ist eine funktionale Sprache, um XML-Dokumente zu transformieren ist erweiterbar makes XML useful for non-programmers (James Clark) Ein -Dokument ist selbst ein XML-Dokument Eine Anleitung zur Transformation in ein Ergebnisdokument 15 Aufbau des ersten Stylesheets <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet version="1.0" xmlns:xsl=" <xsl:template match="/"> <html><body> <h1><xsl:value-of select="/cdliste/listentitel"/></h1> <p><xsl:value-of select="/cdliste/erstelldatum"/></p> <p><xsl:value-of select="/cdliste/beschreibung"/></p> </body></html> </xsl:stylesheet> 16

9 Namespace Deklariert einen Namensraum für Elemente Wird durch URI gekennzeichnet hat Namespace xmlns:xsl=" -Prozessor wertet nur Elemente diesen Namespaces aus <... xmlns:xsl=" 17 <xsl:for-each select= xyz > Befehle werden in einer Schleife abgehandelt Schleife läuft für jedes Element der select-anweisung Gebräuchlich für Listen In jedem Durchlauf wird der Knoten zum Kontextknoten <xsl:for-each select="cdliste/cd"> mache dies mache das </xsl:for-each> 18

10 Die erste Schleife <xsl:for-each select="//cd"> <xsl:value-of select="titel"/>, <xsl:value-of select="interpret"/><br/> </xsl:for-each> 19 Inhalt des Context <xsl:for-each select="//cd"> <xsl:value-of select="titel"/> <xsl:for-each select="tracks/track"> <xsl:value-of select="laenge"/> <xsl:value-of select="titel"/> </xsl:for-each> <xsl:value-of select="preis"/> </xsl:for-each> Context = cd Context = track Context = cd 20

11 Zweite Schleife <xsl:for-each select="tracks/track" > <xsl:value-of select="laenge"/> <xsl:value-of select="titel"/><br/> </xsl:for-each> 21 <xsl:if test= xyz > <xsl:if> gibt die Möglichkeit eine Bedingung abzuprüfen. Ist der Test erfolgreich, werden die Anweisungen ausgeführt. <xsl:if test="position()=last()"> mache dies tue das </xsl:if> 22

12 <xsl:choose> Dient zum Überprüfen auf mehrere Kriterien Der Choose Befehl hat zwei Unterelemente: <xsl:when test="xyz"> <xsl:otherwise> Die when-anweisung kann beliebig oft in choose auftauchen, otherwise jedoch nur einmal 23 <xsl:choose> Beispiel: <xsl:choose> <xsl:when test="bedingung1"> tue dies </xsl:when> <xsl:when test="bedingung2"> tue das </xsl:when> <xsl:otherwise> mach was anderes </xsl:otherwise> </xsl:choose> 24

13 Conditions <xsl:if test="preis"> Preis: DM <xsl:value-of select="preis"/><br/> </xsl:if> 25 Überblick Einführung Stylesheets XPath Advanced Anwendungen PDF Erzeugung Erzeugung von Grafiken Praxis Techniken und Beispiele 26

14 XPath Spezifiziert Adressierung eines XML-Dokumentes Enthält 13 Achsenbezeichner (AxisName) es existieren Kurz- und Langformen zur Adressierung W3C Recommendation seit 16. November 1999 Gemeinsame Syntax für Funktionalitäten, die sich und Xpointer( ) teilen 27 NodeSet Eine Menge von Knoten des Dokumentes Listet Knoten eines XPath-Ausdruckes auf node set <xsl:for-each select="cd"> 28

15 Axis Names - eine kleine Baumschule <cdliste> <erstelldatum> </erstelldatum> <listentitel>oio CD-Liste</listentitel> <beschreibung>diese CD-Liste ist... </beschreibung> <cd id="65" jahr="2000"> <titel>music</titel> <interpret>madonna</interpret> <hersteller>bmg</hersteller> <preis>19.99</preis> <track id="01 > <titel>music</titel> <laenge>4:35</laenge> </track>... </cd> Anwendung von XPathausdrücken Ausdrücke werden immer angegeben wenn es um die Adressierung in der Quelle geht <xsl:template match= titel"> <xsl:apply-templates select="/cdliste/cd"/> <xsl:value-of select="/cdliste/cd/titel"/> <xsl:for-each select="following-sibling::cd"> 30

16 Achsen (Auszug) cdliste parent preceeding-sibling following-sibling cd cd cd tracks child titel titel interpret preis track track track 31 Location step Ein Step besteht aus Achsennamen und Knotentest AxisName::NodeTest cdliste parent::cdliste parent::node() cd cd cd tracks titel titel interpret preis track track track 32

17 Location step II Ein Step besteht aus Achsennamen und Knotentest AxisName::NodeTest cdliste following-sibling::cd following-sibling::node() cd cd cd tracks titel titel interpret preis track track track 33 Location step und Location path Location step Location path Location step <xsl:value-of select="/cdliste/cd/hersteller"/> <xsl:value-of select="/cdliste/child::cd/child::hersteller"/> <xsl:value-of select="/descendant::hersteller"/> 34

18 Verschiedene Pfade 35 Adressierung innerhalb eines Knotens Node Namespace Text Attribute1 Attribute2 Attribute3 <oio:seminar von="1" bis="2" mit="3">das Sem...</oio:seminar> 36

19 Beispiel bei text() Die Quelle: <mes>hier stehen <b>wichtige</b>informationen!</mes> Das Stylesheet: <xsl:template match="mes"> <xsl:value-of select="text()"/> mes Das Resultat: Hier stehen Informationen Hier stehen b wichtige 37 Beispiele <xsl:value-of select="//cd/attribute::jahr"/> <xsl:value-of select="//cd/titel/child::text()"/> 38

20 Prädikate Gefiltertes Node Set cd[interpret= Madonna ] Menge aller CD Elemente mit Interpret Madonna Menge aller CD Elemente Node Set des NodeTestes 39 Kontext in einem Prädikat //cd[interpret= Madonna ] Context = gesamter Baum Context = aktuelle cd 40

21 Prädikate üben //cd[preis] < 1997] bzw. < 1997] > 1997 <= 2000]/titel Wie bekommt man alle cd s die billiger sind als DM 20? Wie bekomme ich alle cd s die ein Lied mit der Länge 4:23 enthalten? 41 Rechnen und Vergleichen Funktion Zweck =,<,<=,>,>=,!= Vergleiche and, or, not(ausdruck) Boolsche Operatoren +, -, *, div Numerische Operatoren 42

22 Funktionen (Auszug) Funktion Zweck position() Knoten auf Position prüfen last() Gibt den letzten Knoten zurück count(node-set) Anzahl der Knoten ermitteln sum(node-set) Summiert alle Knoten auf substring-after( Hallo, a ) Gibt einen Teilstring zurück (-> llo ) sum(node-set) Summiert alle Knoten auf <xsl:value-of select="count(//cd)"/> 43 Euro-Einführung EUR <xsl:value-of select="preis div "/><br/> <h2>der Durchschnittspreis ist: DM <xsl:value-of select="format-number(sum(//preis) div count(//preis), '0.00')"/> </h2> 44

23 Überblick Einführung Stylesheets XPath Advanced Anwendungen PDF Erzeugung Erzeugung von Grafiken Praxis Techniken und Beispiele 45 Document Order - Leserichtung

24 <xsl:template match= xyz > Es taucht als child von <xsl:stylesheet> auf Besteht aus zwei Bestandteilen Ein Pattern, welches auf Knoten des Sourcetrees angewandt wird Ein Template, welches instanziiert werden kann, damit es Bestandteil des Resulttrees wird Matchpattern <xsl:template match="hersteller"> <b>ein Hersteller</b> Ausgabe 47 <xsl:apply-templates/> Anweisung für Prozessor mit Transformation fort zu fahren Andere Regeln werden gesucht und abgearbeitet Danach wird in der ursprünglichen Regel weiter gemacht <xsl:template match="cd"> <p> <xsl:apply-templates/> </p> <xsl:template match="hersteller"> <b>ein Hersteller</b> 48

25 <xsl:apply-templates select= xyz /> Anweisung für Prozessor mit Transformation fort zu fahren Attribut select= xyz wählt die Child-Knoten aus Danach wird in der ursprünglichen Regel weiter gemacht <xsl:template match="cd"> <p> <xsl:apply-templates select="hersteller"/> </p> <xsl:template match="hersteller"> <b>ein Hersteller</b> 49 Build-In Template Rules <xsl:template match="* /"> <xsl:apply-templates/> <xsl:template <xsl:value-of select="."/> 50

26 Bestehende Anwendung modularisieren 1 <xsl:template match="/"> <html><body> <xsl:apply-templates/> </body></html> <xsl:template match="listentitel"> <h1><xsl:value-of select="."/></h1> <xsl:template match="erstelldatum beschreibung"> <p><xsl:value-of select="."/></p> 51 Bestehende Anwendung modularisieren 2 <xsl:template match="cd"> <xsl:apply-templates select="titel interpret preis"/>... <xsl:template match="titel interpret"> <h2><xsl:value-of select="."/><br/></h2> <xsl:template match="preis"> Preis: DM <xsl:value-of select="."/><br/> <xsl:template match="preis[. < 20]"> Sonderpreis: DM <xsl:value-of select="."/><br/> 52

27 Bestehende Anwendung modularisieren 3 <xsl:template match="cd"> <xsl:apply-templates select="titel interpret preis"/>... <xsl:template match="titel interpret"> <h2><xsl:value-of select="."/><br/></h2> <xsl:template match="preis"> Preis: DM <xsl:value-of select="."/><br/> <xsl:template match="preis[. < 20]"> Sonderpreis: DM <xsl:value-of select="."/><br/> 53 <xsl:variable name= xyz > Definiert globale und lokale Variablen Lokale Variablen sind nur im jeweiligen Template sichtbar Anwendung erfolgt über $Name. Definition: <xsl:variable name="city">london</xsl:variable> Anwenden: <xsl:value-of select="$city"/> 54

28 <xsl:param name= xyz > Als Top-Level-Element definiert es globale Parameter Innerhalb eines Templates deklariert es lokale Parameter name kennzeichnet den Namen des Parameters Anwenden erfolgt über $Name. -Proz Definition: <xsl:param name="city"> London </xsl:param> Template Anwenden: <xsl:value-of select="$city"/> Template Stylesheet 55 <xsl:with-param name=.. > Übergabe eines Parameters bei <xsl:call-template> oder <xsl:apply-templates> Kann nur als Child von o.g. template-aufrufen auftreten <xsl:call-template name="hauptstadt"> <xsl:with-param name="city">london</xsl:with-param> </xsl:call-template> 56

29 <xsl:attribute name="xyz"> Attribute können auch dynamisch angelegt werden <xsl:template match="cd"> <img> <xsl:attribute name="src"> <xsl:value-of select="titel"/>.jpg </xsl:attribute> </img> <img src="music.jpg"/> 57 Attribute Value Templates Beispiel: Die Quelldatei <bild> <href>blume.jpg</href> <size width="300"/> </bild> Das zugehörige Stylesheet: <xsl:variable name="bild-dir">/images</xsl:variable>... <xsl:template match="bild"> <img src="{$bild-dir}/{href}" Ergebnis: <img src="/images/blume.jpg" width="300"/> 58

30 Anwendung <xsl:variable name="farbe"> <xsl:if test="position() mod 2 = 1">orange</xsl:if> </xsl:variable> 59 Überblick Einführung Stylesheets XPath Advanced Anwendungen PDF Erzeugung Erzeugung von Grafiken Praxis Techniken und Beispiele 60

31 BME-Cat <?xml version="1.0" encoding="iso "?> <BMECAT version="1.2"> <T_NEW_CATALOG> <ARTICLE> <SUPPLIER_AID>GTH </SUPPLIER_AID> <ARTICLE_DETAILS> <DESCRIPTION_SHORT>Injektionspflaster, 1,2cm</DESCRIPTION_SHORT> <MANUFACTURER_NAME>Gothaplast</MANUFACTURER_NAME> <REMARKS>1,2cm * 4cm</REMARKS> </ARTICLE_DETAILS> <ARTICLE_ORDER_DETAILS> <ORDER_UNIT>Paket</ORDER_UNIT> </ARTICLE_ORDER_DETAILS> <ARTICLE_PRICE_DETAILS> <ARTICLE_PRICE type="festpreis"> <PRICE_AMOUNT>18.0</PRICE_AMOUNT> </ARTICLE_PRICE> </ARTICLE_PRICE_DETAILS> </ARTICLE> Erzeugen mehrerer Outputfiles Outputmöglichkeiten mittels <xsl:output method="...">: XML HTML reiner Text (Stringwerte aller Knoten) Erzeugen mehrerer Outputfiles mittels <xsl:document href="...">, wobei href den Pfad angibt (absolut oder relativ), wo das Dokument gespeichert werden soll Es exisitiert ein Hauptdokument, jeder mit <xsl:document href="..."> eingeleitete Abschnitt stellt ein untergeordnetes Dokument dar, es ensteht eine Baumstruktur 62

32 Mehrere Outputs <xsl:for-each select="//article" > <redirect:write file="{generate-id(.)}.html"> <html> <body>... </body> </html> </redirect:write> </xsl:for-each> 63 Verlinkung der Detailansichten <tr style="background:lightgrey"> <td> <a href="{generate-id(preceeding-sibling::article[1])}.html"> vorheriger </a> </td> <td> <a href="{generate-id(following-sibling::article[1])}.html"> nächster </a> </td> </tr> 64

33 Verschiedene Outputs 65 Idee: im Servlet Web Server Servlet Engine Prozessor XML XSL XSL Dokument Sheets XSL XSL XSL Sheets Sheets 66

34 Generierung im Batch Vorteile: Schnelle Bearbeitung von Abrufen Konventioneller Web Server ist ausreichend Robuster im Betrieb Nachteile: Keine dynamische Seitengenerierung 67 Gruppieren in <xsl:for-each select="//interpret[not(.= preceding::interpret)]"> <xsl:for-each select="//cd[interpret=current()]"> Madonna Music Madonna Ray of light Eminem Marshall Mathers Madonna Frozen Britney Spears Baby one more.. Eminem Eminem Madonna Music Ray of light Frozen Eminem Marshall Mathers Eminem Britney Spears Baby one more.. 68

35 CD-Liste gruppieren 69 Keys: Key-Tabellen definieren Quelldokument <xsl:key name="cds" match="cd" use="interpret"/> Stylesheet cds Schlüsseltabelle Schlüssel Knoten Madonna cd Madonna cd Eminem cd Eminem cd Britney Spears cd Eminem cd... cd documentorder 70

36 Verwendung von Key-Tabellen Beispiel: Schleife über Nodeset Nodeset mit allen Knoten zum Schlüssel <xsl:for-each select="key('cds', 'Madonna')">... </xsl:for-each> Name der Key-Tabelle gesuchter String 71 CD-Liste gruppieren 72

37 Identifikation: generate-id() generate-id() weist einem Knoten eine eindeutige ID zu. <xsl:value-of select="generate-id(.)"/> Ausgabe bei Saxon: Music(b1b1b2) Ray of light(b1b1b4) Marshall Mathers(b1b1b6) Eminem(b1b1b8) baby one more time(b1b1c10) 73 Identifikation: Erstes Element finden Bilden der eigenen id Vergleich mit Eintrag aus der Key-Tabelle Nur erster Eintrag wird angezeigt cdliste interpret cd titel cd cd interpret titel cd[generate-id(.)=generate-id(key('cds', interpret))] id von Context-Knoten erste id aus Key-Tabelle 74

38 Gruppieren nach Muench: Beispiel... <xsl:key name="cds" match="cd" use="interpret"/>... <xsl:template match="/"> <xsl:for-each select="//cd[generate-id(.)= generate-id(key('cds', interpret)[1])]"> <xsl:value-of select="interpret"/><br/> <xsl:for-each select="key('cds', interpret)"> Titel: <xsl:value-of select="titel"/><br/> Hersteller: <xsl:value-of select="hersteller"/><br/> </xsl:for-each> <br/> </xsl:for-each> Muench sche Methode: Ausgabe Madonna Titel: Music Hersteller: BMG Titel: Ray of light Hersteller: BMG Eminem Titel: Marshall Mathers Hersteller: Sony Titel: Eminem Hersteller: Sony Britney Spears Titel: Baby one more time Hersteller: Sony 76

39 -Performance Wozu wird genutzt? Kleiner Input Stylesheets vorher übersetzen Prozessorinitialisierung 77 Faustregeln Kein //item mehrfache Nutzung von Nodesets <xsl:number...> preceding, following axes 78

40 -Performance 20 sec/mb Simple optimization 5 sec/mb Advanced optimization 1 sec/mb To day Quelle: Michael Kay: Inside an Processor Performance Verschiedene Implementierungen MSXML Sablotron Saxon TransforMiiX Xalan-Java Xalan-C++ XT Oracle Java Four Thought Sun's C : Lib jd.xslt Infoteria i Benchmarking Quelle:Eugne Kuznetzov, Curys Dolph 80

41 Inkludieren von Stylesheets Erfolgt über <xsl:include href= xyz.xsl"> Ist ein top-level Element Besitzt ein href-attribut mit der entsprechenden URI Bei Inkludierte Template-Rules gibt es keine Unterscheidung nach Prioritäten (im Gegensatz zu Importierten) <xsl:stylesheet version="1.0 xmlns:xsl=..."> <xsl:include href="article.xsl"/> <xsl:include href="bigfont.xsl"/>... </xsl:stylesheet> 81 Importieren von Stylesheets Ist ein top-level Element Besitzt ein href-attribut mit der entsprechenden URI Beim Import mehrerer Stylesheets formt sich ein Importbaum Später importierte Stylesheets haben eine höhere Priorität Selber geschriebene Templates überschreiben importierte <xsl:stylesheet version="1.0 xmlns:xsl=..."> <xsl:import href="article.xsl"/> <xsl:import href="bigfont.xsl"/>... </xsl:stylesheet> 82

42 Modularisierung von Stylesheets <xsl:include href="a.xsl"/> <xsl:import href="b.xsl"/> A XYZ Stylesheet Template B XYZ C XYZ D E F XYZ XYZ XYZ 83 Transformation mehrerer Dokumente Zugriff auf andere XML-Dokumente mittels der Funktion document(...) Als Argument wird ein XML-Dokument übergeben, das die einzufügenden Knoten enthält Eine Erweiterung der XPath-Funktionen Reihenfolge der Knoten abhängig von Implementierung... <xsl:template match="/"> <xsl:value-of select="document('cdliste.xml')"/>... 84

43 Einfügen eines Menues <html><body> <table> <tr> <td valign="top"> <xsl:apply-templates select="document('navigation.xml')/navigation"/> </td> <td> <xsl:apply-templates/> </td> </tr> </table> </body></html> 85 Überblick Einführung Stylesheets XPath Advanced Anwendungen PDF Erzeugung Erzeugung von Grafiken Praxis Techniken und Beispiele 86

44 XSL Formatting Objects XSL-FO stellt die zweite Hälfte der XSL Spec. Final Recommondation seit 15.Oktober 2001 besteht aus 56 definierten FO-Elementen und über 100 Attributen Formatting Objects beheben die Nachteile einer Bildschirmausgabe, die vom Browser o.ä. abhängt und liefert für die Druckausgabe optimierte Dokumente FOP ist eine Implementierung der ASF 87 Aufbau eines FO-Dokuments <fo:root xmlns:fo=" <fo:layout-master-set> <fo:simple-page-master master-name="my-page"> <fo:region-body/> </fo:simple-page-master> </fo:layout-master-set> <fo:page-sequence master-reference="my-page"> <fo:flow flow-name="xsl-region-body"> <fo:block>hier steht Text...</fo:block> </fo:flow> </fo:page-sequence> </fo:root> 88

45 Ausgabe in PDF 89 Überblick Einführung Stylesheets XPath Advanced Anwendungen PDF Erzeugung Erzeugung von Grafiken Praxis Techniken und Beispiele 90

46 Was ist SVG - Scalable Vector Graphics? Standardisiertes Grafikformat Aktueller Stand: SVG 1.0 W3C 4. September D Vektor und mixed Vektor/Raster Grafik XML Anwendung SVG Grafiken können animiert, interaktiv und dynamisch sein 91 SVG Viewer & Editoren Adobe IBM SVG View Apache Batik Project Jasc WebDraw 92

47 Hello World als SVG Beispiel ist eine SVG Grafik Ausrichtung eines Textes an einem Pfad 93 Sourcecode zu Hello World <?xml version="1.0" standalone="no"?> <!DOCTYPE svg PUBLIC "-//W3C//DTD SVG //EN" " <svg width="10cm" height="3cm" viewbox=" "> <defs> <path id="mypath" d="m C C C "/> </defs> <desc>hello World</desc> <use xlink:href="#mypath" style="fill:none; stroke:red" /> <text style="font-family:verdana; font-size:60; fill:blue"> <textpath xlink:href="#mypath"> Hello Scalable Vector Graphics </textpath> </text> </svg> 94

48 Dynamisches SVG 95 Überblick Einführung Stylesheets XPath Advanced Anwendungen PDF Erzeugung Erzeugung von Grafiken Praxis Techniken und Beispiele 96

49 Stylesheet Design-Ansätze nach Kay Fill-in-the-blanks Stylesheet Navigational Stylesheet Rule-Based Stylesheet Computational Stylesheet (Siehe Michael Kay Programmer s Reference Kapitel 8) 97 Fill-in-the-blanks Stylesheet Einfach HTML mit Befehlen Stylesheet gleicht in der Struktur dem Output 98

50 Fill-in-the-blanks Stylesheet: Beispiel <html xmlns:xsl=" xsl:version="1.0"> <head> <title>cd Liste</title> </head> <body> <xsl:for-each select="cdliste/cd"> <b><xsl:value-of select="interpret"/></b> :<xsl:value-of select="titel"/><br/> </xsl:for-each> </body> </html> 99 Fill-in-the-blanks Stylesheet: Ausgabe Ausgabe mit cdliste.xml: Madonna: Music Madonna: Ray of light Eminem: Marshall Mathers Eminem: Eminem Britney Spears: baby one more time 100

51 Navigational Stylesheet Fortführung des Fill-in-the-blanks Stylesheet Output orientiert Kann enthalten Named Templates, Variablen, keys, Conditionals,... Gleicht prozeduralem Programm Enthält xsl:stylesheet und xsl:template Tags Es wird vorgegeben, wo die Knoten im Source gefunden werden können Erfordert starre Struktur des Inputs 101 Navigational Stylesheet: Beispiel <xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:template match="/"> <html><body> <xsl:for-each select="cdliste/cd"> <br/><b><xsl:value-of select="interpret"/></b> <xsl:call-template name="gettitel"> <xsl:with-param name="id" </xsl:call-template> </xsl:for-each> </body></html> <xsl:template name="gettitel"> <xsl:param name="id"/> <xsl:text> </xsl:text><xsl:value-of </xsl:stylesheet> 102

52 Rule-Based Stylesheet Besteht vorwiegend aus Regeln, wie bestimmte Dinge aus der Quelle verarbeitet werden sollen Macht nur wenige Vermutungen über Quelle und Output Anwendung: Bei wenig bekannter oder flexibler Struktur der Quelle Teile können gut wiederverwendet werden 103 Rule-Based Stylesheet <xsl:stylesheet xmlns:xsl=" version="1.0"> <xsl:template match="/"> <html><body> <xsl:apply-templates/> </body></html> <xsl:template match="interpret"> <b><xsl:value-of select="."/></b><br/> <xsl:template match="titel"> <xsl:value-of select="."/> </xsl:stylesheet> 104

53 Computational Stylesheet Struktur der Quelle stimmt nicht mit Output überein Anwendung: Umformatierung, Aggregation Verwendet Anteile der funktionalen Programmierung 105 Exkurs: Funktionale Programmierung Ohne Zuweisungen Zuweisungen erzwingen bestimmten Programmablauf Seiteneffekte werden vermieden Rekursionen ersetzen Schleifen 106

54 Computational Stylesheet: Beispiel Quelle: <keywords>xml XPath XPointer</keywords> Output: <keyword>xml</keyword> <keyword></keyword> <keyword>xpath</keyword> <keyword>xpointer</keyword> 107 Computational Stylesheet: Beispiel Ablauf tokentoelement( XML XPath XPointer ) Ausgabe XML XPath XPointer tokentoelement( XPath XPointer ) Ausgabe XPath XPointer tokentoelement( XPath XPointer ) Ausgabe XPath XPointer Ausgabe tokentoelement( XPointer ) XPointer tokentoelement( ) Abbruch 108

55 Computational Stylesheet: Beispiel Rekursives Template <xsl:template match="keywords" name="tokentoelement"> <xsl:param name="words" select="concat(.,' ')"/> <xsl:choose> <xsl:when test="string-length($words) > 1"> <keyword> <xsl:value-of select="substring-before($words,' ')"/> </keyword> <xsl:call-template name="tokentoelement"> <xsl:with-param name="words" select="substring-after($words,' ')"/> </xsl:call-template> </xsl:when> </xsl:choose> 109 Aufgabe: CDs mit Preis kennzeichnen 110

56 Lösung: Condition & Variable <xsl:template match="cd"> <xsl:variable name="farbe"> <xsl:choose> <xsl:when test="preis">orange</xsl:when> <xsl:otherwise>lightgrey</xsl:otherwise> </xsl:choose> </xsl:variable> <tr style="background: {$farbe}"> <td><xsl:value-of select="titel"/></td> </tr> 111 Lösung: Condition <xsl:template match="cd"> <tr> <xsl:attribute name="style"> background: <xsl:choose> <xsl:when test="preis">orange</xsl:when> <xsl:otherwise>lightgrey</xsl:otherwise> </xsl:choose> </xsl:attribute> <td> <xsl:value-of select="titel"/> </td> </tr> 112

57 Aufgabe: Zusätzlicher Knopf 113 Lösung: Mehrere Conditions <xsl:template match="cd"> <tr> <xsl:attribute name="style"> background: <xsl:choose> <xsl:when test="preis">orange</xsl:when> <xsl:otherwise>lightgrey</xsl:otherwise> </xsl:choose> </xsl:attribute> <td> <xsl:value-of select="titel"/> <xsl:if test="preis"> <input type="button" value="bestellen"/> </xsl:if> </td> </tr> 114

58 Lösung: Overloaded Matchtemplates <xsl:template match="cd"> <tr style="background: lightgrey"> <td><xsl:value-of select="titel"/></td> </tr> <xsl:template match="cd[preis]"> <tr style="background: orange"> <td> <xsl:value-of select="titel"/> <input type="button" value="bestellen"/> </td> </tr> 115 Best Practise: Schleifen Mit Condition: <xsl:for-each select="cd"> <xsl:if <xsl:value-of select="titel"/><br/> </xsl:if> </xsl:for-each> Besser mit Predikat: <xsl:for-each <xsl:value-of select="titel"/><br/> </xsl:for-each> 116

59 Best Practise: Dynamische Attribute Mit Variable: <xsl:variable name= path > <xsl:call-template name="getdirpath"> <xsl:with-param name="node </xsl:call-template> </xsl:variable> <a href= {$path} >Link</a> 117 Best Practise: Dynamische Attribute Besser mit Attribut-Tag: <a> <xsl:attribute name="href"> <xsl:call-template name="getdirpath"> <xsl:with-param name="node </xsl:call-template> </xsl:attribute> Link </a> 118

60 Fragen????? Quellen Specification 1.0 (recommendation) Specification XPath 1.0 (recommendation) Michael Key, - Programmer s Reference WROX -Tutorial ZVON.org XSL Frequently Asked Questions -Tutorial N.Walsh 120

XSLT Muster und Lösungen

XSLT Muster und Lösungen XSLT Muster und Lösungen Thomas Bayer Tobias Kieninger Özgür Kipik bayer@oio.de Orientation in Objects GmbH Weinheimer Str. 68 68309 Mannheim www.oio.de Inhalt Einleitung XSL & XSLT XPath XML Pattern XSLT

Mehr

Projektseminar "Texttechnologische Informationsmodellierung"

Projektseminar Texttechnologische Informationsmodellierung Projektseminar "Texttechnologische Informationsmodellierung" Formatierung und Transformation http://www.text-technology.de/projects/sekimo.html Ziel dieser Sitzung Nach dieser Sitzung sollten Sie: XPath

Mehr

Inhalt des Moduls: Grundlagen. Vorlagen. Kontrollstrukturen. Ausgabestrukturen. Parameter und Variablen. Dateibasierte Auslagerung

Inhalt des Moduls: Grundlagen. Vorlagen. Kontrollstrukturen. Ausgabestrukturen. Parameter und Variablen. Dateibasierte Auslagerung XSLT Inhalt des Moduls: Grundlagen Vorlagen Kontrollstrukturen Ausgabestrukturen Parameter und Variablen Dateibasierte Auslagerung Grundlagen XSLT (extensible Stylesheet Language for Transformations) ist

Mehr

XSL Transformation. Eine praxisorientierte Einführung Philip Heck

XSL Transformation. Eine praxisorientierte Einführung Philip Heck XSL Transformation Eine praxisorientierte Einführung Philip Heck Agenda Motivation Hello World - Getting Started with XSLT XSLT Verarbeitung im Detail XPath 2 Motivation datenzentriertes XML als Standard

Mehr

Eine Schnelleinführung in XSL

Eine Schnelleinführung in XSL Eine Schnelleinführung in XSL Michael Dienert 8. Juli 2014 1 Was ist XSL? XSL ist die Abkürzung von Extensible Stylesheet Language. XSL ist selbst wieder eine XML-Anwendung, d.h. XSL-Dokumente müssen immer

Mehr

Seminar Dokumentenverarbeitung

Seminar Dokumentenverarbeitung XPath und XSL/XSLT Seminar Dokumentenverarbeitung Juni 2002 Jan-Gerrit Drexhage jdrexhag@techfak.uni-bielefeld.de Garvin Gripp ggripp@techfak.uni-bielefeld.de 1 XSLT extensible Stylesheet Language (for

Mehr

XSLT XSL Transformations

XSLT XSL Transformations XML-Praxis XSLT XSL Transformations Teil 2 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht weitere XSLT-Techniken: Bedingungen, Verzweigungen Schleifen templates aufrufen Variablen, Parameter Anwendungsbeispiel

Mehr

XSL Transformation (XSLT) Teil II

XSL Transformation (XSLT) Teil II XML Vorlesung FH Aargau, SS 2006 XSL Transformation (XSLT) Teil II Erik Wilde 19.6.2006 http://dret.net/lectures/xml-fhnw-ss06/ 19.6.2006 XML Vorlesung FHA SS 2006 1 Übersicht Conflict Resolution Variablen

Mehr

XML Vorlesung FHA SS

XML Vorlesung FHA SS XML Vorlesung FH Aargau, SS 2006 XSL Transformation (XSLT) Teil II Erik Wilde 19.6.2006 Übersicht Conflict Resolution Variablen und Parameter Sortieren Erzeugen des Ausgabebaumes XPath Erweiterungen um

Mehr

XSLT XSL Transformations

XSLT XSL Transformations XML-Praxis XSLT XSL Transformations Teil 2 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht weitere XSLT-Techniken: Bedingungen, Verzweigungen Schleifen templates aufrufen Variablen, Parameter Anwendungsbeispiel

Mehr

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen XML-Praxis Mit XSLT arbeiten Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Kontrollstrukturen Bedingungen Schleifen named templates Variablen und Parameter Rekursion XML-Praxis Mit XSLT arbeiten

Mehr

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen XML-Praxis Mit XSLT arbeiten Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Kontrollstrukturen Bedingungen Schleifen named templates Variablen und Parameter Rekursion XML-Praxis Mit XSLT arbeiten

Mehr

Extensible Stylesheet Language Transformations XSLT

Extensible Stylesheet Language Transformations XSLT Extensible Stylesheet Language Transformations XSLT 13.06.2007 Grundlagen der Stylesheets XSLT Extensible Stylesheet Language Transformation Transformation Überführt XML-Daten in ein neues Format wieder

Mehr

Transformation von XML-Dokumenten mit XSLT

Transformation von XML-Dokumenten mit XSLT Transformation von XML-Dokumenten mit XSLT Fabian Holzer Proseminar XML - Grundlagen, Verarbeitung und Anwendungen Institut für Programmstrukturen und Datenorganisation (IPD) Lehrstuhl für Systeme der

Mehr

Einführung. Hallo-Welt in XSLT

Einführung. Hallo-Welt in XSLT 2. Vorlagen-Technik Inhalt 1. Einführung 2. Vorlagen 3. XPath 4. Kontrollstrukturen 5. Sortierung, Gruppierung und Nummerierung 6. Parameter und Variablen 7. Vorgaben für Ein- und Ausgabeformate 8. Auslagerung

Mehr

Wege zur Anzeige. XSL die extensible Stylesheet Language. Wege zur Anzeige. Folie 1. Institut für Dokumentologie und Editorik

Wege zur Anzeige. XSL die extensible Stylesheet Language. Wege zur Anzeige. Folie 1. Institut für Dokumentologie und Editorik XSL die extensible Stylesheet Language Folie 1 Spring School 14. bis 18. März 2011 Einführung - Warum XML? Warum TEI? Trennung von Form und Inhalt Eine Quelle, viele verschiedene Ausgabeformate - Standardstylesheets

Mehr

XSLT für SAP NetWeaver Process Integration. Transformationssprache für XML Dokumente

XSLT für SAP NetWeaver Process Integration. Transformationssprache für XML Dokumente XSLT für SAP NetWeaver Process Integration Transformationssprache für XML Dokumente Entwicklung und Laufzeit Datenebene Metadatenebene Generieren Generieren Entwicklung ORDERS02 IDocXML Schema Validieren

Mehr

XSLT 2015/2016 S Seite 1 h_da W

XSLT 2015/2016 S Seite 1 h_da W XSLT Seite 1 XSL / XSLT xsltransformation ::= stylesheet stylesheet ::= template* template pattern ::= pattern, content_constructor ::= patternpath Content_constructor ::= literal_result_element instruction

Mehr

XSLT XSL Transformations

XSLT XSL Transformations XML-Praxis XSLT XSL Transformations Teil 1 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Namespaces XPath einfache XSLT-Stylesheets template rules default rules XML-Praxis XSLT XSL Transformations,

Mehr

XSLT IDE AUTUMN SCHOOL

XSLT IDE AUTUMN SCHOOL 1 Was ist das? (Extensible Stylesheet Language Transformation) ist eine Transformationssprache für XML- Dokumente. 2 Was ist das? W3C-Recommendation: http://www.w3.org/style/xsl/ W3C-Standard seit 1999,

Mehr

XSL Transformations (XSLT) Teil II

XSL Transformations (XSLT) Teil II XML Vorlesung ETHZ, Sommersemester 2006 XSL Transformations (XSLT) Teil II Erik Wilde 6.6.2006 http://dret.net/lectures/xml-ss06/ 6.6.2006 XML Vorlesung ETHZ SS 2006 1 Übersicht Conflict Resolution Variablen

Mehr

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen.

XML-Praxis. Mit XSLT arbeiten. Jörn Clausen. XML-Praxis Mit XSLT arbeiten Jörn Clausen joern@techfak.uni-bielefeld.de 1 Übersicht Kontrollstrukturen Bedingungen Schleifen named templates Variablen und Parameter Rekursion 2 Bedingungen Datum nur ausgeben,

Mehr

XSLT XSL Transformations

XSLT XSL Transformations XML-Praxis XSLT XSL Transformations Teil 1 Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Namespaces XPath einfache XSLT-Stylesheets template rules default rules XML-Praxis XSLT XSL Transformations,

Mehr

Einführung in XML. Seminarunterlage. Version 3.05 vom

Einführung in XML. Seminarunterlage. Version 3.05 vom Seminarunterlage Version: 3.05 Version 3.05 vom 8. März 2017 Dieses Dokument wird durch die veröffentlicht.. Alle Rechte vorbehalten. Alle Produkt- und Dienstleistungs-Bezeichnungen sind Warenzeichen oder

Mehr

XML. XML-Verarbeitung mittels XSL

XML. XML-Verarbeitung mittels XSL XML-Einführung XML u n i XML-Verarbeitung mittels XSL Dr. Eckhardt Schön TU Ilmenau Institut für Medientechnik, FG Audiovisuelle Technik Inhalt XML-Wiederholung / Beispiel XSLT-Verarbeitungskonzept Szenarien

Mehr

XML-Praxis.

XML-Praxis. XML-Praxis Einführung in XSLT Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Extensible Stylesheet Language XSL XSL Transformations XSLT templates Verarbeitung steuern XML-Praxis Einführung in XSLT

Mehr

XML-Praxis. Einführung in XSLT. Jörn Clausen

XML-Praxis. Einführung in XSLT. Jörn Clausen XML-Praxis Einführung in XSLT Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Extensible Stylesheet Language XSL XSL Transformations XSLT templates Verarbeitung steuern XML-Praxis Einführung in XSLT

Mehr

XSL und XSLT. Inhalt. Mathias Heilig email: mathias.heilig@gmx.de. XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee

XSL und XSLT. Inhalt. Mathias Heilig email: mathias.heilig@gmx.de. XSL Übersicht. Formatierungsprozess. Sprachbeschreibung. Vorführung Resümee Mathias Heilig email: mathias.heilig@gmx.de Inhalt XSL Übersicht XSL im XML- Umfeld XSLT XPath XSL- FO Was können wir mit XSLT heute machen? Formatierungsprozess XSLT im XML- Formatierungsprozess Transformation

Mehr

XSL Transformationen. -Teil 2 - Schwerpunkt: Templates und Kontrollstrukturen. XSL Transformationen - Teil 2 Christina Krieglstein / 66

XSL Transformationen. -Teil 2 - Schwerpunkt: Templates und Kontrollstrukturen. XSL Transformationen - Teil 2 Christina Krieglstein / 66 XSL Transformationen -Teil 2 - Schwerpunkt: Templates und Kontrollstrukturen / 66 Gliederung 1. Templates 1.1 Allgemeine Informationen 1.2 match-attribut 1.3 Eingebaute Template Rules 1.4 xsl:apply-templates

Mehr

Konzept und Realisierung Extensible Stylesheet Language

Konzept und Realisierung Extensible Stylesheet Language Konzept und Realisierung Extensible Stylesheet Language Hauptseminar Telematik SS2002 Kai Weber XSL/XSLT 1 Inhalt des Vortrages Wozu dienen Stylesheets Vorstellung der XSL-Sprachfamilie Transformationen

Mehr

Inhalte. Stylesheet-Wurzel Vorlagen Ausgabe Leerraum Funktionen Kontrollanweisungen & Techniken Sortierung Nummerierung

Inhalte. Stylesheet-Wurzel Vorlagen Ausgabe Leerraum Funktionen Kontrollanweisungen & Techniken Sortierung Nummerierung XSLT Inhalte Stylesheet-Wurzel Vorlagen Ausgabe Leerraum Funktionen Kontrollanweisungen & Techniken Sortierung Nummerierung Gruppierung XML-Erstellung Variablen und Parameter Module kombinieren Reguläre

Mehr

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001 9. Mediendokumente 9.1 Generische Auszeichnungssprachen: XML 9.2 XML und Style Sheets 9.3 XML für Multimedia: SMIL 9.4 XML Transformationen: XSLT Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design

Mehr

Auszug aus: Helmut Vonhoegen: Einstieg in XML, 3. Auflage, Galileo Press 2005

Auszug aus: Helmut Vonhoegen: Einstieg in XML, 3. Auflage, Galileo Press 2005 Kurzreferenz zu XSLT Auszug aus: Helmut Vonhoegen: Einstieg in XML, 3. Auflage, Galileo Press 2005 Diese Anweisung sorgt dafür, dass auf den aktuellen Knoten nur die in das Stylesheet

Mehr

APEX und Apache FOP Freie PDF-Erstellung mit APEX 3.0.1

APEX und Apache FOP Freie PDF-Erstellung mit APEX 3.0.1 APEX und Apache FOP Freie PDF-Erstellung mit APEX 3.0.1 Dr. Gudrun Pabst Basel Baden Bern Lausanne Zürich Düsseldorf Frankfurt/M. Freiburg i. Br. Hamburg München Stuttgart Agenda Kürzel: XML, XSL, XSLT,

Mehr

XSL. extended Stylesheet Language. Die Stylesheet Sprache für XML

XSL. extended Stylesheet Language. Die Stylesheet Sprache für XML XSL extended Stylesheet Language Die Stylesheet Sprache für XML XPath www.w3.org/tr/xpath Adressierung Die Templates im Stylesheet können nur dann richtig (an der richtigen Stelle) angewandt werden, wenn

Mehr

XSLT. h_da SS Seite 1

XSLT. h_da SS Seite 1 XSLT Seite 1 Inhalt Beispiele Xquery Einleitung XSLT Arbeitsweise von XSLT Template-Anweisungen XSLT Syntax Beispiele Seite 2 Aufbau eines XQL Dokuments Module ::= VersionDecl? MainModule Beispiele für

Mehr

Verteilte Anwendungen. Teil 8: XSL II (XSLT)

Verteilte Anwendungen. Teil 8: XSL II (XSLT) Verteilte Anwendungen Teil 8: XSL II (XSLT) 27.10.16 1 Literatur [8-1] Bongers, Frank: XSLT 2.0. Galileo, 2004 [8-2] Skulschus, Marco; Wiederstein, Marcus: XSLT 2.0. mitp, 2005 [8-3] Lenz,Evan: XSLT 1.0

Mehr

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001 9. Mediendokumente 9.1 Generische Auszeichnungssprachen: XML 9.2 XML und Style Sheets 9.3 XML für Multimedia: SMIL 9.4 XML Transformationen: XSLT Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design

Mehr

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001 9. Mediendokumente 9.1 Generische Auszeichnungssprachen: XML 9.2 XML und Style Sheets 9.3 XML für Multimedia: SMIL 9.4 XML Transformationen: XSLT Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design

Mehr

XSL Transformations (XSLT) Teil I

XSL Transformations (XSLT) Teil I XML Vorlesung ETHZ, Sommersemester 2006 XSL Transformations (XSLT) Teil I Erik Wilde 30.5.2006 http://dret.net/lectures/xml-ss06/ Übersicht Herkunft von XSLT XSLT aus der Ferne betrachtet Template Rules

Mehr

XML Vorlesung FHA SS

XML Vorlesung FHA SS XML Vorlesung FH Aargau, SS 2006 XSL Transformations (XSLT) Teil I Erik Wilde 12.6.2006 http://dret.net/lectures/xml-fhnw-ss06/ Übersicht 8 30 9 30 : Test (XML Schema) Herkunft von XSLT XSLT aus der Ferne

Mehr

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001

Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design mit XML, dpunkt-verlag 2001 9. Mediendokumente 9.1 Generische Auszeichnungssprachen: XML 9.2 XML und Style Sheets 9.3 XML für Multimedia: SMIL 9.4 XML Transformationen: XSLT Weiterführende Literatur: M. Knobloch, M. Kopp: Web-Design

Mehr

Web (Site) Engineering (WebSE)

Web (Site) Engineering (WebSE) 1 / 22 Web (Site) Engineering (WebSE) Vorlesung 6: Tools und Programmierung B. Schiemann, P. Reiß Lehrstuhl für Informatik 8 Universität Erlangen-Nürnberg 29.11.2005 2 / 22 Übersicht XML-Beispiel Zugriff

Mehr

Druckvorlage mit XSL FO

Druckvorlage mit XSL FO Druckvorlagen mit XSL FO Schulung ist als Spezialisierung des Themas Transformation konzipiert Schulung ist als Einführung in das Thema Formatting Objects konzipiert Übungsmaterialien für die Schulung

Mehr

XSLT: Transformation von XML

XSLT: Transformation von XML namics Developer Days 21./22.6.2002 XSLT: Transformation von XML Erik Wilde ETH Zürich http://dret.net/netdret/ 21.6.2002 namics DevDays XSLT 1 Übersicht XML als Format für strukturierte Daten Zugriff

Mehr

Web Technologien XML, XQuery, XPath und XSLT

Web Technologien XML, XQuery, XPath und XSLT Web Technologien XML, XQuery, XPath und XSLT Univ.-Prof. Dr.-Ing. Wolfgang Maass Chair in Information and Service Systems Department of Law and Economics WS 2011/2012 Wednesdays, 8:00 10:00 a.m. Room HS

Mehr

Übersicht. Web (Site) Engineering (WebSE) XML-Beispieldokument. Simple API for XML (SAX) [Pro] XML-Beispiel. Vorlesung 6: Tools und Programmierung

Übersicht. Web (Site) Engineering (WebSE) XML-Beispieldokument. Simple API for XML (SAX) [Pro] XML-Beispiel. Vorlesung 6: Tools und Programmierung Übersicht Web (Site) Engineering (WebSE) Vorlesung 6: Tools und Programmierung XML-Beispiel B. Schiemann, P. Reiß Lehrstuhl für Informatik 8 Universität Erlangen-Nürnberg 29.11.2005 Zugriff auf Inhalt,

Mehr

Transformation von XML-Dokumenten. IDE SummerSchool 2013, Chemnitz

Transformation von XML-Dokumenten. IDE SummerSchool 2013, Chemnitz Transformation von XML-Dokumenten Folie 1 Was ist XSL politisch? XSL ist eine eigene Technik. Zum Publizieren (Transformieren) von Dokumenten. Früher gab es dafür Verlage und Schriftsetzer, um gute Inhalte

Mehr

XML-Praxis.

XML-Praxis. XML-Praxis Einführung in XSLT Jörn Clausen joern@techfak.uni-bielefeld.de 1 Übersicht Extensible Stylesheet Language XSL XSL Transformations XSLT templates Verarbeitung steuern 2 XML Und dann? XML beschreibt

Mehr

http://www.therealgang.de/ Titel : Einführung in XML (Teil 2/2) Author : Dr. Pascal Rheinert Kategorie : Programmierung-Sonstige Teil II: XML (Dokument 2/2) Wichtiger Hinweis: Das folgende Dokument basiert

Mehr

4. Kontrollstrukturen

4. Kontrollstrukturen 4. Kontrollstrukturen Inhalt 1. Einführung 2. Vorlagen 3. XPath 4. Kontrollstrukturen 5. Sortierung, Gruppierung und Nummerierung 6. Parameter und Variablen 7. Ein- und Ausgabeformate 8. Auslagerung und

Mehr

XSL Transformations (XSLT) Teil III

XSL Transformations (XSLT) Teil III XML Vorlesung ETHZ, Sommersemester 2006 XSL Transformations (XSLT) Teil III Erik Wilde 13.6.2006 http://dret.net/lectures/xml-ss06/ 13.6.2006 XML Vorlesung ETHZ SS 2006 1 Übersicht Tips und Tricks Mengenoperationen

Mehr

Texttransformation mit XSLT

Texttransformation mit XSLT Texttransformation mit XSLT Ulrike Henny, ulrike.henny@uni-wuerzburg.de 8. September 2016 Zentrum für Informationsmodellierung Austrian Centre for Digital Humanities Elisabethstraße 59/III, SR 81.31 1

Mehr

Grundlagen der Extensible Stylesheet Language

Grundlagen der Extensible Stylesheet Language Grundlagen der Extensible Stylesheet Language Transformations (XSLT) Marc Monecke monecke@informatik.uni-siegen.de Praktische Informatik Fachbereich Elektrotechnik und Informatik Universität Siegen, D-57068

Mehr

bitflux CMS ein crossmedia-fähiges opensource System ein Vortrag von Marcel Linnenfelser

bitflux CMS ein crossmedia-fähiges opensource System ein Vortrag von Marcel Linnenfelser bitflux CMS 1 bitflux CMS ein crossmedia-fähiges opensource System ein Vortrag von Marcel Linnenfelser bitflux CMS 2 0 Gliederung Einführung Verwendete Technologien Architektur GUI Zusammenfassung Bewertung

Mehr

10.5 Extensible Stylesheet Language (XSL)

10.5 Extensible Stylesheet Language (XSL) 10.5 Extensible Stylesheet Language (XSL) Was ist ein Stylesheet? Spezifikation der Formatierung eines XML-Dokuments. Wozu dient XSL? XSLT Transformation von XML-Dokumenten XSL-FO vordefinierte Formatierungskomponenten

Mehr

Musterlösung des Übungsblattes 4

Musterlösung des Übungsblattes 4 Musterlösung des Übungsblattes 4 1 Beispieltransformation beginning XML hunter et al. chap.

Mehr

Kurzeinführung in XML. Was ist XML? Well-formed u. gültiges XML Erste Anwendung in XML Externe DTD Attribute und Entities Datenausgabe mit XSL

Kurzeinführung in XML. Was ist XML? Well-formed u. gültiges XML Erste Anwendung in XML Externe DTD Attribute und Entities Datenausgabe mit XSL Kurzeinführung in XML Was ist XML? Well-formed u. gültiges XML Erste Anwendung in XML Externe DTD Attribute und Entities Datenausgabe mit XSL Was ist XML? XML steht für Extensible Markup Language XML ist

Mehr

XSL Transformations (XSLT) Teil III

XSL Transformations (XSLT) Teil III XML Vorlesung ETHZ, Sommersemester 2006 XSL Transformations (XSLT) Teil III Erik Wilde 13.6.2006 http://dret.net/lectures/xml-ss06/ Übersicht Tips und Tricks Mengenoperationen in XPath Keys Modularisierung

Mehr

XSLT extensible Stylesheet Language Transformation

XSLT extensible Stylesheet Language Transformation XSLT extensible Stylesheet Language Transformation Seite 1 Inhaltsverzeichnis 1. Was ist XSLT 3 1.1. Vorteile von XSLT 3 1.2 Anwendungen von XSL 3 2. Ablauf einer XSLT Transformation 4 2.1. Xalan und Xerces

Mehr

XSLT 07. G. Görz, J. Schneeberger Lehrstuhl Informatik 8 (KI)

XSLT 07. G. Görz, J. Schneeberger Lehrstuhl Informatik 8 (KI) XSLT 07 G. Görz, J. Schneeberger Lehrstuhl Informatik 8 (KI) goerz@informatik.uni-erlangen.de josef.schneeberger@fh-deggendorf.de 1 Quelle Weitgehend entnommen aus: Anders Møller, Michael I. Schwartzbach

Mehr

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER

Dirk Ammelburger XML. Grundlagen der Sprache und Anwendungen in der Praxis HANSER Dirk Ammelburger XML Grundlagen der Sprache und Anwendungen in der Praxis HANSER r 1 Einleitung 2 1.1 Über dieses Buch 3 1.2 Für wen ist das Buch gedacht? 4 1.3 Wie ist das Buch aufgebaut? 5 1.4 Konventionen

Mehr

Erstellen von PDF-Dokumenten für Business-Anwendungen mit XSL-FO

Erstellen von PDF-Dokumenten für Business-Anwendungen mit XSL-FO Erstellen von PDF-Dokumenten für Business-Anwendungen mit XSL-FO Ich über mich Rudi Gast (rgast@ghs-software.de) seit 2000 angestellt bei der GHS Tätigkeiten: Projektleitung Softwareentwicklung F&E ca.

Mehr

XSL-FO XSL Formatting Objects

XSL-FO XSL Formatting Objects XML-Praxis XSL-FO XSL Formatting Objects Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht Funktionsweise von XSL-FO Seitendefinitionen Areas block- und inline-elemente Fonts XSLT und XSL-FO XML-Praxis

Mehr

Cocoon 2. Inhalt. XML-basierte Web Entwicklung mit Cocoon Orientation in Objects GmbH. XML-basierte Web Entwicklung mit Cocoon 2

Cocoon 2. Inhalt. XML-basierte Web Entwicklung mit Cocoon Orientation in Objects GmbH. XML-basierte Web Entwicklung mit Cocoon 2 Cocoon 2 Inhalt XML based Webpublishing Konfiguration mit Sitemap Dynamische Seiten Request, Sessions & Parameter Logicsheets Beispiel Anwendungsentwicklung Das Pipelinemodell im Detail Datenbank Zugriff

Mehr

FileMaker Konferenz 2010 XML / XSLT. Ein Workshop mit [x] cross solution Armin Egginger

FileMaker Konferenz 2010 XML / XSLT. Ein Workshop mit [x] cross solution Armin Egginger XML / XSLT Ein Workshop mit [x] cross solution Armin Egginger [x] cross solution Armin Egginger - Zertifizierter FileMaker Entwickler Urheber von CrossCheck Netzwerk von Datenbankprogrammierern Kunden

Mehr

XML-Praxis XSL-FO. Jörn Clausen.

XML-Praxis XSL-FO. Jörn Clausen. XML-Praxis XSL-FO Jörn Clausen joern@techfak.uni-bielefeld.de 1 Übersicht XSL Formatting Objects Seitendefinitionen Blöcke und Inlines 2 Eigenschaften von XSL-FO zweiter Teil von XSL (neben XSLT) XML-Sprache

Mehr

XML. XML-Abfrage- und Transformationssprachen. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

XML. XML-Abfrage- und Transformationssprachen. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen XML-Abfragesprachen XML-Schemasprachen DTD XML-Schema... XPath XQuery XML XML-Transformationssprache XSLT Relationale DBMS XML in DBMS Dedizierte XML-DBMS 86 XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

Mehr

XML. XML-Datenmodellierung / XML-Schemasprachen. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen

XML. XML-Datenmodellierung / XML-Schemasprachen. XPath DTD. XQuery. XML-Schema XSLT XML-Grundlagen, -Sprachen, -Datenhaltungsfragen XML-Datenmodellierung / XML-Schemasprachen XML-Abfragesprachen XML-Schemasprachen DTD XML-Schema... XPath XQuery XML XML-Transformationssprache XSLT Relationale DBMS XML in DBMS Dedizierte XML-DBMS 83

Mehr

Agenda. 1. Was können wir mit XSLT alles machen? 1. Beispiele: 1. Webseiten 2. Textprozessierung 3. Datenbankabfragen

Agenda. 1. Was können wir mit XSLT alles machen? 1. Beispiele: 1. Webseiten 2. Textprozessierung 3. Datenbankabfragen Agenda 1. Was können wir mit XSLT alles machen? 1. Beispiele: 1. Webseiten 2. Textprozessierung 3. Datenbankabfragen 4. 2. Theorie 1. XML 2. XPath + Übung 3. XSLT 4. Wie verhalten sich beide zueinander?

Mehr

artikel.dtd: Document Type Definition mit der Strukturbeschreibung artikel.xml: XML-Datei mit den durch Tags markierten Daten.

artikel.dtd: Document Type Definition mit der Strukturbeschreibung artikel.xml: XML-Datei mit den durch Tags markierten Daten. 9.7. XML 135 9.7 XML Die erweiterte Markupsprache XML (extensible Markup Language) ist ein vom World-Wide-Web- Konsortium (W3C) vorgeschlagener Dokumentenverarbeitungsstandard. XML ermöglicht dem Benutzer

Mehr

XSL - Extensible Stylesheet Language

XSL - Extensible Stylesheet Language XSL - Extensible Stylesheet Language XML-Daten transformieren und präsentieren Michael Dienert 10. November 2014 Inhaltsverzeichnis 1 Was ist XSL 1.1 XML Stylesheet Language XSL ist die Abkürzung von Extensible

Mehr

XSLT, XSL-FO Transformieren und Formatieren

XSLT, XSL-FO Transformieren und Formatieren Fachhochschule Wiesbaden - Fachbereich DCSM XSLT, XSL-FO Transformieren und Formatieren http://www.w3.org/tr/xslt, http://www.w3.org/tr/xsl 08.06.2009 2004, 2009 H. Werntges, SB Informatik, FB DCSM, FH

Mehr

XML-Praxis. XPath. Jörn Clausen

XML-Praxis. XPath. Jörn Clausen XML-Praxis XPath Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht XPath Namespaces XML-Praxis XPath 2/34 XML-Dokument als Baum weitere Text-Knoten durch whitespace Aufgabe: lokalisiere einen (oder

Mehr

XML-Praxis XSL-FO. Jörn Clausen

XML-Praxis XSL-FO. Jörn Clausen XML-Praxis XSL-FO Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht XSL Formatting Objects Seitendefinitionen Blöcke und Inlines XML-Praxis XSL-FO 2/27 Eigenschaften von XSL-FO zweiter Teil von XSL

Mehr

Projektseminar "Texttechnologische Informationsmodellierung"

Projektseminar Texttechnologische Informationsmodellierung Projektseminar "Texttechnologische Informationsmodellierung" Analyse mit XSLT Ziel diese Sitzung Nach dieser Sitzung sollten Sie: Einen ersten Überblick über Funktionen in XPath haben Stylesheets und Templates

Mehr

7.2.2 Spezifikation einer Treffermenge

7.2.2 Spezifikation einer Treffermenge 7.2.2 Spezifikation einer Treffermenge Das Ergebnis der Auswertung eines XPath Ausdrucks (Version 1.0) ist eine Liste von Knoten. Folgende Schritte sind bei einer Anfrage auszuführen: 1.) Festlegung des

Mehr

XSLT. Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme

XSLT. Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme XSLT Prof. Dr.-Ing. Robert Tolksdorf Freie Universität Berlin Institut für Informatik Netzbasierte Informationssysteme tolk@ag-nbi.de Wie geht es weiter? letzte Woche Navigation & Verknüpfungen mit XPath

Mehr

XML-Praxis. XPath. Jörn Clausen

XML-Praxis. XPath. Jörn Clausen XML-Praxis XPath Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht XPath Namespaces XML-Praxis XPath 2/34 XML-Dokument als Baum root presentation status date author toc ilist weitere Text-Knoten durch

Mehr

3. Seiten- und Seiten(verlaufs)vorlagen

3. Seiten- und Seiten(verlaufs)vorlagen 3. Seiten- und Seiten(verlaufs)vorlagen Inhalt 1. Einführung 2. Architektur 3. Vorlagen 4. Blöcke 5. Tabellen 6. Listen 7. Textformatierung 8. Grafik und Farbe 9. Buch-Erstellung Elementübersicht Vorstellung

Mehr

Semistrukturierte Daten

Semistrukturierte Daten Semistrukturierte Daten 7. XSLT Semistrukturierte Daten XSLT Stefan Woltran Institut für Informationssysteme Technische Universität Wien Sommersemester 2011 Stefan Woltran Seite 1 Semistrukturierte Daten

Mehr

XSLT, XSL-FO Transformieren und Formatieren

XSLT, XSL-FO Transformieren und Formatieren Fachhochschule Wiesbaden - Fachbereich Informatik XSLT, XSL-FO Transformieren und Formatieren http://www.w3.org/tr/xslt, http://www.w3.org/tr/xsl 24.06.2003 H. Werntges, FB Informatik, FH Wiesbaden 1 Fachhochschule

Mehr

Semistrukturierte Daten

Semistrukturierte Daten Semistrukturierte Daten 8. XSLT Semistrukturierte Daten XSLT Stefan Woltran Emanuel Sallinger Institut für Informationssysteme Technische Universität Wien Sommersemester 2014 Stefan Woltran, Emanuel Sallinger

Mehr

Vorlesung Datenbanken II SS 2006

Vorlesung Datenbanken II SS 2006 Vorlesung Datenbanken II SS 2006 1 Vorlesung Datenbanken II SS 2006 Sven Wachsmuth, Technische Fakultät, AG Angewandte Informatik Vorlesung Datenbanken II SS 2006 2 4.2.2 XML-Anfragesprachen Konzepte von

Mehr

XSLT, XSL-FO Transformieren und Formatieren

XSLT, XSL-FO Transformieren und Formatieren XSLT, XSL-FO Transformieren und Formatieren http://www.w3.org/tr/xslt, http://www.w3.org/tr/xsl Übersicht zu XSL XSL: Extensible Stylesheet Language Ziel: Darstellung eines XML-Dokuments (Erzeugung von

Mehr

XML-Praxis XSL-FO. Jörn Clausen

XML-Praxis XSL-FO. Jörn Clausen XML-Praxis XSL-FO Jörn Clausen joern@techfak.uni-bielefeld.de Übersicht XSL Formatting Objects Seitendefinitionen Blöcke und Inlines XML-Praxis XSL-FO 2/27 Eigenschaften von XSL-FO zweiter Teil von XSL

Mehr

Sonnige Aussichten. > Quellcode Der Quellcode zum Artikel befindet sich auf der beiliegenden CD. Einführung in XML und XSLT, Teil 2: Ein starkes Team?

Sonnige Aussichten. > Quellcode Der Quellcode zum Artikel befindet sich auf der beiliegenden CD. Einführung in XML und XSLT, Teil 2: Ein starkes Team? Sonnige Aussichten Einführung in, Teil 2: Ein starkes Team? Die leistungsfähige Verarbeitung von XML-Dokumenten mit XSLT-Stylesheets wird oft als Grund genannt, warum sich XML im Gegensatz zu seinem Vorgänger

Mehr

Inhaltsverzeichnis. Vorwort... 15

Inhaltsverzeichnis. Vorwort... 15 Vorwort..................................................... 15 Kapitel 1 Was ist XML?..................................... 17 1.1 Eine kurze Geschichte von XML.............. 18 1.1.1 Die Anfänge:»Generic

Mehr

XSL-Formatting Objects.

XSL-Formatting Objects. XSL-FO XSL-Formatting Objects http://www.w3.org/tr/xsl11/ Das Umfeld XSL-FO... bildet zusammen mit XSLT und XPath die XSL (extensible Stylesheet Language)... ist eine XML Applikation... definiert das visuelle

Mehr

XSLT. Heutige Vorlesung. Warum XML-Dokumente transformieren? XSLT zur Transformation von XML-Dokumenten XSL-FO zur Erzeugung von druckfähigem Layout

XSLT. Heutige Vorlesung. Warum XML-Dokumente transformieren? XSLT zur Transformation von XML-Dokumenten XSL-FO zur Erzeugung von druckfähigem Layout XSLT 1 Heutige Vorlesung Warum XML-Dokumente transformieren? XSLT zur Transformation von XML-Dokumenten XSL-FO zur Erzeugung von druckfähigem Layout 2 Warum XML-Dokumente transformieren? Trennung Inhalt

Mehr