Multimedia Seminar
XSLT
Tobias Naumann
MM Seminar - XSLT 2
Structure
What is XSLT? Design and Concepts Practical use Examples
What is XSLT?
Popularity of XML Alternative Interfaces: Document Object Model (DOM) Simple API for XML Processing (SAX). Require knowledge of these
Languages XSLT as simplification
What is XSLT?
One of 3 parts of XSL XSLT XPath XSL-FO (XSL Formatting Objects)
What is XSLT?
Implemented in XML, XML Syntax Transformation in any output file
format Developed by James Clark (XSLT 1.0,
XSLT 1.1) At the moment version 2.0 (Michael
Kay )
MM Seminar - XSLT 6
Structure
What is XSLT? Design and Concepts Practical use Examples
Design and Concepts
XSLT Program = Stylesheet XSLT Stylesheets using XML syntax Parts of the stylesheet = Templates Templates describe the rules how to
transform a source document into the target format
Design and Concepts
XSLT free of side effects (functional language)
Iteration and Recursion XSLT based on Pattern Matching XSLT and XPath since 1999 (Version
1.0) official standards of the W3C
Design and Concepts
XPath: Referencing parts of XML documents Tree structure Relative und absolute reference to
nodes possible
Design and Concepts
Illustration:
<nodes> <node id="1">N1</node> <node id="2">N2</node> <supernode id="3"> <node id="4">N4</node> </supernode> <node id="5">N5</node></nodes>
Design and Concepts
MM Seminar - XSLT 12
Structure
What is XSLT? Design and Concepts Practical use Examples
Practical use
Webservice for stock exchange in XML One document for different target
platforms Variable designs Exchange of business documents
MM Seminar - XSLT 14
Structure
What is XSLT? Design and Concepts Practical use Examples
Examples
Functioning of XSLT Processors: read an elemente (actual Context) search matching template in stylesheet If none is found, use standard template Process data with rules of template Read next elemente Repeat until no elements left
Examples
„Hallo Welt!“ Beispiel
<?xml version="1.0"?>
<greeting> Hallo Welt!</greeting>
<xsl:stylesheetxmlns:xsl="http://www.w3c.org/1999/XSL/Transform"version="1.0">
<xsl:template match="/"> <html> <head> <title>Hallo Welt!</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template>
<xsl:template name="greeting" match="greeting"> <h1>Greeting: <xsl:value-of select="."/></h1> </xsl:template>
</xsl:stylesheet>
Examples
output:<html> <head> <title>Hallo Welt!</title> </head> <body> <h1> Greeting: Hallo Welt! </h1> </body></html>
Examples
<xsl:if>
<xsl:if test="count(titel) > 0"> <xsl:value-of select="titel"/></xsl:if>
Examples
<xsl:choose>, <xsl:when> and <xsl:otherwise>
<xsl:choose> <xsl:when test="count(titel) > 0"> <xsl:value-of select="titel"/> </xsl:when> <xsl:otherwise> (Kein Titel) </xsl:otherwise></xsl:choose>
Examples
Iteration with <xsl:for-each>
<xsl:for-each select="adressen/adresse"> <xsl:sort select="vorname"/> <xsl:call-template name="template2"/></xsl:for-each>
Examples
<xsl:param> and <xsl:variable>
<xsl:param name="x„ select=„5“/>
<xsl:template match="/"> <xsl:variable name="y" select="$x+1"/> x = <xsl:value-of select="$x"/><br/> y = <xsl:value-of select="$y"/><br/></xsl:template>
XSLT Processors
Xalan, Apache Project Saxon, Java XSL Prozessor XT, by James Clark Sablotron, XML and XSLT Toolkit Oracle Micrososft XSLT Tools
End… Questions?
??
?
?
??