240 likes | 357 Views
This seminar on XSLT by Tobias Naumann introduces the foundational concepts of XSLT, a powerful language for transforming XML documents into different formats. Attendees will explore its design principles, practical uses, and get hands-on examples demonstrating how to utilize XSLT and XPath effectively. The session covers topics such as the popularity of XML, alternative interfaces, pattern matching, and iteration techniques. Programmers and web developers will gain insights into XSLT processors and learn to create dynamic web services using XML and associated technologies.
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? ? ? ? ? ? ?