Introduction to XSL Max Froumentin - W3C

Introduction to XSL Max Froumentin - W3C

Introduction to XSL Max Froumentin - W3C l Introduction to XSL l XSL and other W3C specs l XML Documents l Transformations: XSLT l Styling XML Documents l General-purpose XSLT l XSL l Templates l Example I: Hamlet l XSLT statements l Example II: Mixed Writing Modes l "Play" to HTML l Example III: database l XPath l Other Examples l Formatting Objects basics l How do they do that? l Pages l The XSL Process(es) l The area model l Server-Side/Client-Side XSL l Block/inline areas Introduction to XSL Max Froumentin - W3C l Formatting Objects: l Properties l Example: Play to FO l Top-level Template l I18N Formatting Objects and Properties l Other Formatting Objects l Example: mixed writing modes l If you are still interested... Introduction to XSL In a nutshell: XSL is a W3C specification that describes a method for visually presenting XML documents. This tutorial will cover: l An overview of the XSL spec (including XSLT and XPath) l Examples of various use cases l Relationship with other XML technologies l A detailed example These slides are available at http://www.w3.org/People/maxf/XSLideMaker/ Introduction to XSL Max Froumentin - W3C 1 of 30 XML Documents l XML (eXtensible Markup Language) adds information to text files, using tags and attributes [example1], [example2] l Tag names are defined for a specific document type. l Uses the Unicode character set l Designed to be easily processed by machine while remaining readable. Introduction to XSL Max Froumentin - W3C 2 of 30 Styling XML Documents l XML documents are ideally semantic. For example, this bit of HTML is wrong: Do not <strong>smoke</strong>, <it>eat</it> or <blink>drink</blink> in this room. l Presentation data should be separate l Two solutions for styling: CSS (Cascading Style Sheets) and XSL (eXtensible Stylesheet Language). CSS TITLE { display: block; font-family: Helvetica; font-size: 18pt } Simple model: properties are associated to tags or attributes. Introduction to XSL Max Froumentin - W3C 3 of 30 Introduction to XSL Max Froumentin - W3C 3 of 30 XSL XSL is an alternative to CSS that allows greater control over the presentation of the XML data. What can it do? l [like CSS] allow changing presentation without changing the XML source, and display documents on various media, l also: I18N features (writing modes, text alignment, hyphenation), complex page layout, footnotes, automatic generation of content (index) Who is it for? Applications that require high-level quality formatting: l Publishing industry (books, technical documentation) Introduction to XSL Max Froumentin - W3C 4 of 30 l Publication on different media: paper, web, mobile devices . But is it not meant to be used where presentation is deeply tied to the contents (like graphic design). Introduction to XSL Max Froumentin - W3C 4 of 30 Example I: Hamlet <ACT> <SCENE> <TITLE>A room in the castle.</TITLE> <STAGEDIR> Enter KING CLAUDIUS, QUEEN GERTRUDE, POLONIUS, OPHELIA, ROSENCRANTZ, and GUILDENSTERN </STAGEDIR> <SPEECH speaker="King Claudius"> <LINE>And can you, by no drift of circumstance,</LINE> <LINE>Get from him why he puts on this confusion,</LINE> <LINE>Grating so harshly all his days of quiet</LINE> <LINE>With turbulent and dangerous lunacy?</LINE> </SPEECH> ... Formatted for paper output (PDF), formatted for the Web (XHTML) Introduction to XSL Max Froumentin - W3C 5 of 30 Example II: Mixed Writing Modes Introduction to XSL Max Froumentin - W3C 6 of 30 Example III: database ... <record year="1992"> <artist>Sundays, The</artist> <title>Blind</title> </record> <record year="1994"> <artist>(Various)</artist> <title>The Glory of Gershwin</title> <note>Compilation</note> </record> <record type="soundtrack" year="1992"> <artist>Kamen, Michael</artist> <title>Brazil</title> <location folder="3" page="20"/> </record> ... PDF Introduction to XSL Max Froumentin - W3C 7 of 30 Other Examples l W3C specs (one DTD, output formats: HTML, sliced HTML, text, PDF), e.g MathML 2.0, XML 1.0 l This slideshow Introduction to XSL Max Froumentin - W3C 8 of 30 How do they do that? l An XSL stylesheet is an XML File l It is associated to an XML document with a Stylesheet Processing Instruction (like CSS) <?xml-stylesheet ref="shakespeare.xsl" type="text/xsl"?> <ACT> <SCENE> <TITLE>A room in the castle.</TITLE> l The actual formatting is performed either off-line or on the browser Introduction to XSL Max Froumentin - W3C 9 of 30 The XSL Process(es) The result tree is an XML document in which the markup has information about how to display the document: what font to use, the size of a page, etc. This markup is called Formatting Objects Introduction to XSL Max Froumentin - W3C 10 of 30 (elements) and Properties (attributes). For example: <block font-family="Helvetica">ACT III</block> <block font-size="10pt">Scene 1: A room in the castle</block> <block space-before="10mm" font-style="italic"> Enter KING CLAUDIUS, QUEEN GERTRUDE, POLONIUS, OPHELIA, ROSENCRANTZ, and GUILDENSTERN </block> ... Generated from: <ACT> <SCENE> <TITLE>A room in the castle.</TITLE> <STAGEDIR> Enter KING CLAUDIUS, QUEEN GERTRUDE, POLONIUS, OPHELIA, ROSENCRANTZ, and GUILDENSTERN </STAGEDIR> ... Introduction to XSL Max Froumentin - W3C 10 of 30 Server-Side/Client-Side XSL l Off-line (e.g. for printing) l Server-side: server transforms, client renders (not recommended) l Client-side: client transforms and renders (allows user styles) Introduction to XSL Max Froumentin - W3C 11 of 30 XSL and other W3C specs XSL uses CSS properties to express formatting information, and uses the CSS inheritance model. l CSS: TITLE { display: block; font-family: Helvetica; font-size: 14pt; } l XSL: <xsl:template match="TITLE"> <fo:block font-family="Helvetica" font-size="14pt"> [...] </fo:block> </xsl:template> XSL and SVG, MathML l XSL can import images and other types of known XML Introduction to XSL Max Froumentin - W3C 12 of 30 documents: SVG and MathML. l Up to the renderer to handle other namespaces Introduction to XSL Max Froumentin - W3C 12 of 30 Transformations: XSLT XSLT is a transformation language originally designed to transform any XML document into another XML document containing formatting objects: pages, blocks, graphics, text, etc. Introduction to XSL Max Froumentin - W3C 13 of 30 General-purpose XSLT XSLT has evolved to become a general-purpose transformation language from XML to XML. Many users use it to transform their own XML document type to HTML for viewing within a browser l XSLT stylesheets use XML syntax l A stylesheet is a list of templates <?xml version="1.0" encoding="utf-8"?> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"> <xsl:template match="/">...</xsl:template> <xsl:template match="/html">...</xsl:template> </xsl:stylesheet> Introduction to XSL Max Froumentin - W3C 14 of 30 Templates l Each template applies to a type of nodes in the input document l When matches are made, the templates contains desired output. <xsl:template match="TITLE"> <fo:block font-family="Helvetica" font-size="14pt"> <xsl:apply-templates/> </fo:block> </xsl:templates> So this will transform: <TITLE>Hamlet</TITLE> into <fo:block font-family="Helvetica" font-size="14pt"> Hamlet </fo:block> Introduction to XSL Max Froumentin - W3C 15 of 30 HTML can also be generated very simply in the template, using for instance <h1> instead of <fo:block> <xsl:apply-templates/> means: apply other templates to contents. Implicit rule: text is copied from input to output: a style sheet with no rules will only return the character data of the input. Introduction to XSL Max Froumentin - W3C 15 of 30 XSLT statements Allow navigation and iteration within the input document tree l <xsl:value-of select="..."/> Gets a value (node contents or attribute) from the input tree. l <xsl:for-each select="..."> Loops over the nodes in the select expression l <xsl:if test="...">...</xsl:if> Conditional Introduction to XSL Max Froumentin - W3C 16 of 30 "Play" to HTML Very simple one-template example using the 'pull' method: <?xml version="1.0" encoding="utf-8"?> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xsl:version="1.0"> <head> <title><xsl:value-of select="PLAY/TITLE"/></title> </head> <body> <h1><xsl:value-of select="PLAY/TITLE"/></h1> <xsl:for-each select="PLAY/ACT"> <xsl:for-each select="SCENE"> <xsl:if test="TITLE"> <h2><xsl:value-of select="TITLE"/></h2> </xsl:if> <xsl:for-each select="SPEECH"> <h3 style="color: red"><xsl:value-of select="SPEAKER"/></h3> <xsl:for-each select="LINE"> <p><xsl:value-of select="."/></p> </xsl:for-each> </xsl:for-each> </xsl:for-each> </xsl:for-each> Introduction to XSL Max Froumentin - W3C 17 of 30 </body> </html> Result: <?xml version="1.0" encoding="utf-8"?> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <title>The Tragedy of Hamlet, Prince of Denmark</title> </head> <body> <h1>The Tragedy of Hamlet, Prince of Denmark</h1> <h2>Elsinore. A platform beforethe castle.</h2> <h3 style="color: red">BERNARDO</h3> <p>Who's there?</p> <h3 style="color: red">FRANCISCO</h3> <p>Nay, answer me: stand, and unfold yourself.</p> ... Extended, output: numbering, TOC, etc. This uses the 'push' method where structure follows the input. Introduction to XSL Max Froumentin - W3C 17 of 30 "Play" to HTML Roughly there is one template for each tag type in the input Introduction to XSL Max Froumentin - W3C 17 of 30 XPath l ... is another W3C specification; l an expression language to selects parts of an XML document tree; l is used in <xsl:template match="..."> or <xsl:value-of select="...">, etc.; l and can be as simple as TITLE, or as complex as /ACT[3]/SCENE[position() < 5 and position() > 2]/SPEAKER[@name="Hamlet"]/ LINE[contains(.,"shoe box")] Introduction to XSL Max Froumentin - W3C 18 of 30 Formatting Objects basics l the FO vocabulary is one special type of output from XSLT l FOs are organized as an XML tree: l Each node has associated properties, either directly specified (by attributes) or inherited.

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    53 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us