XSL und XSLT

Werbung
XSL und XSLT
Mathias Heilig
eMail: [email protected]
XSL und XSLT
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
ƒ Sprachbeschreibung
– Templates
– Strukturierte Anweisungen
– Erzeugung von Knoten
ƒ Vorführung
ƒ Resümee
2
XSL und XSLT
XSL im XML Umfeld
3
XSL und XSLT
Was ist XSL?
XSL (eXtensible Stylesheet Language) ist eine Sprachfamilie zur
Erzeugung von Layouts aus XML- Dokumenten.
XSL wird mit Hilfe von XML definiert .(keine eigene Syntax)
Zu XSL gehören:
ƒ das XML-basierte XSLT für die Transformation eines beliebigen
XML-Dokuments in einen anderen Baum.
ƒ das XSL-FO (XSL Formatting Objects) für die Beschreibung eines
Dokuments als Baum mit Formatierungsanweisungen und
Stilangaben.
ƒ Und XPath für die Adressierung von Baumbestandteilen.
4
XSL und XSLT
XSLT - Transformation
ƒ XML wurde konzipiert, um Daten zu strukturieren.
ƒ längere oder komplexere XML-Dateien sind schwer zu lesen.
ƒ Überführung der Struktur eines Quelldokuments in Syntax und
Semantik des Zielformats.
5
XSL und XSLT
XPath
XPath (XML Path Language) ist eine Abfrage-Sprache, um Teile eines
XML-Dokumentes zu adressieren.
XPath betrachtet, ähnlich dem DOM XML-Dokumente als Baumstruktur.
XPath wird nicht nur von XSLT, sondern auch von anderen
Werkzeugen benutzt (z.B. Xlink / Xpointer, Abfragesprache in XMLDatenbanken)
6
XSL und XSLT
Zugriffsarten von XPath
.
..
/
*
@name
@*
node[1]
node[@value = ".."]
node1//node2
text()
()
Der aktuelle Knoten
Der übergeordnete Knoten
Der Wurzelknoten
Alle Elemente
Alle name-Attribute
Alle Attribute
Alle node-Elemente, die das erste nodeElement ihres übergeordneten Elements
sind
Alle node-Elemente, die ".." als valueAttribut haben
Alle node2-Elemente unterhalb eines
node1-Elements
Alle Textknoten
Alle Knoten
7
XSL und XSLT
XSL- FO
ƒ Format für exakte Positionierung und Paginierung
ƒ Weit reichende Gestaltungsmöglichkeiten für Schriften etc.
ƒ Neutrales Format
ƒ Beschreibung nicht auf ein reales Medium bezogen
ƒ Ausgabe von nachgeordneten Formatierern (PDF, PostScript, RTF,
Grafiken…)
ƒ Spezifikation noch immer keine Empfehlung des W3C
ƒ Es zeichnet sich nicht ab, dass dieses Format sich rasch
durchsetzen wird.
8
XSL und XSLT
XSL- FO
Elemente dieses Formats werden Formatting Objects genannt.
XSL-FO Enthält Formatting Objects für die folgenden Aspekte:
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
ƒ
Regionen, Ränder und Bereiche einer Seite
Breite und Höhe von Seiten
Abfolge von Seiten
Seitennummerierung
Rahmen, Abständen, Spalten und Blöcken
Absätze, Listen und Tabellen
Textformatierung
Linien, Bilder und andere Objekte
9
XSL und XSLT
Komponenten von XSL
10
XSL und XSLT
Was können wir mit XSLT heute machen?
ƒ Erzeugung lesbarer Texte in Form von HTML-Dateien (XHTML)
ƒ Erzeugen von interaktiven Grafiken (Scalable Vector Graphics SVG)
ƒ Erzeugen eines Dokuments in einem anderen XML Format
ƒ Erzeugen eines druckbaren PDF- Dokuments
ƒ Erzeugen eines LATEX Dokuments
ƒ Erzeugen von Java Quellcode
ƒ Erzeugen von SQL Befehlen
11
XSL und XSLT
XSLT im XML- Formatierungsprozess
12
XSL und XSLT
Transformation
13
XSL und XSLT
XSLT- Prozessoren
ƒ Saxon – Open Source (Mozilla)
(saxon.sourceforge.net/)
ƒ Xalan – Open Source
(xml.apache.org/xalan-j/index.html)
ƒ XT – Open Source
(http://www.blnz.com/xt/index.html)
ƒ JD.XSLT – Open Source
(www.aztecrider.com/xslt/)
ƒ Microsoft XSLT- Prozessor
(funktioniert auch in älteren Windowssystemen)
14
XSL und XSLT
Templates
XSLT transformiert ein XML- Dokument durch Templates.
<xsl:template match="/" name="wurzel">
<html>
<head>
<title>Beispiel</title>
</head>
<body> </body>
</html>
</xsl:template>
Beispiel eines Template- Elements
15
XSL und XSLT
Anwenden von Templates
<xsl:template match="/" name="wurzel">
<html>
<head>
<title>Beispiel</title>
</head>
<body>
<xsl:apply-templates select="node1"/>
</body>
</html>
</xsl:template>
<xsl:template match="node1">
<b>Abschnitt</b>
</xsl:template>
16
XSL und XSLT
Strukturierte Anweisungen
Bedingung
<xsl:if test="node[@value = 2]"> ... </xsl:if>
Mehrere Bedingungen (switch)
<xsl:choose>
<xsl:when test="node[@value = 1]">...</xsl:when>
<xsl:when test="node[@value = 2]">...</xsl:when>
<xsl:otherwise> ... </xsl:otherwise>
</xsl:choose>
17
XSL und XSLT
Strukturierte Anweisungen
Schleife
<xsl:for-each select="//node[@value = '#']">
...
</xsl:for-each>
Schleife mit Sortierung
<xsl:for-each select="//node">
<xsl:sort select="@value" order="ascending">
...
</xsl:sort>
</xsl:for-each>
18
XSL und XSLT
Erzeugung von Knoten
Text und Elemente, die nicht dem XSLT-Namespace angehören,
werden ins Zieldokument eingefügt:
<xsl:template match="zahl">
<p> 123 </p>
</xsl:template>
Zusätzlich gibt es die Möglichkeit, Attributwerte berechnen zu
lassen:
<xsl:template match="/">
<img src="@name"/>
</xsl:template>
19
XSL und XSLT
Erzeugung von Knoten
Text:
<xsl:text>
Hello, World
</xsl:text>
Ergebnis:
Hello, World
Generierter Text:
<xsl:value-of select="1 + 2"/>
Ergebnis:
3
20
XSL und XSLT
Erzeugung von Knoten
Elemente und Attribute:
<elem tag="meintag" attr="nummer" value="5"/>
<xsl:element name="@tag">
<xsl:attribute name="@attr">
<xsl:value-of select="@value"/>
</xsl:attribute>
Dies ist der Inhalt
</xsl:element>
Ergebnis:
<meintag nummer="5">Dies ist der Inhalt</meintag>
21
XSL und XSLT
Vorführung
22
XSL und XSLT
Resümee
ƒ Aus einer Quelle können mit kurzen XSLT-Skripten mehrere
Repräsentationen von Daten erzeugt werden.
ƒ Möglichkeit im Bereich Web-Publishing eine bisher nicht gekannte
Konsistenz von HTML-Seiten und Multimedia- Formaten zu
erreichen
ƒ Verzicht auf individuell gestaltete Web-Seiten.
(Jede Seite aus einer XSLT-Produktion gleicht mit geringen
Varianzen den anderen)
23
XSL und XSLT
Quellen
ƒ XSL Transformations WC Recommendation,
http://www.w3.org/TR/xslt
ƒ XML Path Language, W3C Recommendation,
http://www.w3.org/TR/xpath
ƒ XML kurz & gut,
Robert Eckstein, Michel Casabianca, O‘Reilly, 2. Auflage 2002
ƒ XSLT Mastering XML Transformations,
Doug Tidwell, O‘Reilly, First Edition 2001
ƒ XML in der Praxis,
Henning Behme, Stefan Mintert, Addison-Wesley, 2. Auflage 2002
24
XSL und XSLT
25
Herunterladen