font-variant="small-caps"/> "> font-variant="small-caps"/> ">

Presentation is loading. Please wait.

Presentation is loading. Please wait.

SDPL 2004Notes 6: XSL Formatting1 6 XSL: Extensible Stylesheet Language n An advanced style language for XML documents: 1. Language for transforming XML.

Similar presentations


Presentation on theme: "SDPL 2004Notes 6: XSL Formatting1 6 XSL: Extensible Stylesheet Language n An advanced style language for XML documents: 1. Language for transforming XML."— Presentation transcript:

1 SDPL 2004Notes 6: XSL Formatting1 6 XSL: Extensible Stylesheet Language n An advanced style language for XML documents: 1. Language for transforming XML documents: XSLT 2. XML vocabulary (≈ markup language) for specifying formatting: XSL version 1.0, W3C Rec. (15 October, 2001) »written for implementers of XSL processors n 6.1 Introduction and Overview n 6.2 XSL Formatting by Example

2 SDPL 2004Notes 6: XSL Formatting2 What is it? n An XSL style sheet specifies the presentation of a class of XML documents –by describing an XSLT transformation of the XML document into an XML document that uses the formatting vocabulary »XSL FO: a markup language to describe formatting n XSL builds on CSS2 and DSSSL –DSSSL an ISO-standardised, but mainly unimplemented SGML style language

3 SDPL 2004Notes 6: XSL Formatting3 Example of XSL syntax Formatting paragraph elements ( p ): Formatting paragraph elements ( p ): –NB: An incomplete style sheet! <xsl:stylesheet version='1.0' xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:fo="http://www.w3.org/1999/XSL/Format" > xmlns:fo="http://www.w3.org/1999/XSL/Format" > <fo:initial-property-set <fo:initial-property-set font-variant="small-caps"/> font-variant="small-caps"/> </xsl:stylesheet>

4 SDPL 2004Notes 6: XSL Formatting4 6.1 Overview of XSL Formatting n A style sheet processor accepts an XML document and an XSL style sheet, and produces a formatted presentation n Two steps: 1. (XSLT) transformation: XML source tree  result tree 2. (XSL FO) formatting »interpreting the result tree to produce formatted presentation

5 SDPL 2004Notes 6: XSL Formatting5 Transformation & Formatting XSLT script

6 SDPL 2004Notes 6: XSL Formatting6 Basis of formatting n Tree transformation adds information needed to format the result tree n Formatting semantics expressed using a formatting vocabulary, of –formatting objects (FOs), nodes of the result tree »for typographic abstractions like page-sequence, block, in-line text, page reference, … »XSL 1.0 defines 56 formatting object classes –formatting properties control the presentation of formatting objects (indents, spacing, fonts, …) »XSL 1.0 defines 248 formatting properties; many common with CSS2

7 SDPL 2004Notes 6: XSL Formatting7 Formatting n Formatting-object tree interpreted to produce the representation n Each FO specifies a part of pagination, layout and styling applied to its content n Properties control the formatting of a FO –some directly, e.g., color –some through constraints, e.g., space- before.minimum  the final rendering is not uniquely defined by XSL

8 SDPL 2004Notes 6: XSL Formatting8 Areas and Area Tree n Formatting generates an area tree consisting of nested rectangular areas –inline areas (e.g. glyph areas) within line areas –lines within block areas –blocks within regions of a page n Rendering causes the area tree to appear on a medium –areas printed on a sequence of sheets (or displayed as a single scroll in a browser)

9 SDPL 2004Notes 6: XSL Formatting9 Generating the Area Tree (1/3) n Formatting a gradual and complex process n Conceptual process of XSL formatting: n (XSL FO) Element and attribute tree –target of transformation, source of formatting –consists of element, attribute, and text nodes –transformed into a … n Formatting object tree (  XSL FO Elem&attr tree) –consists of formatting objects with properties –more detailed: each character its own object

10 SDPL 2004Notes 6: XSL Formatting10 Generating the Area Tree (2/3)

