The Apache FOP Project

The Apache™ FOP Project

Title: Apache(tm) FOP - Compliance

Apache™ FOP Compliance Page

W3C XSL-FO 1.1 Standard

One of Apache™ FOP's design goals is conformance to the W3C XSL-FO 1.1 standard, which specifies three levels of "conformance": basic, extended, and complete. Although FOP does not currently conform to any of these levels, it is nevertheless a useful work-in-progress for many applications. The information presented here demonstrates FOP's progress toward the goal of conformance, which progress consists of implementation of specific objects and properties in the standard. The information presented is useful not only to the developers as a sort of "to do" list, but also for setting proper expectations for users and potential users.

The following table shows the legend used for the tables below:

yes{.yes} indicates conformance
partial{.partial} indicates partial conformance
no{.no} indicates a lack of conformance
na{.na} indicates that the item is "not applicable" to FOP usually because FOP supports only visual media

XSL-FO Object Support Table (§6)

The following is a summary of FOP's current support for the standard XSL-FO objects.

Citation Object Name XSL-FO Conformance Level FOP 1.0 FOP 1.1 FOP 2.0 FOP 2.3 FOP 2.4 FOP dev Comments
§6.4 Declarations and Pagination and Layout Formatting Objects { #fo-object-decl-section}
§6.4.2 root Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.3 declarations Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.4 color-profile Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.5 page-sequence Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.6 page-sequence-wrapper Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.4.7 layout-master-set Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.8 page-sequence-master Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.9 single-page-master-reference Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.10 repeatable-page-master-reference Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.11 repeatable-page-master-alternatives Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.12 conditional-page-master-reference Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.13 simple-page-master Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} The page width may not change among pages of the same page-sequence unless a forced break is inserted.
§6.4.14 region-body Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}
§6.4.15 region-before Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.16 region-after Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.17 region-start Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.18 region-end Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.19 flow Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.20 static-content Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.21 title Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.4.22 flow-map Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.4.23 flow-assignment Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.4.24 flow-source-list Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.4.25 flow-name-specifier Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.4.26 flow-target-list Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.4.27 region-name-specifier Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.5 Block Formatting Objects { #fo-object-block-section}
§6.5.2 block Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.5.3 block-container Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial}  
§6.6 Inline Formatting Objects { #fo-object-inline-section}
§6.6.2 bidi-override Extended{.extended} no{.no} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.6.3 character Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.6.4 initial-property-set Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.6.5 external-graphic Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.6.6 instream-foreign-object Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} Built-in support for SVG only, additional namespaces through optional extensions.
§6.6.7 inline Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.6.8 inline-container Extended{.extended} no{.no} no{.no} partial{.partial} partial{.partial} partial{.partial} partial{.partial} [FOP 2.0] initial support: not all properties are implemented. See FOP-1524
§6.6.9 leader Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.6.10 page-number Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.6.11 page-number-citation Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} After the page number is known, no relayout is performed. The appearance may be suboptimal depending on the use case.
§6.6.12 page-number-citation-last Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} Works only for page-sequence so far. After the page number is known, no relayout is performed. The appearance may be suboptimal depending on the use case.
§6.6.13 folio-prefix Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.6.14 folio-suffix Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.6.15 scaling-value-citation Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.7 Table Formatting Objects { #fo-object-table-section}
§6.7.2 table-and-caption Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.7.3 table Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} No support for auto layout yet
§6.7.4 table-column Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.7.5 table-caption Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.7.6 table-header Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.7.7 Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.7.8 table-body Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.7.9 table-row Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.7.10 table-cell Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.8 List Formatting Objects { #fo-object-list-section}
§6.8.2 list-block Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.8.3 list-item Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.8.4 list-item-body Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.8.5 list-item-label Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.9 Link and Multi Formatting Objects { #fo-object-link-section}
§6.9.2 Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} both internal and external supported
§6.9.3 multi-switch Extended{.extended} no{.no} no{.no} partial{.partial} partial{.partial} partial{.partial} partial{.partial} [FOP 2.0] initial support: used with fox:auto-toggle extension
§6.9.4 multi-case Basic{.basic} no{.no} no{.no} partial{.partial} partial{.partial} partial{.partial} partial{.partial} [FOP 2.0] initial support: space attributes not currently supported; dynamic content inside a table cell does not work
§6.9.5 multi-toggle Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.9.6 multi-properties Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.9.7 multi-property-set Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.10 Formatting Objects for Indexing { #fo-object-indexing-section}
§6.10.2 index-page-number-prefix Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.10.3 index-page-number-suffix Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.10.4 index-range-begin Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.10.5 index-range-end Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.10.6 index-key-reference Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.10.7 index-page-citation-list Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.10.8 index-page-citation-list-separator Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.10.9 index-page-citation-range-separator Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§6.11 Formatting Objects for Bookmarks { #fo-object-bookmarks-section}
§6.11.1 bookmark-tree Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.11.2 bookmark Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} external-destination is not yet supported.
§6.11.3 bookmark-title Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} color, font-style and font-weight are not supported, yet.
§6.12 Out-of-line Formatting Objects { #fo-object-outofline-section}
§6.12.2 float Extended{.extended} no{.no} no{.no} partial{.partial} partial{.partial} partial{.partial} partial{.partial} See restrictions
§6.12.3 footnote Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} Restrictions with multi-column documents.
§6.12.4 footnote-body Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.13 Other Formatting Objects { #fo-object-other-section}
§6.13.2 change-bar-begin Extended{.extended} no{.no} no{.no} no{.no} no{.no} yes{.yes} yes{.yes}  
§6.13.3 change-bar-end Extended{.extended} no{.no} no{.no} no{.no} no{.no} yes{.yes} yes{.yes}  
§6.13.4 wrapper Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} Only works as expected with inline-level content.
§6.13.5 marker Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.13.6 retrieve-marker Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§6.13.7 retrieve-table-marker Extended{.extended} no{.no} no{.no} partial{.partial} partial{.partial} partial{.partial} partial{.partial} [FOP 2.0] initial support: marker element needs to be an element that does not change the BPD of the containing cell.

XSL-FO Property Support Table (§7)

The following is a summary of FOP's current support for the standard XSL-FO properties.

Citation Property Name XSL-FO Conformance Level FOP 1.0 FOP 1.1 FOP 2.0 FOP 2.3 FOP 2.4 FOP dev Comments
§7.5 Common Accessibility Properties { #fo-property-commonaccess-section}
§7.5.1 source-document Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.5.2 role Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.6 Common Absolute Position Properties { #fo-property-commonabspos-section}
§7.6.1 absolute-position Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.6.2 top Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.6.3 right Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.6.4 bottom Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.6.5 left Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.7 Common Aural Properties { #fo-property-commonaural-section}
§7.7.1 azimuth Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.2 cue-after Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.3 cue-before Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.4 elevation Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.5 pause-after Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.6 pause-before Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.7 pitch Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.8 pitch-range Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.9 play-during Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.10 richness Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.11 speak Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.12 speak-header Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.13 speak-numeral Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.14 speak-punctuation Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.15 speech-rate Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.16 stress Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.17 voice-family Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.7.18 volume Basic{.basic} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.8 Common Border, Padding, and Background Properties { #fo-property-commonenv-section}
§7.8.1 background-attachment Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.8.2 background-color Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.3 background-image Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.4 background-repeat Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.5 background-position-horizontal Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} Ignored when background-repeat set to "repeat" or "repeat-x"
§7.8.6 background-position-vertical Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} Ignored when background-repeat set to "repeat" or "repeat-y"
§7.8.7 border-before-color Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.8 border-before-style Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.9 border-before-width Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.10 border-after-color Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.11 border-after-style Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.12 border-after-width Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.13 border-start-color Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.14 border-start-style Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.15 border-start-width Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.16 border-end-color Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.17 border-end-style Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.18 border-end-width Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.19 border-top-color Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.20 border-top-style Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.21 border-top-width Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.22 border-bottom-color Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.23 border-bottom-style Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.24 border-bottom-width Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.25 border-left-color Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.26 border-left-style Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.27 border-left-width Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.28 border-right-color Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.29 border-right-style Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.30 border-right-width Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.31 padding-before Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.32 padding-after Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.33 padding-start Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.34 padding-end Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.35 padding-top Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.36 padding-bottom Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.37 padding-left Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.8.38 padding-right Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.9 Common Font Properties { #fo-property-commonfont-section}
§7.9.2 font-family Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} font-family lists are allowed but glyph based font selection is not supported
§7.9.3 font-selection-strategy Complete{.complete} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.9.4 font-size Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.9.5 font-stretch Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.9.6 font-size-adjust Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.9.7 font-style Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.9.8 font-variant Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.9.9 font-weight Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} TODO <relative> font weights
§7.10 Common Hyphenation Properties { #fo-property-commonhyphen-section}
§7.10.1 country Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} For PDF output: Only 2-letter codes from ISO 3166 are supported properly to identify the natural language!
§7.10.2 language Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} For PDF output: Only 2-letter codes from ISO 639 are supported properly to identify the natural language! Also used with complex scripts features.
§7.10.3 script Extended{.extended} no{.no} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} Used with complex scripts features to override default script heuristics.
§7.10.4 hyphenate Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.10.5 hyphenation-character Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.10.6 hyphenation-push-character-count Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.10.7 hyphenation-remain-character-count Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.11 Common Margin Properties - Block { #fo-property-commonmarginblock-section}
§7.11.1 margin-top Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.11.2 margin-bottom Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.11.3 margin-left Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.11.4 margin-right Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.11.5 space-before Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} Space adjustment may not fully work everywhere, yet.
§7.11.6 space-after Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} Space adjustment may not fully work everywhere, yet.
§7.11.7 start-indent Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.11.8 end-indent Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.12 Common Margin Properties - Inline { #fo-property-commonmargininline-section}
§7.12.1 margin-top Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.12.2 margin-bottom Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.12.3 margin-left Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.12.4 margin-right Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.12.5 space-end Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.12.6 space-start Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.13 Common Relative Position Properties { #fo-property-commonrelpos-section}
§7.13.1 top Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.13.2 right Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.13.3 bottom Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.13.4 left Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.13.5 relative-position Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.14 Area Alignment Properties { #fo-property-areaalign-section}
§7.14.1 alignment-adjust Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.14.2 alignment-baseline Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.14.3 baseline-shift Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.14.4 display-align Extended{.extended} partial{.partial} partial{.partial} partial partial{.partial} partial{.partial} partial{.partial} TODO Check e-g, i-f-o.
§7.14.5 dominant-baseline Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.14.6 relative-align Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.15 Area Dimension Properties { #fo-property-areadim-section}
§7.15.1 allowed-height-scale Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.15.2 allowed-width-scale Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.15.3 block-progression-dimension Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.15.4 content-height Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.15.5 content-width Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.15.6 height Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.15.7 inline-progression-dimension Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.15.8 max-height Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.15.9 max-width Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.15.10 min-height Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.15.11 min-width Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.15.12 scaling Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.15.13 scaling-method Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.15.14 width Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.16 Block and Line-related Properties { #fo-property-blockandline-section}
§7.16.1 hyphenation-keep Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.16.2 hyphenation-ladder-count Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.16.3 last-line-end-indent Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.16.4 line-height Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.16.5 line-height-shift-adjustment Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.16.6 line-stacking-strategy Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} value "line-height" not supported
§7.16.7 linefeed-treatment Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.16.8 white-space-treatment Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} inline elements may interfere with correct handling of this property in some cases
§7.16.9 text-align Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} Only start, end, center and justify are supported
§7.16.10 text-align-last Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} Only start, end, center and justify are supported
§7.16.11 text-indent Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.16.12 white-space-collapse Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.16.13 wrap-option Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} Only supported on fo:block.
§7.17 Character Properties { #fo-property-char-section}
§7.17.1 character Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.17.2 letter-spacing Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.17.3 suppress-at-line-break Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.17.4 text-decoration Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.17.5 text-shadow Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.17.6 text-transform Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.17.7 treat-as-word-space Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.17.8 word-spacing Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.18 Color-related Properties { #fo-property-color-section}
§7.18.1 color Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.18.2 color-profile-name Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.18.3 rendering-intent Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.19 Float-related Properties { #fo-property-float-section}
§7.19.1 clear Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.19.2 float Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.19.3 intrusion-displace Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.20 Keeps and Breaks Properties { #fo-property-keepsbreaks-section}
§7.20.1 break-after Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.20.2 break-before Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.20.3 keep-together Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} [1.0 and later] minimal support for <integer> value.
§7.20.4 keep-with-next Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} Works on all implemented block-level FOs, but not on inline-level FOs. Minimal support for <integer> value.
§7.20.5 keep-with-previous Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} works on all implemented block-level FOs, but not on inline-level FOs. Minimal support for <integer> value.
§7.20.6 orphans Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.20.7 widows Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.21 Layout-related Properties { #fo-property-layout-section}
§7.21.1 clip Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.21.2 overflow Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.21.3 reference-orientation Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.21.4 span Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.22 Leader and Rule Properties { #fo-property-leader-section}
§7.22.1 leader-alignment Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no} Not supported
§7.22.2 leader-pattern Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} Value "use-content" does not work in all circumstances.
§7.22.3 leader-pattern-width Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.22.4 leader-length Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.22.5 rule-style Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.22.6 rule-thickness Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.23 Properties for Dynamic Effects Formatting Objects { #fo-property-dynamiceffects-section}
§7.23.1 active-state Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.23.2 auto-restore Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.23.3 case-name Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.23.4 case-title Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.23.5 destination-placement-offset Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.23.6 external-destination Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.23.7 indicate-destination Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.23.8 internal-destination Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.23.9 show-destination Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} [1.0 and later] only has effect in PDF output, for external PDF destinations (links pointing to destinations in another PDF), and only works reliably when the PDF is viewed in a standalone PDF viewer.

Adobe's browser plugin, for example, ignores the /NewWindow flag.

§7.23.10 starting-state Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} support for starting-state on fo:bookmark
§7.23.11 switch-to Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.23.12 target-presentation-context Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.23.13 target-processing-context Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.23.14 target-stylesheet Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.24 Properties for Indexing { #fo-property-indexing-section}
§7.24.1 index-class Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.24.2 index-key Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.24.3 page-number-treatment Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.24.4 merge-ranges-across-index-key-references Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.24.5 merge-sequential-page-numbers Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.24.6 merge-pages-across-index-key-references Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.24.7 ref-index-key Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.25 Properties for Markers { #fo-property-markers-section}
§7.25.1 marker-class-name Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.25.2 retrieve-boundary-within-table Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.25.3 retrieve-class-name Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.53.4 retrieve-position Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.25.5 retrieve-boundary Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.25.6 retrieve-position-within-table Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.26 Properties for Number to String Conversion { #fo-property-numberstring-section}
§7.26.1 format Basic{.basic} partial{.partial} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} [1.0 and earlier] only values '0*1', 'a', 'A', 'i', 'I' supported
§7.26.2 grouping-separator Extended{.extended} no{.no} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.26.3 grouping-size Extended{.extended} no{.no} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.26.4 letter-value Basic{.basic} no{.no} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27 Pagination and Layout Properties { #fo-property-pagination-section}
§7.27.1 blank-or-not-blank Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27.2 column-count Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27.3 column-gap Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27.4 extent Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27.5 flow-name Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27.6 force-page-count Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27.7 initial-page-number Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27.8 master-name Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27.9 master-reference Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27.10 maximum-repeats Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27.11 media-usage Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.27.12 odd-or-even Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27.13 page-height Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} value "indefinite" not yet supported
§7.27.14 page-position Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} value "only" not supported
§7.27.15 page-width Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} value "indefinite" not yet supported
§7.27.16 precedence Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27.17 region-name Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.27.18 flow-map-name Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.27.19 flow-map-reference Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.27.20 flow-name-reference Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.27.21 region-name-reference Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.28 Table Properties { #fo-property-table-section}
§7.28.1 border-after-precedence Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.28.2 border-before-precedence Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.28.3 border-collapse Extended{.extended} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} value "collapse-with-precedence" not yet supported
§7.28.4 border-end-precedence Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.28.5 border-separation Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.28.6 border-start-precedence Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.28.7 caption-side Complete{.complete} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.28.8 column-number Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.28.9 column-width Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.28.10 empty-cells Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.28.11 ends-row Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.28.12 number-columns-repeated Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.28.13 number-columns-spanned Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.28.14 number-rows-spanned Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.28.15 starts-row Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.28.16 table-layout Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.28.17 Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.28.18 table-omit-header-at-break Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.29 Writing-mode-related Properties { #fo-property-writingmode-section}
§7.29.1 direction Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.29.2 glyph-orientation-horizontal Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.29.3 glyph-orientation-vertical Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.29.4 text-altitude Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.29.5 text-depth Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.29.6 unicode-bidi Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.29.7 writing-mode Basic{.basic} no{.no} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} [1.1 and later] only horizontal left-to-right and right-to-left modes
§7.30 Miscellaneous Properties { #fo-property-misc-section}
§7.30.1 change-bar-class Extended{.extended} no{.no} no{.no} no{.no} no{.no} yes{.yes} yes{.yes}  
§7.30.2 change-bar-color Extended{.extended} no{.no} no{.no} no{.no} no{.no} yes{.yes} yes{.yes}  
§7.30.3 change-bar-offset Extended{.extended} no{.no} no{.no} no{.no} no{.no} yes{.yes} yes{.yes}  
§7.30.4 change-bar-placement Extended{.extended} no{.no} no{.no} no{.no} no{.no} yes{.yes} yes{.yes}  
§7.30.5 change-bar-style Extended{.extended} no{.no} no{.no} no{.no} no{.no} yes{.yes} yes{.yes}  
§7.30.6 change-bar-width Extended{.extended} no{.no} no{.no} no{.no} no{.no} yes{.yes} yes{.yes}  
§7.30.7 content-type Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.30.8 id Basic{.basic} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} IDs on table-header, table-footer, table-body, table-row, table-and-caption, table-caption, inline-container and bidi-override are not available, yet.
§7.30.9 intrinsic-scale-value Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.30.10 page-citation-strategy Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.30.11 provisional-label-separation Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.30.12 provisional-distance-between-starts Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.30.13 ref-id Extended{.extended} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.30.14 scale-option Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.30.15 score-spaces Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.30.16 src Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.30.17 visibility Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.30.18 z-index Extended{.extended} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.31 Shorthand Properties { #fo-property-shorthand-section}
§7.31.1 background Complete{.complete} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.31.2 background-position Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.3 border Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.4 border-bottom Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.5 border-color Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.6 border-left Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.7 border-right Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.8 border-style Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.9 border-spacing Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.10 border-top Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.11 border-width Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.12 cue Complete{.complete} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.31.13 font Complete{.complete} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} Enum values other than "inherit" not yet supported.
§7.31.14 margin Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.15 padding Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.16 page-break-after Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.17 page-break-before Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.18 page-break-inside Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.19 pause Complete{.complete} na{.na} na{.na} na{.na} na{.na} na{.na} na{.na}  
§7.31.20 position Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.21 size Complete{.complete} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§7.31.22 vertical-align Complete{.complete} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} partial{.partial} Percentages are not supported, yet.
§7.31.23 white-space Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§7.31.24 xml:lang Complete{.complete} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} Very basic parsing; no validation of the specified value.

XSL-FO Core Function Library Support Table (§5.10)

The following is a summary of FOP's current support for the XSL-FO Core Function Library.

Citation Function Name XSL-FO Conformance Level FOP 1.0 FOP 1.1 FOP 2.0 FOP 2.3 FOP 2.4 FOP dev Comments
§5.10.1 Number Functions { #fo-function-number-section}
§5.10.1 floor Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.1 ceiling Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.1 round Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.1 min Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.1 max Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.1 abs Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.2 Color Functions { #fo-function-color-section}
§5.10.2 rgb Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.2 rgb-icc Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.2 system-color Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.3 Font Functions { #fo-function-font-section}
§5.10.3 system-font Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§5.10.4 Property Value Functions { #fo-function-property-value-section}
§5.10.4 inherited-property-value Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.4 label-end Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.4 body-start Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.4 from-parent Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.4 from-nearest-specified-value Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.4 from-page-master-region Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}  
§5.10.4 from-table-column Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.4 proportional-column-width Basic{.basic} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes} yes{.yes}  
§5.10.4 merge-property-values Basic{.basic} no{.no} no{.no} no{.no} no{.no} no{.no} no{.no}