XML Stylesheets - PowerPoint PPT Presentation

About This Presentation
Title:

XML Stylesheets

Description:

XML Stylesheets Andy Clark What Is It? Extensible Stylesheet Language (XSL) Language for document transformation Transformation (XSLT) Converting XML to another form ... – PowerPoint PPT presentation

Number of Views:24
Avg rating:3.0/5.0
Slides: 38
Provided by: AndyC69
Learn more at: http://people.apache.org
Category:
Tags: xml | stylesheets

less

Transcript and Presenter's Notes

Title: XML Stylesheets


1
XML Stylesheets
  • Andy Clark

2
What Is It?
  • Extensible Stylesheet Language (XSL)
  • Language for document transformation
  • Transformation (XSLT)
  • Converting XML to another form
  • e.g. Use Xalan to convert to text, XML, HTML,
    etc
  • Formatting objects (XSLFO)
  • Layout of XML document
  • e.g. Use FOP to convert to PDF, etc
  • Defined by W3C

3
The Simplest Stylesheet (1 of 2)
  • Empty XSLT document

01 lt?xml version1.0 encodingUTF-16?gt 02 ltx
slstylesheet xmlnsxslhttp//www.w3.org/1999/XS
L/Transform 03
version1.0gt 04 lt/xslstylesheetgt
4
The Simplest Stylesheet (2 of 2)
  • Empty XSLT document
  • Note This will simply copy the text content of
    the input document to the output.

01 lt?xml version1.0 encodingUTF-16?gt 02 ltx
slstylesheet xmlnsxslhttp//www.w3.org/1999/XS
L/Transform 03
version1.0gt 04 lt/xslstylesheetgt
5
What Are Its Features?
  • Features
  • Templates
  • Map input patterns to output
  • Conditionals
  • Loops
  • Functions
  • Extensions

6
Templates
  • Transformation rules
  • Selects nodes from input document
  • Uses XPath expressions
  • Specifies output
  • Can be text, XML, HTML (xml with html tags)
  • Template modes
  • Allows multiple templates to have same rules
  • Named templates
  • Call templates by name

7
Simple Template (1 of 4)
  • Match document root
  • ltxsltemplate match/gt
  • ltHTMLgt
  • ltBODYgt
  • ltxslapply-templates selectchild/gt
  • lt/BODYgt
  • lt/HTMLgt
  • lt/xsltemplategt

8
Simple Template (2 of 4)
  • Match document root
  • ltxsltemplate match/gt
  • ltHTMLgt
  • ltBODYgt
  • ltxslapply-templates selectchild/gt
  • lt/BODYgt
  • lt/HTMLgt
  • lt/xsltemplategt

9
Simple Template (3 of 4)
  • Match document root
  • ltxsltemplate match/gt
  • ltHTMLgt
  • ltBODYgt
  • ltxslapply-templates selectchild/gt
  • lt/BODYgt
  • lt/HTMLgt
  • lt/xsltemplategt

10
Simple Template (4 of 4)
  • Match document root
  • ltxsltemplate match/gt
  • ltHTMLgt
  • ltBODYgt
  • ltxslapply-templates selectchild/gt
  • lt/BODYgt
  • lt/HTMLgt
  • lt/xsltemplategt

11
Simple Template (1 of 5)
  • Match document root
  • ltxsltemplate match/gt
  • ltHTMLgt
  • ltBODYgt
  • ltxslapply-templates selectchild/gt
  • lt/BODYgt
  • lt/HTMLgt
  • lt/xsltemplategt
  • ltxsltemplate matchbookgt
  • ltH1gt ltxslvalue-of selecttitle/gt lt/H1gt
  • lt/xsltemplategt

12
Simple Template (2 of 5)
  • Match document root
  • ltxsltemplate match/gt
  • ltHTMLgt
  • ltBODYgt
  • ltxslapply-templates selectchild/gt
  • lt/BODYgt
  • lt/HTMLgt
  • lt/xsltemplategt
  • ltxsltemplate matchbookgt
  • ltH1gt ltxslvalue-of selecttitle/gt lt/H1gt
  • lt/xsltemplategt

13
Simple Template (3 of 5)
  • Match document root
  • ltxsltemplate match/gt
  • ltHTMLgt
  • ltBODYgt
  • ltxslapply-templates selectchild/gt
  • lt/BODYgt
  • lt/HTMLgt
  • lt/xsltemplategt
  • ltxsltemplate matchbookgt
  • ltH1gt ltxslvalue-of selecttitle/gt lt/H1gt
  • lt/xsltemplategt

14
Simple Template (4 of 5)
  • Match document root
  • ltxsltemplate match/gt
  • ltHTMLgt
  • ltBODYgt
  • ltxslapply-templates selectchild/gt
  • lt/BODYgt
  • lt/HTMLgt
  • lt/xsltemplategt
  • ltxsltemplate matchbookgt
  • ltH1gt ltxslvalue-of selecttitle/gt lt/H1gt
  • lt/xsltemplategt