11 SDPL 2004Notes 6: XSL Formatting11 Generating the Area Tree (3/3) n Properties of the formatting object tree refined into traits (muotoilupiirre, piirre) –e.g., by propagating inherited properties, and computing absolute values for relative properties »e.g., properties font-size="12pt", start-indent="2em" become traits font-size="12pt", start-indent="24pt" –traits control generation of areas out of formatting objects –some traits only available as a result of formatting, e.g., page numbers

12 SDPL 2004Notes 6: XSL Formatting12 Benefits of XSL n Rich model and vocabulary for XML stylesheets n Powerful selection and manipulation (← XSLT) n Pagination and layout extend existing ones –area model a superset of the CSS2 box model »e.g., different writing directions; footnotes, page number refs. n Support of non-western writing directions –> distances expressed in terms of before/after (for block-progression-direction), and start/end (for inline-progression-direction)

13 SDPL 2004Notes 6: XSL Formatting13 XSL Area Model n Formatting objects generate areas –each 0 or more »page breaks  additional block areas »line breaks  additional line areas n Each area tree node (except root) associated to a rectangular portion of the output medium n An area has a content-rectangle –portion for child areas –optionally surrounded by a border and padding

14 SDPL 2004Notes 6: XSL Formatting14 Content, Padding and Border For compatibility also CSS-like margins margin-top, -right, -bottom and -left space-before space-after start- indent end-indent space-startspace-end

15 SDPL 2004Notes 6: XSL Formatting15 Two area types n block-areas –generated in block-progression-direction (normally top-to-bottom) –paragraphs and titles normally rendered using fo:block, which creates block areas –line-area a special case: no borders or padding n inline-areas –generated in inline-progression-direction (normally left-to-right) –characters rendered using fo:character, which generates glyph-area inline-areas »no child areas, a single glyph image as content

16 SDPL 2004Notes 6: XSL Formatting16 Formatting objects and properties XSL 1.0 defines 56 formatting objects … XSL 1.0 defines 56 formatting objects … page-sequence, simple-page-master, block, inline, list-block, list-item, list-item-label, list- item-body, external-graphic, basic-link, float, footnote, table, table-row, table-column,... page-sequence, simple-page-master, block, inline, list-block, list-item, list-item-label, list- item-body, external-graphic, basic-link, float, footnote, table, table-row, table-column,... n and 248 properties master-reference, background-color, font-family, font-size, space-before, start-indent, end- indent, text-align, text-indent, … master-reference, background-color, font-family, font-size, space-before, start-indent, end- indent, text-align, text-indent, … –many common with CSS2

17 SDPL 2004Notes 6: XSL Formatting17 Some central formatting objects 1/3 fo:root fo:root –top node of the formatting object tree –a wrapper for all the rest fo:simple-page-master fo:simple-page-master –model of the geometry of pages »region-body (for page content) »region-before (for header), region-after (for footer), region-start and region-end (for left and right sidebar)

18 SDPL 2004Notes 6: XSL Formatting18 Page regions A simple page can contain 1-5 regions, specified by child elements of the simple-page-master A simple page can contain 1-5 regions, specified by child elements of the simple-page-master

19 SDPL 2004Notes 6: XSL Formatting19 Top-level formatting objects n Slightly simplified: fo:root fo:layout-master-set (fo:simple-page-master | fo:page-sequence-master)+ fo:page-sequence + fo:region- body fo:region- before? fo:region-end? fo:region-start? fo:region- after? specify masters for page sequences by referring to simple-page-masters contents of pages fo:flow

20 SDPL 2004Notes 6: XSL Formatting20 Some central formatting objects 2/3 fo:page-sequence fo:page-sequence –specifies the creation of page sequences –possibly different page-sequence (and page- sequence-master) for, say, each chapter fo:flow fo:flow –child of a page-sequence –Attribute flow-name connects to a region with a matching region-name –> the contents is distributed to that region of pages n NB: There are no ‘page’-formatting objects –pages created by the formatter

