XSL Formatting Objects Summary

Richard Ishida

This document provides a summary of the content and properties of XSL Formatting Objects.

Links point to the description in the W3C Recommendation version of the Extensible Stylesheet Language (XSL) Version 1.0.

The 'CL' column shows the conformance level: [B]asic, [E]xtended, [C]omplete.

Names of property groups are expanded in list form at the bottom of the table.

§ Object Name CL Contents Properties
Return to top of page.Declarations, etc.
6.4.2 <fo:root> B (layout-master-set,declarations?, page-sequence+)
6.4.3 <fo:declarations> B (color-profile)+  
6.4.4 <fo:color-profile> E EMPTY
6.4.5 <fo:page-sequence> B (title?,static-content*,flow)
6.4.6 <fo:layout-master-set> B (simple-page-master|page-sequence-master)+  
6.4.7 <fo:page-sequence-master> B (single-page-master-reference| repeatable-page-master-reference| repeatable-page-master-alternatives)+
6.4.8 <fo:single-page-master-reference> B EMPTY
6.4.9 <fo:repeatable-page-master-reference> B EMPTY
6.4.10 <fo:repeatable-page-master-alternatives> E (conditional-page-master-reference+)
6.4.11 <fo:conditional-page-master-reference> E EMPTY
6.4.12 <fo:simple-page-master> B (region-body,region-before?, region-after?,region-start?,region-end?)
6.4.13 <fo:region-body> B EMPTY
6.4.14 <fo:region-before> E EMPTY
6.4.15 <fo:region-after> E EMPTY
6.4.16 <fo:region-start> E EMPTY
6.4.17 <fo:region-end> E EMPTY
6.4.18 <fo:flow> B (%block;)+

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