15
Simple Template (5 of 5)
  • Input
  • Output

01 ltbook isdn1234-5678-90gt 02 lttitlegtCare
and Feeding of Wombatslt/titlegt 03
ltchapter/gt nn lt/bookgt
01 ltHTMLgt 02 ltBODYgt 03 ltH1gtCare and
Feeding of Wombatslt/H1gt 04 lt/BODYgt 05 lt/HTMLgt
16
Conditionals
  • If statement
  • ltxslif test'expression'gt ... lt/xslifgt
  • Switch statement
  • ltxslchoosegt
  • ltxslwhen test'expression'gt ... lt/xslwhengt
  • ltxslotherwisegt ... lt/xslotherwisegt
  • lt/xslchoosegt
  • Predicates
  • foo_at_bar"value"

17
Loops
  • For statement
  • ltxslfor-each select'expression'gt
  • ltxslsort select'expression'/gt
  • lt/xslfor-eachgt

18
XPath Functions
  • Node-set functions
  • e.g. position(), last(), local-name(), etc
  • String functions
  • e.g. string(), contains(), substring(), etc
  • Boolean functions
  • e.g. boolean(), not(), etc
  • Number functions
  • e.g. number(), sum(), round(), etc

19
XSLT Functions
  • Multiple source documents
  • e.g. document(document2.xml)
  • Keys
  • Number formatting
  • Additional functions
  • e.g. current(), system-property(), etc

20
Example Transformation (0 of 14)
  • Source
  • Destination

01 ltordergt 02 ltitem codeBK123gt 03
ltnamegtCare and Feeding of Wombatslt/namegt 04
ltprice currencyUSDgt42.00lt/pricegt 05
lt/itemgt 06 lt/ordergt
01 ltHTMLgt 02 ltBODYgt 03 ltTABLE
border1gt 04 ltTRgt ltTHgtItemlt/THgt
ltTHgtPricelt/THgt lt/TRgt 05 ltTRgt 06
ltTDgtBK123 - ltUgtCare and Feeding of
Wombatslt/Ugtlt/TDgt 07 ltTDgt42.00lt/TDgt 08
lt/TRgt 09 lt/TABLEgt 10 lt/BODYgt 11 lt/HTMLgt
21
Example Transformation (1 of 14)
  • Match ltordergt element

01 ltxslstylesheet xmlnsxslhttp//www.w3.org/19
99/XSL/Transform 02
version1.0gt 03 04 ltxsltemplate
match/ordergt 05 ltHTMLgt 06 ltBODYgt 07
ltTABLE border1gt 08 ltTRgt
ltTHgtItemlt/THgt ltTHgtPricelt/THgt lt/TRgt 09
ltxslfor-each selectitemgt 10
ltxslapply-templates/gt 11
lt/xslfor-eachgt 12 lt/TABLEgt 13
lt/BODYgt 14 lt/HTMLgt 15 lt/xsltemplategt
22
Example Transformation (2 of 14)
  • Match ltordergt element

01 ltxslstylesheet xmlnsxslhttp//www.w3.org/19
99/XSL/Transform 02
version1.0gt 03 04 ltxsltemplate
match/ordergt 05 ltHTMLgt 06 ltBODYgt 07
ltTABLE border1gt 08 ltTRgt
ltTHgtItemlt/THgt ltTHgtPricelt/THgt lt/TRgt 09
ltxslfor-each selectitemgt 10
ltxslapply-templates/gt 11
lt/xslfor-eachgt 12 lt/TABLEgt 13
lt/BODYgt 14 lt/HTMLgt 15 lt/xsltemplategt
23
Example Transformation (3 of 14)
  • Match ltordergt element

01 ltxslstylesheet xmlnsxslhttp//www.w3.org/19
99/XSL/Transform 02
version1.0gt 03 04 ltxsltemplate
match/ordergt 05 ltHTMLgt 06 ltBODYgt 07
ltTABLE border1gt 08 ltTRgt
ltTHgtItemlt/THgt ltTHgtPricelt/THgt lt/TRgt 09
ltxslfor-each selectitemgt 10
ltxslapply-templates/gt 11
lt/xslfor-eachgt 12 lt/TABLEgt 13
lt/BODYgt 14 lt/HTMLgt 15 lt/xsltemplategt
24
Example Transformation (4 of 14)
  • Match ltordergt element

01 ltxslstylesheet xmlnsxslhttp//www.w3.org/19
99/XSL/Transform 02
version1.0gt 03 04 ltxsltemplate
match/ordergt 05 ltHTMLgt 06 ltBODYgt 07
ltTABLE border1gt 08 ltTRgt
ltTHgtItemlt/THgt ltTHgtPricelt/THgt lt/TRgt 09
ltxslfor-each selectitemgt 10
ltxslapply-templates/gt 11
lt/xslfor-eachgt 12 lt/TABLEgt 13
lt/BODYgt 14 lt/HTMLgt 15 lt/xsltemplategt
25
Example Transformation (5 of 14)
  • Match ltordergt element