21 SDPL 2004Notes 6: XSL Formatting21 Content objects for pages n Slightly simplified: fo:static-content* Block-level object+ fo:page-sequence + fo:flow Block-level object+ (repeated on every page) every page) (distributed to pages) to pages)

22 SDPL 2004Notes 6: XSL Formatting22 Some block-level objects fo:block fo:block –commonly used for paragraphs, titles, … –may contain text, other block s, or »fo:inline (to change properties, e.g., font-style of inline text) fo:table for formatting tabular material fo:table for formatting tabular material fo:list-block to format lists of fo:list-block to format lists of –fo:list-item s of » fo:list-item-label and »fo:list-item-body

23 SDPL 2004Notes 6: XSL Formatting23 “Hello world” result tree as an XSL document <fo:page-sequence <fo:page-sequence master-reference="page"> master-reference="page"> Hello World Hello World </fo:root>

24 SDPL 2004Notes 6: XSL Formatting24 Implementations? W3C XSL Rec rather recent (10/2001) W3C XSL Rec rather recent (10/2001) n What is the state of implementations? n Some promising/interesting ones (2004): –XEP by RenderX (XSL-FO to PS/PDF formatter), XSL Formatter by Antenna House »$0 … $5000 (evaluation … server versions; April 2004) –Adobe Document Server –Passive TeX »set of TeX macros to process XSL-FO by Sebastian Rahtz –Apache FOP

