View
219
Download
1
Embed Size (px)
Citation preview
XSLTeXtensible Stylesheet Language Transformations
Naveed Arshad
Agenda
What is XSL, XSLT and Xpath Advantages of XSLT XSLT Architecture XSLT Processing Model An Example of XSLT Current State of XSLT References
What is XSL, XSLT and Xpath?
Started of with XSL (eXtensible Stylesheet Language)– For XML TRANSFORMATION and
FORMATINGXSLT for TRANSFORMATIONS and
XSL for “the rest”
What is XSL, XSLT and Xpath? (cont’d)
Significant overlap in– Expression Syntax of XSLT– Linking one document to the another using
XPointer Two committees joined hands to make it one
language– XPATH
Example<xsl:value-of select="sum(//book/@price) div
count(//book)"/>
Advantages of XSLT
Transformation from– XML document to another XML document– XML document to an HTML document– XML document to any text form ;-)
XSLT Architecture
Source Tree as Input Result Tree as Output XSLT processor takes two inputs
– XSL style sheet – XML Document as Source Tree
XSLT Processing Model
Input in form of a tree thus inherently a– Recursive Process– Checks for template when a new item is
encountered– Transform source nodes into result nodes– Rearranges the items based on style sheet
XSLT Example
XML to XML Takes one XML document as Source Tree Apply templates using XSLT stylesheet Transforms it into another XML document
as a Result Tree
Input: XML DOCUMENT (Source Tree)<?xml version="1.0" encoding="utf-8" standalone="yes"?> <Catalog> <Book> <Title>Designing Distributed Applications</Title> <Authors> <Author>Stephen Mohr</Author> </Authors> <PubDate>May 1999</PubDate> <ISBN>1-861002-27-0</ISBN> <Price>$49.99</Price> </Book>
<Book> <Title>Professional ASP 3.0</Title> <Authors> <Author>Alex Homer</Author> <Author>Brian Francis</Author> <Author>David Sussman</Author> </Authors> <PubDate>October 1999</PubDate> <ISBN>1-861002-61-0</ISBN> <Price>$59.99</Price> </Book> </Catalog>
XSLT Stylesheet
<?xml version="1.0" encoding="utf-8" standalone="yes"?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/"> <xsl:apply-templates/> </xsl:template>
<xsl:template match="Catalog"> <Books> <xsl:apply-templates/> </Books> </xsl:template>
<xsl:template match="Book"> <Book> <xsl:value-of select="Title"/>, <xsl:value-of select="PubDate"/> </Book> </xsl:template>
</xsl:stylesheet>
Output: XML Document (Result Tree)
<?xml version="1.0" encoding="utf-8"?> <Books> <Book>Designing Distributed Applications, May1999</Book> <Book>Professional ASP 3.0, October 1999</Book> </Books>
XSLT ProcessorsProcessor Average % Score
Napa 0.4 21.80
MSXML 3 40.60
SUN XSLTC Beta 4 51.08
XT 64.24
Saxon 6.0.1 73.44
Resin 1.2b3 90.62
Xalan Java 2.0.D07 103.92
Sabletron 0.44 116.30
Oracle Java V2 2.0.9 122.88
Xalan C 0.40 202.55
Xalan Java 1.2.2 212.54
Source: http://www.tfi-technology.com/xml/xslbench.html
What about CSS and CSS2
CSS lacks the ability to format the ouput Rule of thumb
– CSS is used at the Client End– XSLT is used on the Server End
Current Status of XSLT
As of Sep 12th, 2001 XSLT 1.0 is part of the XML family
Recommendations XSLT 1.1 working draft is released on
Aug 23rd 2002– will be the basis of XSLT 2.0
References
XSLT Programmer’s Reference– http://www.topxml.com/xsl/articles/xslt_what_about/
XSLT Quick Referance– http://www.mulberrytech.com/quickref/XSLTquickref.pdf
XSLT Specifications– http://www.w3.org/Style/XSL/
XSLT News and Resrources– http://www.ibiblio.org/xml/