20
XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

  • View
    219

  • Download
    1

Embed Size (px)

Citation preview

Page 1: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

XSLTeXtensible Stylesheet Language Transformations

Naveed Arshad

Page 2: XSLT eXtensible 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

Page 3: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

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”

Page 4: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

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)"/>

Page 5: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

Advantages of XSLT

Transformation from– XML document to another XML document– XML document to an HTML document– XML document to any text form ;-)

Page 6: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

XSLT Architecture

Source Tree as Input Result Tree as Output XSLT processor takes two inputs

– XSL style sheet – XML Document as Source Tree

Page 7: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad
Page 8: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

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

Page 9: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad
Page 10: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

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

Page 11: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

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>

Page 12: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

<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>

Page 13: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad
Page 14: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

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>

Page 15: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

<xsl:template match="Book"> <Book> <xsl:value-of select="Title"/>, <xsl:value-of select="PubDate"/> </Book> </xsl:template>

</xsl:stylesheet>

Page 16: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

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>

Page 17: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

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

Page 18: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

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

Page 19: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

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

Page 20: XSLT eXtensible Stylesheet Language Transformations Naveed Arshad

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/