01 ltxslstylesheet xmlnsxslhttp//www.w3.org/19
99/XSL/Transform 02
version1.0gt 03 04 ltxsltemplate
match/ordergt 05 ltHTMLgt 06 ltBODYgt 07
ltTABLE border1gt 08 ltTRgt
ltTHgtItemlt/THgt ltTHgtPricelt/THgt lt/TRgt 09
ltxslfor-each selectitemgt 10
ltxslapply-templates/gt 11
lt/xslfor-eachgt 12 lt/TABLEgt 13
lt/BODYgt 14 lt/HTMLgt 15 lt/xsltemplategt
26
Example Transformation (6 of 14)
  • Match ltitemgt element

17 ltxsltemplate matchitemgt 18 ltTRgt 19
ltTDgt 20 ltxslvalue-of
select_at_code/gt - 21 ltUgt ltxslvalue-of
selectname/gt lt/Ugt 22 lt/TDgt 23
ltxslapply-templates selectprice/gt 24
lt/TRgt 25 lt/xsltemplategt
27
Example Transformation (7 of 14)
  • Match ltitemgt element

17 ltxsltemplate matchitemgt 18 ltTRgt 19
ltTDgt 20 ltxslvalue-of
select_at_code/gt - 21 ltUgt ltxslvalue-of
selectname/gt lt/Ugt 22 lt/TDgt 23
ltxslapply-templates selectprice/gt 24
lt/TRgt 25 lt/xsltemplategt
28
Example Transformation (8 of 14)
  • Match ltitemgt element

17 ltxsltemplate matchitemgt 18 ltTRgt 19
ltTDgt 20 ltxslvalue-of
select_at_code/gt - 21 ltUgt ltxslvalue-of
selectname/gt lt/Ugt 22 lt/TDgt 23
ltxslapply-templates selectprice/gt 24
lt/TRgt 25 lt/xsltemplategt
29
Example Transformation (9 of 14)
  • Match ltitemgt element

17 ltxsltemplate matchitemgt 18 ltTRgt 19
ltTDgt 20 ltxslvalue-of
select_at_code/gt - 21 ltUgt ltxslvalue-of
selectname/gt lt/Ugt 22 lt/TDgt 23
ltxslapply-templates selectprice/gt 24
lt/TRgt 25 lt/xsltemplategt
30
Example Transformation (10 of 14)
  • Match ltpricegt element

27 ltxsltemplate matchpricegt 28 ltTDgt 29
ltxslchoosegt 30 ltxslwhen
testtext()JPNgt lt/xslwhengt 31
ltxslotherwisegt lt/xslotherwisegt 32
lt/xslchoosegt 33 ltxslvalue-of
selecttext()/gt 34 lt/TDgt 35
lt/xsltemplategt 36 37 lt/xslstylesheetgt
31
Example Transformation (11 of 14)
  • Match ltpricegt element

27 ltxsltemplate matchpricegt 28 ltTDgt 29
ltxslchoosegt 30 ltxslwhen
testtext()JPNgt lt/xslwhengt 31
ltxslotherwisegt lt/xslotherwisegt 32
lt/xslchoosegt 33 ltxslvalue-of
selecttext()/gt 34 lt/TDgt 35
lt/xsltemplategt 36 37 lt/xslstylesheetgt
32
Example Transformation (12 of 14)
  • Match ltpricegt element

27 ltxsltemplate matchpricegt 28 ltTDgt 29
ltxslchoosegt 30 ltxslwhen
testtext()JPNgt lt/xslwhengt 31
ltxslotherwisegt lt/xslotherwisegt 32
lt/xslchoosegt 33 ltxslvalue-of
selecttext()/gt 34 lt/TDgt 35
lt/xsltemplategt 36 37 lt/xslstylesheetgt
33
Example Transformation (13 of 14)
  • Match ltpricegt element

27 ltxsltemplate matchpricegt 28 ltTDgt 29
ltxslchoosegt 30 ltxslwhen
testtext()JPNgt lt/xslwhengt 31
ltxslotherwisegt lt/xslotherwisegt 32
lt/xslchoosegt 33 ltxslvalue-of
selecttext()/gt 34 lt/TDgt 35
lt/xsltemplategt 36 37 lt/xslstylesheetgt
34
Example Transformation (14 of 14)
  • Output

Item Price
BK123 - Care and Feeding of Wombats 42.00
35
Rendering XML in Browsers
  • Latest browsers (e.g. IE 6.0) have support for
    XSLT
  • Insert xml-stylesheet processing instruction
  • lt?xml-stylesheet typetext/xsl
    hrefstyle.xsl?gt
  • Output

Item Price
BK123 - Care and Feeding of Wombats 42.00
36
Useful Links
  • XPath 1.0 Specification
  • http//www.w3.org/TR/xpath
  • XSLT 1.0 Specification
  • http//www.w3.org/TR/xslt

37
XML Stylesheets
  • Andy Clark
Write a Comment
User Comments (0)
About PowerShow.com