W3C has released an initial public working draft for Extensible Stylesheet Language (XSL) Version 1.1, updating the W3C XSL Version 1.0 Recommendation published on October 15, 2001. This specification and a companion Extensible Stylesheet Language (XSL) Version 1.1 Requirements document have been produced as part of the W3C XML Activity by the XSL Working Group.
The Extensible Stylesheet Language (XSL) is "a language for expressing stylesheets. Given a class of arbitrarily structured XML documents or data files, designers use an XSL stylesheet to express their intentions about how that structured content should be presented; that is, how the source content should be styled, laid out, and paginated onto some presentation medium, such as a window in a Web browser or a hand-held device, or a set of physical pages in a catalog, report, pamphlet, or book."
"New functionality has been added in XSL Version 1.1 to support change marks, indexes, multiple flows, and bookmarks. Existing functionality has been extended in the areas of graphics scaling, 'markers' and their retrieval in tables to support e.g., partial sums, and page number referencing. A number of errata changes have been incorporated into the text. This document is expected to be taken through the W3C Recommendation track process. Since first becoming a W3C Recommendation, XSL 1.0 has enjoyed widespread support. However, the user community has expressed requirements that have encouraged various implementations to provide extensions to the language. These extensions -- especially those implemented by more than one implementation -- are clear candidates for standardization so as to maximize interoperability. The XSL Working Group has surveyed and analyzed various existing extensions, user requirements, and features intentionally cut from XSL 1.0 due to lack of time. Using the results of this research, the Working Group is developing the XSL 1.1 version that incorporates current errata and includes a subset of relatively simple and upward compatible additions to XSL."
Bibliographic Information
Extensible Stylesheet Language (XSL) Version 1.1. W3C Working Draft 17-December-2003. Edited by Anders Berglund (IBM). Version URL: http://www.w3.org/TR/2003/WD-xsl11-20031217/. Latest version URL: http://www.w3.org/TR/xsl11/. During the development of XSL the members of the XSL FO Subgroup were: Sharon Adler, IBM; Klaas Bals, Inventive Designers; Anders Berglund, IBM; Jeff Caruso, Pageflex; Stephen Deach, Adobe; Tony Graham, Sun Microsystems; Nikolai Grigoriev, RenderX; Paul Grosso, Arbortext; Eliot Kimber, Isogen; Norman Walsh, Sun Microsystems; Steve Zilles, Adobe.
Extensible Stylesheet Language (XSL) Version 1.1 Requirements. W3C Working Draft 17-December-2003. Edited by Paul Grosso (Arbortext). Version URL: http://www.w3.org/TR/2003/WD-xsl11-req-20031217. Latest version URL: http://www.w3.org/TR/xsl11-req.
From the XSL Version 1.1 Requirements
"Since there are already various non-interoperable extensions for many of these features, it is crucial that XSL 1.1 be developed in a timely manner. It is important that added XSL 1.1 features correspond to things that implementors have implemented or things that can be implemented in a reasonable time frame.
After research, requirements gathering, and discussions with vendors and within the working group, we developed the following set of potential requirements for added features to XSL 1.1:
- Change bars
- Index improvements, especially merging page numbers
- Conditional graphic scaling, e.g., 'scale-down-to-fit'
- Table of contents windows (aka bookmarks)
- Table markers that allow dynamically determined text to be put into table headers or footers
- Support for a value of 'only' for the page-position property
- Support for a page-number-citation-last formatting object (retrieving the last page number of a section or document)
- Support for 'flowmaps' and other region/float extensions
The XSL working group plans to develop detailed descriptions of each of these features and may decide to omit something from XSL 1.1 if it does not appear to be addressable within a reasonable time frame..." [excerpted]
XSL Overview
"An XSL stylesheet processor accepts a document or data in XML and an XSL stylesheet and produces the presentation of that XML source content that was intended by the designer of that stylesheet. There are two aspects of this presentation process: first, constructing a result tree from the XML source tree and second, interpreting the result tree to produce formatted results suitable for presentation on a display, on paper, in speech, or onto other media. The first aspect is called tree transformation and the second is called formatting. The process of formatting is performed by the formatter. This formatter may simply be a rendering engine inside a browser.
Tree transformation allows the structure of the result tree to be significantly different from the structure of the source tree. For example, one could add a table-of-contents as a filtered selection of an original source document, or one could rearrange source data into a sorted tabular presentation. In constructing the result tree, the tree transformation process also adds the information necessary to format that result tree.
Formatting is enabled by including formatting semantics in the result tree. Formatting semantics are expressed in terms of a catalog of classes of formatting objects. The nodes of the result tree are formatting objects. The classes of formatting objects denote typographic abstractions such as page, paragraph, table, and so forth. Finer control over the presentation of these abstractions is provided by a set of formatting properties, such as those controlling indents, word- and letter spacing, and widow, orphan, and hyphenation control. In XSL, the classes of formatting objects and formatting properties provide the vocabulary for expressing presentation intent.
Formatting interprets the result tree in its formatting object tree form to produce the presentation intended by the designer of the stylesheet from which the XML element and attribute tree in the 'fo' namespace was constructed.
The vocabulary of formatting objects supported by XSL -- the set of fo: element types -- represents the set of typographic abstractions available to the designer. Semantically, each formatting object represents a specification for a part of the pagination, layout, and styling information that will be applied to the content of that formatting object as a result of formatting the whole result tree. Each formatting object class represents a particular kind of formatting behavior. For example, the block formatting object class represents the breaking of the content of a paragraph into lines. Other parts of the specification may come from other formatting objects; for example, the formatting of a paragraph (block formatting object) depends on both the specification of properties on the block formatting object and the specification of the layout structure into which the block is placed by the formatter.
The properties associated with an instance of a formatting object control the formatting of that object. Some of the properties, for example 'color', directly specify the formatted result. Other properties, for example 'space-before', only constrain the set of possible formatted results without specifying any particular formatted result. The formatter may make choices among other possible considerations such as esthetics..." [adapted from the Version 1.1 Introduction]
Principal references:
- Announcement: XSL 1.1 RD and First WD Have Been Published. From Tony Graham (for the XSL FO Subgroup of the XSL WG).
- Extensible Stylesheet Language (XSL) Version 1.1. W3C Working Draft 17-December-2003.
- Extensible Stylesheet Language (XSL) Version 1.1 Requirements. W3C Working Draft 17-December-2003.
- The Extensible Stylesheet Language Family (XSL)
- XSL FO Tutorial. From RenderX.
- Stylesheet Tutorial, Sample Files of Formatting Objects, and Sample Stylesheets. XSL-FO Tutorial from Antenna House.
- Mail Archives for W3C list 'xsl-editors@w3.org'
- XSL Working Group patent disclosures
- W3C XML Activity
- "XSL/XSLT Software Support" - General references.
- "Extensible Stylesheet Language (XSL/XSLT)" - General references.