240 likes | 351 Views
Multimedia Seminar. XSLT Tobias Naumann. 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
E N D
Multimedia Seminar XSLT Tobias Naumann
Structure • What is XSLT? • Design and Concepts • Practical use • Examples MM Seminar - XSLT
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 )
Structure • What is XSLT? • Design and Concepts • Practical use • Examples MM Seminar - XSLT
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>
Structure • What is XSLT? • Design and Concepts • Practical use • Examples MM Seminar - XSLT
Practical use • Webservice for stock exchange in XML • One document for different target platforms • Variable designs • Exchange of business documents
Structure • What is XSLT? • Design and Concepts • Practical use • Examples MM Seminar - XSLT
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:stylesheet xmlns: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? ? ? ? ? ? ?