XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

Preview:

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/

Recommended