6.4.19 <fo:static-content> E (%block;)+
6.4.20 <fo:title> E (#PCDATA|%inline;)*

An fo:title is not permitted to have an fo:float, fo:footnote or fo:marker as a descendant.

Additionally, an fo:title is not permitted to have as a descendant an fo:block-container that generates an absolutely positioned area.

 

Return to top of page.Block level FOs
6.5.2 <fo:block> B (#PCDATA|%inline;|%block;)*

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children, optionally followed by an fo:initial-property-set

6.5.3 <fo:block-container> E (%block;)+

In addition an fo:block-container that does not generate an absolutely positioned area may have a sequence of zero or more fo:markers as its initial children

Return to top of page.In-line level FOs
6.6.2 <fo:bidi-override> E (#PCDATA|%inline;|%block;)*

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children.

An fo:bidi-override that is a descendant of an fo:leader or of an fo:inline child of an fo:footnote may not have block-level children, unless it has a nearer ancestor that is an fo:inline-container

 

6.6.3 <fo:character> B EMPTY
6.6.4 <fo:initial-property-set> E EMPTY
6.6.5 <fo:external-graphic> B EMPTY
6.6.6 <fo:instream-foreign-object> E The fo:instream-foreign-object flow object has a child from a non-XSL namespace. The permitted structure of this child is that defined for that namespace.

The fo:instream-foreign-object flow object may have additional attributes in the non-XSL namespace. These, as well as the xsl defined properties, are made available to the processor of the content of the flow object. Their semantics is defined by that namespace

6.6.7 <fo:inline> B (#PCDATA|%inline;|%block;)*

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children.

An fo:inline that is a child of an fo:footnote may not have block-level children. An fo:inline that is a descendant of an fo:leader or of the fo:inline child of an fo:footnote may not have block-level children, unless it has a nearer ancestor that is an fo:inline-container

 

6.6.8 <fo:inline-container> E (%block;)+

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

6.6.9 <fo:leader> B (#PCDATA|%inline;)*  

must not contain an fo:leader, fo:inline-container, fo:block-container, fo:float, fo:footnote, or fo:marker either as a direct child or as a descendant

6.6.10 <fo:page-number> B EMPTY
6.6.11 <fo:page-number-citation> E EMPTY
Return to top of page.Table FOs
6.7.2 <fo:table-and-caption> B (table-caption?,table)

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

6.7.3 <fo:table> B (table-column*,table-header?, table-footer?,table-body+)

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

6.7.4 <fo:table-column> B EMPTY
6.7.5 <fo:table-caption> E (%block;)+

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

6.7.6 <fo:table-header> B (table-row+|table-cell+)

The fo:table-header has fo:table-row (one or more) as its children, or alternatively fo:table-cell (one or more). In the latter case cells are grouped into rows using the starts-row and ends-row properties.

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

6.7.7 <fo:table-footer> E (table-row+|table-cell+)

The fo:table-footer has fo:table-row (one or more) as its children, or alternatively fo:table-cell (one or more). In the latter case cells are grouped into rows using the starts-row and ends-row properties.

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

6.7.8 <fo:table-body> B (table-row+|table-cell+)

The fo:table-body has fo:table-row (one or more) as its children, or alternatively fo:table-cell (one or more). In the latter case cells are grouped into rows using the starts-row and ends-row properties.

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

6.7.9 <fo:table-row> B (table-cell+)
6.7.10 <fo:table-cell> B (%block;)+

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

Return to top of page.List FOs
6.8.2 <fo:list-block> B (list-item+)

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

6.8.3 <fo:list-item> B (list-item-label,list-item-body)

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

6.8.4 <fo:list-item-body> B (%block;)+

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

6.8.5 <fo:list-item-label> E (%block;)+

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

Return to top of page.Link FOs
6.9.2 <fo:basic-link> E (#PCDATA|%inline;|%block;)*

In addition this formatting object may have a sequence of zero or more fo:markers as its initial children

6.9.3 <fo:multi-switch> E (multi-case+)
6.9.4 <fo:multi-case> B (#PCDATA|%inline;|%block;)*

An fo:multi-case is only permitted to have children that would be permitted to be children of the parent of the fo:multi-switch that is the parent of the fo:multi-case, except that an fo:multi-case may not contain fo:marker children. In particular, it can contain fo:multi-toggle objects (at any depth), which controls the fo:multi-case switching.

This restriction applies recursively.

NOTE:

For example, an fo:multi-case whose parent fo:multi-switch is a child of another fo:multi-case may only have children that would be permitted in place of the outer fo:multi-case's parent fo:multi-switch.

6.9.5 <fo:multi-toggle> E (#PCDATA|%inline;|%block;)*

An fo:multi-toggle is only permitted as a descendant of an fo:multi-case

6.9.6 <fo:multi-properties> E (multi-property-set+,wrapper)

The properties that should take a merged value shall be specified with a value of "merge-property-values()". This function, when applied on an fo:wrapper that is a direct child of an fo:multi-properties, merges the applicable property definitions on the fo:multi-property-set siblings

6.9.7 <fo:multi-property-set> E EMPTY
Return to top of page.Out of line FOs
6.10.2 <fo:float> E (%block;)+

An fo:float is not permitted to have an fo:float, fo:footnote or fo:marker as a descendant.

Additionally, an fo:float is not permitted to have as a descendant an fo:block-container that generates an absolutely positioned area

6.10.3 <fo:footnote> E (inline,footnote-body)

An fo:footnote is not permitted to have an fo:float, fo:footnote, or fo:marker as a descendant.

Additionally, an fo:footnote is not permitted to have as a descendant an fo:block-container that generates an absolutely positioned area

6.10.4 <fo:footnote-body> E (%block;)+
Return to top of page.Other FOs
6.11.2 <fo:wrapper> B (#PCDATA|%inline;|%block;)*

An fo:wrapper is only permitted to have children that would be permitted to be children of the parent of the fo:wrapper, with two exceptions:

  • An fo:wrapper may always have a sequence of zero or more fo:markers as its initial children.

  • An fo:wrapper that is a child of an fo:multi-properties is only permitted to have children that would be permitted in place of the fo:multi-properties.

This restriction applies recursively.

NOTE:

For example an fo:wrapper that is a child of another fo:wrapper may only have children that would be permitted to be children of the parent fo:wrapper

 

6.11.3 <fo:marker> E (#PCDATA|%inline;|%block;)*

An fo:marker may contain any formatting objects that are permitted as a replacement of any fo:retrieve-marker that retrieves the fo:marker's children

6.11.4 <fo:retrieve-marker> E EMPTY
Return to top of page.Grouped properties
7.4 Common Accessibility Properties             7.4.1 source-document
        7.4.2 role
7.5 Common Absolute Position Properties             7.5.1 absolute-position
        7.5.2 top
        7.5.3 right
        7.5.4 bottom
        7.5.5 left
7.6 Common Aural Properties             7.6.1 azimuth
        7.6.2 cue-after
        7.6.3 cue-before
        7.6.4 elevation
        7.6.5 pause-after
        7.6.6 pause-before
        7.6.7 pitch
        7.6.8 pitch-range
        7.6.9 play-during
        7.6.10 richness
        7.6.11 speak
        7.6.12 speak-header
        7.6.13 speak-numeral
        7.6.14 speak-punctuation
        7.6.15 speech-rate
        7.6.16 stress
        7.6.17 voice-family
        7.6.18 volume
7.7 Common Border, Padding, and Background Properties             7.7.1 background-attachment
        7.7.2 background-color
        7.7.3 background-image
        7.7.4 background-repeat
        7.7.5 background-position-horizontal
        7.7.6 background-position-vertical
        7.7.7 border-before-color
        7.7.8 border-before-style
        7.7.9 border-before-width
        7.7.10 border-after-color
        7.7.11 border-after-style
        7.7.12 border-after-width
        7.7.13 border-start-color
        7.7.14 border-start-style
        7.7.15 border-start-width
        7.7.16 border-end-color
        7.7.17 border-end-style
        7.7.18 border-end-width
        7.7.19 border-top-color
        7.7.20 border-top-style
        7.7.21 border-top-width
        7.7.22 border-bottom-color
        7.7.23 border-bottom-style
        7.7.24 border-bottom-width
        7.7.25 border-left-color
        7.7.26 border-left-style
        7.7.27 border-left-width
        7.7.28 border-right-color
        7.7.29 border-right-style
        7.7.30 border-right-width
        7.7.31 padding-before
        7.7.32 padding-after
        7.7.33 padding-start
        7.7.34 padding-end
        7.7.35 padding-top
        7.7.36 padding-bottom
        7.7.37 padding-left
        7.7.38 padding-right
7.8 Common Font Properties             7.8.2 font-family
        7.8.3 font-selection-strategy
        7.8.4 font-size
        7.8.5 font-stretch
        7.8.6 font-size-adjust
        7.8.7 font-style
        7.8.8 font-variant
        7.8.9 font-weight
7.9 Common Hyphenation Properties             7.9.1 country
        7.9.2 language
        7.9.3 script
        7.9.4 hyphenate
        7.9.5 hyphenation-character
        7.9.6 hyphenation-push-character-count
        7.9.7 hyphenation-remain-character-count
7.10 Common Margin Properties-Block             7.10.1 margin-top
        7.10.2 margin-bottom
        7.10.3 margin-left
        7.10.4 margin-right
        7.10.5 space-before
        7.10.6 space-after
        7.10.7 start-indent
        7.10.8 end-indent
7.11 Common Margin Properties-Inline             7.11.1 space-end
        7.11.2 space-start
7.12 Common Relative Position Properties             7.12.1 relative-position
$Id: XSLFOsummary.html,v 1.6 2005/05/04 10:21:36 rishida Exp $