Extensible Stylesheet Language (XSL) Specification

W3C Working Draft 21 Apr 1999

This version:
http://www.w3.org/TR/1999/WD-xsl-19990421
Latest version:
http://www.w3.org/TR/WD-xsl
Previous version:
http://www.w3.org/TR/1999/WD-xsl-19981216
Editor:
Stephen Deach, Adobe Systems Inc. <sdeach@adobe.com>

Abstract

XSL is a language for expressing stylesheets. It consists of two parts:

  1. a language for transforming XML documents, and

  2. an XML vocabulary for specifying formatting semantics.

An XSL stylesheet specifies the presentation of a class of XML documents by describing how an instance of the class is transformed into an XML document that uses the formatting vocabulary.

Status of this document

This is a W3C Working Draft for review by W3C members and other interested parties. This adds additional functionality to what was described in the previous draft. It is a draft document and may be updated, replaced, or obsoleted by other documents at any time. The XSL Working Group will not allow early implementation to constrain its ability to make changes to this specification prior to final release. It is inappropriate to use W3C Working Drafts as reference material or to cite them as other than "work in progress". A list of current W3C working drafts can be found at http://www.w3.org/TR.

Comments may be sent to xsl-editors@w3.org. Public discussion of XSL takes place on the XSL-List mailing list.

Table of contents