25 SDPL 2004Notes 6: XSL Formatting25 Apache FOP n FOP (Formatting Objects Processor) by J. Tauber »“fop: a man who pays too much attention to his appearance” –donated to XML Apache project ( http://xml.apache.org/fop/ ) –open-source freeware –Java-based XML/XSL-FO to PDF (or MIF/PCL/TXT/...) processor –Not complete, but implements a useful subset of XSL 1.0

26 SDPL 2004Notes 6: XSL Formatting26 FOP 0.20.5 XSL-FO-Compliance http://xml.apache.org/fop/compliance.html http://xml.apache.org/fop/compliance.html Implementedfullypartiallynototal formattingobjects 36 36(64%) 17 17 (30%) (30%) 3 (5%) (5%) 56 56 formattingproperties 95 95(38%) 110 110 (44%) (44%) 43 43 (17%) (17%) 248 248 non-aural properties 95 95(41%) 110 110 (48%) (48%) 25 25 (11%) (11%) 230 230

27 SDPL 2004Notes 6: XSL Formatting27 6.2 XSL-FO by Example n From J. David Eisenberg: Using XSL Formatting Objects. XML.com, January 17, 2001, (acknowledging the loan of some graphics) n XSL FO instance for a handbook of Spanish –NB: XSL FO is not designed to be hand-authored –Consider this as a machine-generated result (of an XSLT transformation) Overall structure of fo:root : specification of Overall structure of fo:root : specification of –page masters, followed by –the content of the pages

28 SDPL 2004Notes 6: XSL Formatting28 Example: Page dimensions and margins <fo:layout-master-set> <fo:simple-page-master master-name="cover" <fo:simple-page-master master-name="cover" page-height="12cm" page-height="12cm" page-width="12cm" page-width="12cm" margin-top="0.5cm" margin-top="0.5cm" margin-bottom="0.5cm" margin-bottom="0.5cm" margin-left="1cm" margin-left="1cm" margin-right="0.5cm" > margin-right="0.5cm" > …</fo:layout-master-set> plus similar simple-page-master s with plus similar simple-page-master s with –master-name="rightPage" (identical) –master-name="leftPage" (left and right margins switched)

29 SDPL 2004Notes 6: XSL Formatting29 Intended layout of pages

30 SDPL 2004Notes 6: XSL Formatting30 Page regions A simple page can contain 1-5 regions, specified by child elements of the simple-page-master A simple page can contain 1-5 regions, specified by child elements of the simple-page-master n Let´s refine the page masters with regions

31 SDPL 2004Notes 6: XSL Formatting31 Example: Region dimensions <fo:simple-page-master master-name="cover" <fo:simple-page-master master-name="cover" … dimensions and margins as above … > … dimensions and margins as above … > NB: body uses all space inside page margins  margins of region-body have to accommodate other regions! NB: body uses all space inside page margins  margins of region-body have to accommodate other regions!

32 SDPL 2004Notes 6: XSL Formatting32 Layout of Page Regions

33 SDPL 2004Notes 6: XSL Formatting33 Example: Page Sequences Next: masters for sequences of content pages, using the defined simple-page-master s Next: masters for sequences of content pages, using the defined simple-page-master s –repeatedly alternate masters for left and right pages: –repeatedly alternate masters for left and right pages:

34 SDPL 2004Notes 6: XSL Formatting34 Page Sequences Other attributes of conditional-page-master- reference to select the page master to be used : Other attributes of conditional-page-master- reference to select the page master to be used : –page-position="first" »or "last", or "rest" (neither first or last), or "any" –blank-or-not-blank="blank"/"not-blank" n Next: Specifying the sequences of content pages –by naming masters to be used, and connecting content flow s to regions

35 SDPL 2004Notes 6: XSL Formatting35 Example: Contents of the Cover Page Spanish Review Handbook Copyright © 2001 J. David Eisenberg A Catcode Production Spanish Review Handbook Copyright © 2001 J. David Eisenberg A Catcode Production

36 SDPL 2004Notes 6: XSL Formatting36 Example: Cover Page Formatted Formatting the first page-sequence gives... Formatting the first page-sequence gives...

37 SDPL 2004Notes 6: XSL Formatting37 Example: Content Pages Finally, a page-sequence for content pages Finally, a page-sequence for content pages –with static-content for the header and footer, and a flow for contents of pages: Spanish Review Handbook Spanish Review Handbook

38 SDPL 2004Notes 6: XSL Formatting38 Example: Content Pages Continue n Content for page footers: Página Página n Finally, specify the content of the page body:

39 SDPL 2004Notes 6: XSL Formatting39 Example: Content Pages Continue Assign a flow of blocks to region-body : Assign a flow of blocks to region-body : Watch this space! Watch this space! n Formatting and rendering this gives …

40 SDPL 2004Notes 6: XSL Formatting40 Example: Content Pages Formatted

41 SDPL 2004Notes 6: XSL Formatting41 Using FOs in Practise n XSL FO instances should not be created manually n Instead, use XSLT style rules to create formatting objects –fo:root with layout masters for match="/" –page-sequences with a flow for major parts (like chapters, or the entire document): … –page-sequences with a flow for major parts (like chapters, or the entire document): …

42 SDPL 2004Notes 6: XSL Formatting42 Mapping content elements –content elements would be mapped to blocks, inlines, list-blocks, tables, … as appropriate n For example, headers:

43 SDPL 2004Notes 6: XSL Formatting43 Examples of mapping content elements Formatting in-line emphasis: Formatting in-line emphasis: n More examples in the exercises

44 SDPL 2004Notes 6: XSL Formatting44 Summary n It is a standard! –well, almost: a W3C Recommendation –emerging implementations seem promising –currently used mainly for producing PDF »browser support being expected … n XSL is a powerful (and complex) style language for XML documents –allows arbitrary transformations of input documents –allows fine-tuned specification of formatted representation

45 SDPL 2004Notes 6: XSL Formatting45 Expert Views on XSL n ”What is XSL-FO and When Should I Use It” in Seybold Report, 2(17) (Dec. 02) by S. Deach, an XSL 1.0 co- author and computer scientist at Adobe: –”XSL-FO is now in the ’early-adopter’ phase” –”It is expected that a wide variety of authoring tools become available […] I expect a significant adoption […] over a three-to-five year time frame” –”XSL-FO is best [.. in] generating content-driven documents in response to individual customer requests” –”Today, XSL is most useful if you need to produce customer-tailored, paginated documents on a server.”


Download ppt "SDPL 2004Notes 6: XSL Formatting1 6 XSL: Extensible Stylesheet Language n An advanced style language for XML documents: 1. Language for transforming XML."

Similar presentations


Ads by Google