XSL is a language for expressing stylesheets. It consists of two parts:
-
a language for transforming XML documents, and
-
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.
This document is a W3C Candidate Recommendation. The XSL WG considers this
specification to be stable and encourges implementation and comment during the
CR review period. The Candidate Recommendation review period ends on February
28, 2001.
Please send detailed comments and reports of implementation experience to xsl-editors@w3.org before the end of the CR
review period. Archives of the
comments are available. More general public discussion of XSL takes place on the
XSL-List
mailing list.
Should this specification prove impossible to implement, the Working Group
will return the document to Working Draft status and make necessary changes.
Otherwise, the Working Group anticipates asking the W3C Director to advance this
document to Proposed Recommendation.
This document has been produced as part of the W3C Style Activity by the XSL Working Group (members only).
A list of current W3C working drafts can be found at http://www.w3.org/TR. They may be updated,
replaced, or obsoleted by other documents at any time. It is inappropriate to
use W3C Candidate Recommendations as reference material or to cite them as other
than "work in progress".
1 Introduction
and Overview
1.1 Processing
a Stylesheet
1.1.1 Tree
Transformations
1.1.2 Formatting
1.2 Benefits
of XSL
1.2.1 Paging
and Scrolling
1.2.2 Selectors
and Tree Construction
1.2.3 An
Extended Page Layout Model
1.2.4 A
Comprehensive Area Model
1.2.5 Internationalization
and Writing-Modes
1.2.6
Linking
2 Introduction
to XSL Transformation
2.1 Tree
Construction
2.2 XSL
Namespace
3 Introduction
to Formatting
3.1 Conceptual
Procedure
4 Area
Model
4.1 Introduction
4.2 Rectangular
Areas
4.2.1 Area
Types
4.2.2 Common
Traits
4.2.3 Geometric
Definitions
4.2.4 Tree
Ordering
4.2.5 Stacking
Constraints
4.2.6 Font
Baseline Tables
4.3 Spaces
and Conditionality
4.3.1
Space-resolution
Rules
4.4 Block-areas
4.4.1 Stacked
Block-areas
4.4.2 Intrusion
Adjustments
4.5 Line-areas
4.6 Inline-areas
4.6.1 Stacked
Inline-areas
4.6.2 Glyph-areas
4.7 Ordering
Constraints
4.7.1 General
Ordering Constraints
4.7.2 Line-building
4.7.3 Inline-building
4.8 Keeps and
Breaks
4.9 Rendering
Model
4.9.1 Geometry
4.9.2 Viewport
Geometry
4.9.3 Visibility
4.9.4 Border,
Padding, and Background
4.9.5 Intrinsic
Marks
4.9.6 Layering
and Conflict of Marks
4.10 Sample
Area Tree
5 Property
Refinement / Resolution
5.1 Specified,
Computed, and Actual Values, and Inheritance
5.1.1 Specified
Values
5.1.2 Computed
Values
5.1.3 Actual
Values
5.1.4 Inheritance
5.2 Shorthand
Expansion
5.3 Computing
the Values of Corresponding Properties
5.3.1 Border
and Padding Properties
5.3.2 Margin,
Space, and Indent Properties
5.3.3 Height,
and Width Properties
5.3.4 Overconstrained
Geometry
5.4 Simple
Property to Trait Mapping
5.4.1 Background-position-horizontal
and background-position-vertical Properties
5.4.2 Column-number
Property
5.4.3 Text-align
Property
5.4.4 Text-align-last
Property
5.4.5 z-index
Property
5.5 Complex
Property to Trait Mapping
5.5.1 Word-spacing
and Letter-spacing Properties
5.5.2 Reference-orientation
Property
5.5.3 Writing-mode
and Direction Properties
5.5.4 Absolute-position
Property
5.5.5 Relative-position
Property
5.5.6 Text-decoration
Property
5.5.7 Font
Properties
5.6 Non-property
Based Trait Generation
5.7 Property
Based Transformations
5.7.1 Text-transform
Property
5.8 Unicode
Bidi Processing
5.9 Expressions
5.9.1 Property
Context
5.9.2 Evaluation
Order
5.9.3 Basics
5.9.4 Function
Calls
5.9.5 Numerics
5.9.6 Absolute
Numerics
5.9.7 Relative
Numerics
5.9.8 Strings
5.9.9 Colors
5.9.10 Keywords
5.9.11 Lexical
Structure
5.9.12 Expression
Value Conversions
5.9.13
Definitions
of Units of Measure
5.10 Core
Function Library
5.10.1
Number
Functions
5.10.2 Color
Functions
5.10.3 Font
Functions
5.10.4 Property
Value Functions
5.11 Property
Datatypes
6 Formatting
Objects
6.1 Introduction
to Formatting Objects
6.1.1 Definitions
Common to Many Formatting Objects
6.2 Formatting
Object Content
6.3 Formatting
Objects Summary
6.4 Declarations
and Pagination and Layout Formatting Objects
6.4.1 Introduction
6.4.2 fo:root
6.4.3 fo:declarations
6.4.4 fo:color-profile
6.4.5 fo:page-sequence
6.4.6 fo:layout-master-set
6.4.7 fo:page-sequence-master
6.4.8 fo:single-page-master-reference
6.4.9 fo:repeatable-page-master-reference
6.4.10 fo:repeatable-page-master-alternatives
6.4.11 fo:conditional-page-master-reference
6.4.12 fo:simple-page-master
6.4.13 fo:region-body
6.4.14 fo:region-before
6.4.15 fo:region-after
6.4.16 fo:region-start
6.4.17 fo:region-end
6.4.18 fo:flow
6.4.19 fo:static-content
6.4.20 fo:title
6.5 Block-level
Formatting Objects
6.5.1
Introduction
6.5.2 fo:block
6.5.3 fo:block-container
6.6 Inline-level
Formatting Objects
6.6.1
Introduction
6.6.2 fo:bidi-override
6.6.3 fo:character
6.6.4 fo:initial-property-set
6.6.5 fo:external-graphic
6.6.6 fo:instream-foreign-object
6.6.7 fo:inline
6.6.8 fo:inline-container
6.6.9 fo:leader
6.6.10 fo:page-number
6.6.11 fo:page-number-citation
6.7 Formatting
Objects for Tables
6.7.1
Introduction
6.7.2 fo:table-and-caption
6.7.3 fo:table
6.7.4 fo:table-column
6.7.5 fo:table-caption
6.7.6 fo:table-header
6.7.7 fo:table-footer
6.7.8 fo:table-body
6.7.9 fo:table-row
6.7.10 fo:table-cell
6.8 Formatting
Objects for Lists
6.8.1
Introduction
6.8.2 fo:list-block
6.8.3 fo:list-item
6.8.4 fo:list-item-body
6.8.5 fo:list-item-label
6.9 Dynamic
Effects: Link and Multi Formatting Objects
6.9.1 Introduction
6.9.2 fo:basic-link
6.9.3 fo:multi-switch
6.9.4 fo:multi-case
6.9.5 fo:multi-toggle
6.9.6 fo:multi-properties
6.9.7 fo:multi-property-set
6.10 Out-of-Line
Formatting Objects
6.10.1 Introduction
6.10.2 fo:float
6.10.3 fo:footnote
6.10.4 fo:footnote-body
6.11 Other
Formatting Objects
6.11.1 Introduction
6.11.2 fo:wrapper
6.11.3 fo:marker
6.11.4 fo:retrieve-marker
7 Formatting
Properties
7.1 Description
of Property Groups
7.2 XSL Areas
and the CSS Box Model
7.3 Common
Accessibility Properties
7.3.1 source-document
7.3.2 role
7.4 Common
Absolute Position Properties
7.4.1 absolute-position
7.4.2 top
7.4.3 right
7.4.4 bottom
7.4.5 left
7.5 Common
Aural Properties
7.5.1
azimuth
7.5.2 cue-after
7.5.3 cue-before
7.5.4 elevation
7.5.5 pause-after
7.5.6 pause-before
7.5.7 pitch
7.5.8 pitch-range
7.5.9 play-during
7.5.10 richness
7.5.11 speak
7.5.12 speak-header
7.5.13 speak-numeral
7.5.14 speak-punctuation
7.5.15 speech-rate
7.5.16 stress
7.5.17 voice-family
7.5.18 volume
7.6 Common
Border, Padding, and Background Properties
7.6.1 background-attachment
7.6.2 background-color
7.6.3 background-image
7.6.4 background-repeat
7.6.5 background-position-horizontal
7.6.6 background-position-vertical
7.6.7 border-before-color
7.6.8 border-before-style
7.6.9 border-before-width
7.6.10 border-after-color
7.6.11 border-after-style
7.6.12 border-after-width
7.6.13 border-start-color
7.6.14 border-start-style
7.6.15 border-start-width
7.6.16 border-end-color
7.6.17 border-end-style
7.6.18 border-end-width
7.6.19 border-top-color
7.6.20 border-top-style
7.6.21 border-top-width
7.6.22 border-bottom-color
7.6.23 border-bottom-style
7.6.24 border-bottom-width
7.6.25 border-left-color
7.6.26 border-left-style
7.6.27 border-left-width
7.6.28 border-right-color
7.6.29 border-right-style
7.6.30 border-right-width
7.6.31 padding-before
7.6.32 padding-after
7.6.33 padding-start
7.6.34 padding-end
7.6.35 padding-top
7.6.36 padding-bottom
7.6.37 padding-left
7.6.38 padding-right
7.7 Common
Font Properties
7.7.1 Fonts
and Font Data
7.7.2 font-family
7.7.3 font-selection-strategy
7.7.4 font-size
7.7.5 font-stretch
7.7.6 font-size-adjust
7.7.7 font-style
7.7.8 font-variant
7.7.9 font-weight
7.8 Common
Hyphenation Properties
7.8.1 country
7.8.2 language
7.8.3 script
7.8.4 hyphenate
7.8.5 hyphenation-character
7.8.6 hyphenation-push-character-count
7.8.7 hyphenation-remain-character-count
7.9 Common
Margin Properties-Block
7.9.1 margin-top
7.9.2 margin-bottom
7.9.3 margin-left
7.9.4 margin-right
7.9.5 space-before
7.9.6 space-after
7.9.7 start-indent
7.9.8 end-indent
7.10 Common
Margin Properties-Inline
7.10.1 space-end
7.10.2 space-start
7.11 Common
Relative Position Properties
7.11.1 relative-position
7.12 Area
Alignment Properties
7.12.1 alignment-adjust
7.12.2 alignment-baseline
7.12.3 baseline-shift
7.12.4 display-align
7.12.5 dominant-baseline
7.12.6 relative-align
7.13 Area
Dimension Properties
7.13.1 block-progression-dimension
7.13.2 content-height
7.13.3 content-width
7.13.4 height
7.13.5 inline-progression-dimension
7.13.6 max-height
7.13.7 max-width
7.13.8 min-height
7.13.9 min-width
7.13.10 scaling
7.13.11 scaling-method
7.13.12 width
7.14 Block
and Line-related Properties
7.14.1 hyphenation-keep
7.14.2 hyphenation-ladder-count
7.14.3 last-line-end-indent
7.14.4 line-height
7.14.5 line-height-shift-adjustment
7.14.6 line-stacking-strategy
7.14.7 linefeed-treatment
7.14.8 space-treatment
7.14.9 text-align
7.14.10 text-align-last
7.14.11 text-indent
7.14.12 white-space-collapse
7.14.13 wrap-option
7.15 Character
Properties
7.15.1 character
7.15.2 letter-spacing
7.15.3 suppress-at-line-break
7.15.4 text-decoration
7.15.5 text-shadow
7.15.6 text-transform
7.15.7 treat-as-word-space
7.15.8 word-spacing
7.16 Color-related
Properties
7.16.1 color
7.16.2 color-profile-name
7.16.3 rendering-intent
7.17 Float-related
Properties
7.17.1 clear
7.17.2 float
7.18 Keeps
and Breaks Properties
7.18.1 break-after
7.18.2 break-before
7.18.3 keep-together
7.18.4 keep-with-next
7.18.5 keep-with-previous
7.18.6 orphans
7.18.7 widows
7.19 Layout-related
Properties
7.19.1 clip
7.19.2 overflow
7.19.3 reference-orientation
7.19.4 span
7.20 Leader
and Rule Properties
7.20.1 leader-alignment
7.20.2 leader-pattern
7.20.3 leader-pattern-width
7.20.4 leader-length
7.20.5 rule-style
7.20.6 rule-thickness
7.21 Properties
for Dynamic Effects Formatting Objects
7.21.1 active-state
7.21.2 auto-restore
7.21.3 case-name
7.21.4 case-title
7.21.5 destination-placement-offset
7.21.6 external-destination
7.21.7 indicate-destination
7.21.8 internal-destination
7.21.9 show-destination
7.21.10 starting-state
7.21.11 switch-to
7.21.12 target-presentation-context
7.21.13 target-processing-context
7.21.14 target-stylesheet
7.22 Properties
for Markers
7.22.1 marker-class-name
7.22.2 retrieve-class-name
7.22.3 retrieve-position
7.22.4 retrieve-boundary
7.23 Properties
for Number to String Conversion
7.23.1 format
7.23.2 grouping-separator
7.23.3 grouping-size
7.23.4 letter-value
7.24 Pagination
and Layout Properties
7.24.1 blank-or-not-blank
7.24.2 column-count
7.24.3 column-gap
7.24.4 extent
7.24.5 flow-name
7.24.6 force-page-count
7.24.7 initial-page-number
7.24.8 master-name
7.24.9 maximum-repeats
7.24.10 media-usage
7.24.11 odd-or-even
7.24.12 page-height
7.24.13 page-position
7.24.14 page-width
7.24.15 precedence
7.24.16 region-name
7.25 Table
Properties
7.25.1 border-after-precedence
7.25.2 border-before-precedence
7.25.3 border-collapse
7.25.4 border-end-precedence
7.25.5 border-separation
7.25.6 border-start-precedence
7.25.7 caption-side
7.25.8 column-number
7.25.9 column-width
7.25.10 empty-cells
7.25.11 ends-row
7.25.12 number-columns-repeated
7.25.13 number-columns-spanned
7.25.14 number-rows-spanned
7.25.15 starts-row
7.25.16 table-layout
7.25.17 table-omit-footer-at-break
7.25.18 table-omit-header-at-break
7.26 Writing-mode-related
Properties
7.26.1 direction
7.26.2 glyph-orientation-horizontal
7.26.3 glyph-orientation-vertical
7.26.4 text-altitude
7.26.5 text-depth
7.26.6 unicode-bidi
7.26.7 writing-mode
7.27 Miscellaneous
Properties
7.27.1 content-type
7.27.2 id
7.27.3 provisional-label-separation
7.27.4 provisional-distance-between-starts
7.27.5 ref-id
7.27.6 score-spaces
7.27.7 src
7.27.8 visibility
7.27.9 z-index
7.28 Shorthand
Properties
7.28.1 background
7.28.2 background-position
7.28.3 border
7.28.4 border-bottom
7.28.5 border-color
7.28.6 border-left
7.28.7 border-right
7.28.8 border-style
7.28.9 border-spacing
7.28.10 border-top
7.28.11 border-width
7.28.12 cue
7.28.13 font
7.28.14 margin
7.28.15 padding
7.28.16 page-break-after
7.28.17 page-break-before
7.28.18 page-break-inside
7.28.19 pause
7.28.20 position
7.28.21 size
7.28.22 vertical-align
7.28.23 white-space
7.28.24 xml:lang
8 Conformance
Appendices
A Internationalization
A.1 Additional
writing-mode values
B Formatting
Object Summary
B.1 Declaration
and Pagination and Layout Formatting Objects
B.2
Block
Formatting Objects
B.3 Inline
Formatting Objects
B.4 Table
Formatting Objects
B.5 List
Formatting Objects
B.6 Link
and Multi Formatting Objects
B.7 Out-of-line
Formatting Objects
B.8 Other
Formatting Objects
C Property
Summary
C.1 Explanation
of Trait Mapping Values
C.2 Property
Table: Part I
C.3 Property
Table: Part II
D References
D.1 Normative
References
D.2 Other
References
E Property
Index
F Acknowledgements
(Non-Normative)