1. Introduction and Overview
1.1 Processing a Stylesheet
1.1.1 Tree Transformations
1.1.2 Formatting
1.2 Why XSL?
1.2.1 More Powerful "Selectors" and "Tree Construction"
1.2.2 Provision for an Extensible Page Layout Model
1.2.3 An Extended Formatting Model
1.2.4 Internationalization and Writing-Modes
1.2.5 Linking
1.3 How-to Read this Document
1.4 The Definitions of Formatting Objects
2. Tree Construction
3. Common Mechanisms
3.1 Specified, Computed, and Actual Values and Inheritance
3.1.1 Specified values
3.1.2 Computed values
3.1.3 Actual values
3.2 Inheritance
3.3 Computing the values of Corresponding Properties
3.3.1 Properties with a Simple Correspondance
3.3.2 Space and Margin Properties
3.3.3 Start-indent and End-indent
3.4 Formatting Model
3.4.1 Introduction
3.4.2 Rectangular areas
3.4.3 Display-spaces
3.4.4 Inline-spaces
3.4.5 Area-containers
3.4.6 Block-areas
3.4.7 Line-areas
3.4.8 Inline-areas
3.4.9 Inline-area placement within a line-area
3.4.10 Line-area placement within a block-area
3.4.11 Block-area placement
3.4.12 Area-container placement
3.5 Formatting Expressions
3.5.1 Datatypes
3.5.2 Expressions
3.6 Property Datatypes
3.6.1 Name
3.6.2 ID
3.6.3 IDREF
3.6.4 Boolean
3.6.5 Char
3.6.6 Signed Length
3.6.7 Unsigned Length
3.6.8 Positive Length
3.6.9 Signed Integer
3.6.10 Unsigned Integer
3.6.11 Positive Integer
3.6.12 Percent
3.6.13 Color
3.6.14 Signed Real
3.6.15 Unsigned Real
3.6.16 Positive Real
3.6.17 Space Specifier
3.6.18 URI
3.6.19 Language
3.6.20 Country
3.6.21 Font Name
3.6.22 Font List
3.6.23 Enumeration
3.6.24 String
4. Formatting Objects
4.1 Overview
4.1.1 Pagination and Layout Formatting Objects
4.1.2 Block Formatting Objects
4.1.3 Inline Formatting Objects
4.1.4 Formatting Objects for Tables
4.1.5 Formatting Objects for Lists
4.1.6 Link and Multi Formatting Objects
4.1.7 Out-of-Line Formatting Objects
4.2 Formatting Objects Summary
4.3 Pagination and Layout Formatting Objects
4.3.1 fo:root
4.3.2 fo:page-sequence
4.3.3 fo:sequence-specification
4.3.4 fo:sequence-specifier-single
4.3.5 fo:sequence-specifier-alternating
4.3.6 fo:sequence-specifier-repeating
4.3.7 fo:layout-master-set
4.3.8 fo:simple-page-master
4.3.9 fo:region-body
4.3.10 fo:region-before
4.3.11 fo:region-after
4.3.12 fo:region-start
4.3.13 fo:region-end
4.3.14 fo:flow
4.3.15 fo:static-content
4.4 Block Formatting Objects
4.4.1 fo:block
4.4.2 fo:display-graphic
4.4.3 fo:display-included-container
4.4.4 fo:display-rule
4.4.5 fo:display-sequence
4.5 Inline Formatting Objects
4.5.1 fo:bidi-override
4.5.2 fo:character
4.5.3 fo:first-line-marker
4.5.4 fo:inline-graphic
4.5.5 fo:inline-included-container
4.5.6 fo:inline-rule
4.5.7 fo:inline-sequence
4.5.8 fo:page-number
4.5.9 fo:page-number-citation
4.6 Formatting Objects for Tables
4.6.1 fo:table-and-caption
4.6.2 fo:table
4.6.3 fo:table-column
4.6.4 fo:table-caption
4.6.5 fo:table-header
4.6.6 fo:table-footer
4.6.7 fo:table-body
4.6.8 fo:table-row
4.6.9 fo:table-cell
4.7 Formatting Objects for Lists
4.7.1 fo:list-block
4.7.2 fo:list-item
4.7.3 fo:list-item-body
4.7.4 fo:list-item-label
4.8 Link and Multi Formatting Objects
4.8.1 fo:simple-link
4.8.2 fo:multi-switch
4.8.3 fo:multi-case
4.8.4 fo:multi-toggle
4.8.5 fo:multi-properties
4.8.6 fo:multi-property-set
4.9 Out-of-Line Formatting Objects
4.9.1 fo:float
4.9.2 fo:footnote
4.9.3 fo:footnote-citation
5. Formatting Properties
5.1 Description of Property Groups
5.2 Common Absolute Position Properties
5.2.1 position
5.2.2 top
5.2.3 right
5.2.4 bottom
5.2.5 left
5.3 Common Aural Properties
5.3.1 azimuth
5.3.2 cue
5.3.3 cue-after
5.3.4 cue-before
5.3.5 elevation
5.3.6 pause
5.3.7 pause-after
5.3.8 pause-before
5.3.9 pitch
5.3.10 pitch-range
5.3.11 play-during
5.3.12 richness
5.3.13 speak
5.3.14 speak-header
5.3.15 speak-numeral
5.3.16 speak-punctuation
5.3.17 speech-rate
5.3.18 stress
5.3.19 voice-family
5.3.20 volume
5.4 Common Border, Padding, and Background Properties
5.4.1 background
5.4.2 background-attachment
5.4.3 background-color
5.4.4 background-image
5.4.5 background-repeat
5.4.6 background-position
5.4.7 border-before-color
5.4.8 border-before-style
5.4.9 border-before-width
5.4.10 border-after-color
5.4.11 border-after-style
5.4.12 border-after-width
5.4.13 border-start-color
5.4.14 border-start-style
5.4.15 border-start-width
5.4.16 border-end-color
5.4.17 border-end-style
5.4.18 border-end-width
5.4.19 border-top-color
5.4.20 border-top-style
5.4.21 border-top-width
5.4.22 border-bottom-color
5.4.23 border-bottom-style
5.4.24 border-bottom-width
5.4.25 border-left-color
5.4.26 border-left-style
5.4.27 border-left-width
5.4.28 border-right-color
5.4.29 border-right-style
5.4.30 border-right-width
5.4.31 border
5.4.32 border-top
5.4.33 border-bottom
5.4.34 border-left
5.4.35 border-right
5.4.36 border-color
5.4.37 border-style
5.4.38 border-width
5.4.39 padding-before
5.4.40 padding-after
5.4.41 padding-start
5.4.42 padding-end
5.4.43 padding-top
5.4.44 padding-bottom
5.4.45 padding-left
5.4.46 padding-right
5.4.47 padding
5.5 Common Font Properties
5.5.1 font
5.5.2 font-family
5.5.3 font-size
5.5.4 font-stretch
5.5.5 font-size-adjust
5.5.6 font-style
5.5.7 font-variant
5.5.8 font-weight
5.6 Common Hyphenation Properties
5.6.1 country
5.6.2 hyphenate
5.6.3 hyphenation-char
5.6.4 hyphenation-push-char-count
5.6.5 hyphenation-remain-char-count
5.6.6 language
5.6.7 script
5.7 Common Keeps and Breaks Properties
5.7.1 break-after
5.7.2 break-before
5.7.3 keep-with-next
5.7.4 keep-with-previous
5.8 Common Margin Properties-Block
5.8.1 margin-top
5.8.2 margin-bottom
5.8.3 margin-left
5.8.4 margin-right
5.8.5 margin
5.8.6 space-before
5.8.7 space-after
5.8.8 start-indent
5.8.9 end-indent
5.9 Common Margin Properties-Inline
5.9.1 space-end
5.9.2 space-start
5.10 Pagination and Layout Properties
5.10.1 column-count
5.10.2 column-gap
5.10.3 extent
5.10.4 flow-name
5.10.5 initial-page-number
5.10.6 page-master-blank-even
5.10.7 page-master-even
5.10.8 page-master-first
5.10.9 page-master-last-even
5.10.10 page-master-last-odd
5.10.11 page-master-name
5.10.12 page-master-odd
5.10.13 page-master-repeating
5.10.14 page-height
5.10.15 page-width
5.10.16 precedence
5.11 Table Properties
5.11.1 caption-side
5.11.2 table-layout
5.11.3 border-collapse
5.11.4 border-spacing
5.11.5 empty-cells
5.11.6 table-width
5.11.7 table-height
5.11.8 table-omit-middle-header
5.11.9 table-omit-middle-footer
5.11.10 column-number
5.11.11 n-columns-spanned
5.11.12 n-rows-spanned
5.11.13 column-width
5.11.14 n-columns-repeated
5.11.15 caption-width
5.11.16 row-height
5.11.17 may-break-after-row
5.11.18 may-break-before-row
5.11.19 ends-row
5.11.20 starts-row
5.11.21 cell-height
5.12 Character Properties
5.12.1 character
5.12.2 letter-spacing
5.12.3 word-spacing
5.12.4 text-decoration
5.12.5 text-shadow
5.12.6 text-transform
5.13 Rule Properties
5.13.1 rule-orientation
5.13.2 rule-style
5.13.3 rule-thickness
5.13.4 length
5.14 Page-related Properties
5.14.1 page-break-inside
5.14.2 orphans
5.14.3 widows
5.15 Horizontal Float-related Properties
5.15.1 float
5.15.2 clear
5.16 Properties for Number to String Conversion
5.16.1 format
5.16.2 letter-value
5.16.3 digit-group-sep
5.16.4 n-digits-per-group
5.16.5 sequence-src
5.17 Properties for Links
5.17.1 external-destination
5.17.2 internal-destination
5.17.3 show-destination
5.17.4 indicate-destination
5.17.5 space-above-destination-start
5.17.6 space-above-destination-block
5.17.7 auto-restore
5.17.8 initial
5.17.9 name
5.17.10 title
5.17.11 switch-to
5.17.12 state
5.18 Miscellaneous Properties
5.18.1 clip
5.18.2 color
5.18.3 direction
5.18.4 font-height-override-after
5.18.5 font-height-override-before
5.18.6 href
5.18.7 hyphenation-keep
5.18.8 hyphenation-ladder-count
5.18.9 id
5.18.10 inhibit-line-breaks
5.18.11 last-line-end-indent
5.18.12 line-height-shift-adjustment
5.18.13 line-height
5.18.14 line-stacking-strategy
5.18.15 min-width
5.18.16 max-width
5.18.17 height
5.18.18 min-height
5.18.19 max-height
5.18.20 overflow
5.18.21 ref-id
5.18.22 provisional-label-separation
5.18.23 provisional-distance-between-starts
5.18.24 space-between-list-rows
5.18.25 reference-orientation
5.18.26 scale
5.18.27 score-spaces
5.18.28 size
5.18.29 span
5.18.30 width
5.18.31 text-align
5.18.32 text-align-last
5.18.33 text-indent
5.18.34 vertical-align
5.18.35 visibility
5.18.36 wrap-option
5.18.37 white-space-treatment
5.18.38 writing-mode
5.18.39 z-index
6. Defined Terms

Appendices

A. DTD for XSL Formatting Objects
B. References
B.1 Normative References
B.2 Other References
C. Acknowledgements (Non-Normative)