20
The XSLT Paradigm David J. Birnbaum, Martin Holmes

The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

  • Upload
    others

  • View
    8

  • Download
    0

Embed Size (px)

Citation preview

Page 1: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

David J. Birnbaum, Martin Holmes

Page 2: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

2

Nuts and bolts of an XSLT stylesheet• <xsl:stylesheet>• <xsl:output>• <xsl:template>• <xsl:apply-templates>• Creating the XHTML output framework

<xsl:stylesheet>

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xpath-default-namespace="http://www.tei-c.org/ns/1.0" version="2.0">

Wrapper element that contains the entire stylesheet

xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

Always required

xmlns="http://www.w3.org/1999/xhtml"

Required if the output is XHTML

xpath-default-namespace="http://www.tei-c.org/ns/1.0"

• Optional, but useful when transforming TEI input documents• Tells the stylesheet to assume input is in the TEI namespace unless specified otherwise

version="2.0"

Required

Page 3: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

3

<xsl:output>

<xsl:output method="xhtml" indent="yes" encoding="utf-8"/>

Empty element; describes output formatting

method="xhtml"

May be xhtml, xml, text, html (but we sneer at html; use xhtml instead)

indent="yes"

Set to yes to wrap long lines and indent nested elements for ease in reading the output

<xsl:template match="XPath">

Contains instructions to be executed when the template fires

<xsl:template match="div">

The match attribute specifies an XPath to which the template will be applied. This examplesmatches any <div> element.

<xsl:template match="div"> <p><xsl:apply-templates/></p></xsl:template>

When you encounter a <div>, create a <p>. Then process the contents of the <div>, puttingany output of those template rules inside the <p>.

<xsl:apply-templates select="XPath"/>

• Empty element.• The select attribute identifies the XPath of the nodes to process at this point.• What process means is determined by the template rule for the node selected.

Page 4: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

4

<xsl:apply-templates select="head"/>

Process all of the <head> children of the context node.

<xsl:apply-templates select="//body/div/div/sp[1]"/>

Process the first speech (<sp>) of the first <div> that is immediately under another <div>immediately under the <body>. In Hamlet, this is the first speech of each scene.

<xsl:apply-templates/>

Process all of the children of the context node.

Creating the XHTML output framework

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns="http://www.w3.org/1999/xhtml" xpath-default-namespace="http://www.tei-c.org/ns/1.0" version="2.0"> <xsl:output method="xhtml" indent="yes"/> <xsl:template match="/"> <html> <head> <title>Title goes here</title> </head> <body> <xsl:apply-templates/> </body> </html> </xsl:template> <!-- other template rules go here --></xsl:stylesheet>

Page 5: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

5

Stepping through the stylesheet (1)

Page 6: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

6

Stepping through the stylesheet (2)

Page 7: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

7

Stepping through the stylesheet (3)

Page 8: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

8

Stepping through the stylesheet (4)

Page 9: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

9

Stepping through the stylesheet (5)

Page 10: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

10

Stepping through the stylesheet (6)

Page 11: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

11

Stepping through the stylesheet (7)

Page 12: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

12

Stepping through the stylesheet (8)

Page 13: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

13

Stepping through the stylesheet (9)

Page 14: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

14

Stepping through the stylesheet (10)

Page 15: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

15

Stepping through the stylesheet (11)

Page 16: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

16

Stepping through the stylesheet (12)

Page 17: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

17

Stepping through the stylesheet (13)

Page 18: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

18

Stepping through the stylesheet (14)

Page 19: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

19

Stepping through the stylesheet (15)

Page 20: The XSLT Paradigm - web.uvic.caweb.uvic.ca/~mholmes/dhoxss2013/handouts/xslt-paradigm.pdf · The XSLT Paradigm 3

The XSLT Paradigm

20

Stepping through the stylesheet (16)