Apache FOP Compliance Page
W3C XSL-FO 1.1 Standard
One of 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 | indicates conformance |
partial | indicates partial conformance |
no | indicates a lack of conformance |
na | indicates that the item is "not applicable" to FOP usually because FOP supports only visual media |
XSL-FO Object Support
- Declarations and Pagination and Layout Formatting Objects: root, declarations, color-profile, page-sequence, page-sequence-wrapper, layout-master-set, page-sequence-master, single-page-master-reference, repeatable-page-master-reference, repeatable-page-master-alternatives, conditional-page-master-reference, simple-page-master, region-body, region-before, region-after, region-start, region-end, flow, static-content, title, flow-map, flow-assignment, flow-source-list, flow-name-specifier, flow-target-list, region-name-specifier
- Block Formatting Objects: block, block-container
- Inline Formatting Objects: bidi-override, character, initial-property-set, external-graphic, instream-foreign-object, inline, inline-container, leader, page-number, page-number-citation, page-number-citation-last, folio-prefix, folio-suffix, scaling-value-citation
- Table Formatting Objects: table-and-caption, table, table-column, table-caption, table-header, table-footer, table-body, table-row, table-cell
- List Formatting Objects: list-block, list-item, list-item-body, list-item-label
- Link and Multi Formatting Objects: basic-link, multi-switch, multi-case, multi-toggle, multi-properties, multi-property-set
- Formatting Objects for Indexing: index-page-number-prefix, index-page-number-suffix, index-range-begin, index-range-end, index-key-reference, index-page-citation-list, index-page-citation-list-separator, index-page-citation-range-separator
- Formatting Objects for Bookmarks: bookmark-tree, bookmark, bookmark-title
- Out-of-line Formatting Objects: float, footnote, footnote-body
- Other Formatting Objects: change-bar-begin, change-bar-end, wrapper, marker, retrieve-marker, retrieve-table-marker
XSL-FO Property Support
- Common Accessibility Properties: source-document, role
- Common Absolute Position Properties: absolute-position, top, right, bottom, left
- Common Aural Properties: azimuth, cue-after, cue-before, elevation, pause-after, pause-before, pitch, pitch-range, play-during, richness, speak, speak-header, speak-numeral, speak-punctuation, speech-rate, stress, voice-family, volume
- Common Border, Padding, and Background Properties: background-attachment, background-color, background-image, background-repeat, background-position-horizontal, background-position-vertical, border-before-color, border-before-style, border-before-width, border-after-color, border-after-style, border-after-width, border-start-color, border-start-style, border-start-width, border-end-color, border-end-style, border-end-width, border-top-color, border-top-style, border-top-width, border-bottom-color, border-bottom-style, border-bottom-width, border-left-color, border-left-style, border-left-width, border-right-color, border-right-style, border-right-width, padding-before, padding-after, padding-start, padding-end, padding-top, padding-bottom, padding-left, padding-right
- Common Font Properties: font-family, font-selection-strategy, font-size, font-stretch, font-size-adjust, font-style, font-variant, font-weight
- Common Hyphenation Properties: country, language, script, hyphenate, hyphenation-character, hyphenation-push-character-count, hyphenation-remain-character-count
- Common Margin Properties - Block: margin-top, margin-bottom, margin-left, margin-right, space-before, space-after, start-indent, end-indent
- Common Margin Properties - Inline: margin-top, margin-bottom, margin-left, margin-right, space-end, space-start
- Common Relative Position Properties: top, right, bottom, left, relative-position
- Area Alignment Properties: alignment-adjust, alignment-baseline, baseline-shift, display-align, dominant-baseline, relative-align
- Area Dimension Properties: allowed-height-scale, allowed-width-scale, block-progression-dimension, content-height, content-width, height, inline-progression-dimension, max-height, max-width, min-height, min-width, scaling, scaling-method, width
- Block and Line-related Properties: hyphenation-keep, hyphenation-ladder-count, last-line-end-indent, line-height, line-height-shift-adjustment, line-stacking-strategy, linefeed-treatment, white-space-treatment, text-align, text-align-last, text-indent, white-space-collapse, wrap-option
- Character Properties: character, letter-spacing, suppress-at-line-break, text-decoration, text-shadow, text-transform, treat-as-word-space, word-spacing
- Color-related Properties: color, color-profile-name, rendering-intent
- Float-related Properties: clear, float, intrusion-displace
- Keeps and Breaks Properties: break-after, break-before, keep-together, keep-with-next, keep-with-previous, orphans, widows
- Layout-related Properties: clip, overflow, reference-orientation, span
- Leader and Rule Properties: leader-alignment, leader-pattern, leader-pattern-width, leader-length, rule-style, rule-thickness
- Properties for Dynamic Effects Formatting Objects: active-state, auto-restore, case-name, case-title, destination-placement-offset, external-destination, indicate-destination, internal-destination, show-destination, starting-state, switch-to, target-presentation-context, target-processing-context, target-stylesheet
- Properties for Indexing: index-class, index-key, page-number-treatment, merge-ranges-across-index-key-references, merge-sequential-page-numbers, merge-pages-across-index-key-references, ref-index-key
- Properties for Markers: marker-class-name, retrieve-boundary-within-table, retrieve-class-name, retrieve-position, retrieve-boundary, retrieve-position-within-table
- Properties for Number to String Conversion: format, grouping-separator, grouping-size, letter-value
- Pagination and Layout Properties: blank-or-not-blank, column-count, column-gap, extent, flow-name, force-page-count, initial-page-number, master-name, master-reference, maximum-repeats, media-usage, odd-or-even, page-height, page-position, page-width, precedence, region-name, flow-map-name, flow-map-reference, flow-name-reference, region-name-reference
- Table Properties: border-after-precedence, border-before-precedence, border-collapse, border-end-precedence, border-separation, border-start-precedence, caption-side, column-number, column-width, empty-cells, ends-row, number-columns-repeated, number-columns-spanned, number-rows-spanned, starts-row, table-layout, table-omit-footer-at-break, table-omit-header-at-break
- Writing-mode-related Properties: direction, glyph-orientation-horizontal, glyph-orientation-vertical, text-altitude, text-depth, unicode-bidi, writing-mode
- Miscellaneous Properties: change-bar-class, change-bar-color, change-bar-offset, change-bar-placement, change-bar-style, change-bar-width, content-type, id, intrinsic-scale-value, page-citation-strategy, provisional-label-separation, provisional-distance-between-starts, ref-id, scale-option, score-spaces, src, visibility, z-index
- Shorthand Properties: background, background-position, border, border-bottom, border-color, border-left, border-right, border-style, border-spacing, border-top, border-width, cue, font, margin, padding, page-break-after, page-break-before, page-break-inside, pause, position, size, vertical-align, white-space, xml:lang
XSL-FO Core Function Library Support
- Number Functions: floor, ceiling, round, min, max, abs
- Color Functions: rgb, rgb-icc, system-color
- Font Functions: system-font
- Property Value Functions: inherited-property-value, label-end, body-start, from-parent, from-nearest-specified-value, from-page-master-region, from-table-column, proportional-column-width, merge-property-values
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 | Support in FOP | Comments | |||
---|---|---|---|---|---|---|---|
0.95 (stable) | 1.0 (stable) | develop- ment | |||||
§6.4 | Declarations and Pagination and Layout Formatting Objects | ||||||
§6.4.2 | root | Basic | yes | yes | yes | ||
§6.4.3 | declarations | Basic | yes | yes | yes | ||
§6.4.4 | color-profile | Extended | yes | yes | yes | ||
§6.4.5 | page-sequence | Basic | yes | yes | yes | ||
§6.4.6 | page-sequence-wrapper | Basic | no | no | no | ||
§6.4.7 | layout-master-set | Basic | yes | yes | yes | ||
§6.4.8 | page-sequence-master | Basic | yes | yes | yes | ||
§6.4.9 | single-page-master-reference | Basic | yes | yes | yes | ||
§6.4.10 | repeatable-page-master-reference | Basic | yes | yes | yes | ||
§6.4.11 | repeatable-page-master-alternatives | Extended | yes | yes | yes | ||
§6.4.12 | conditional-page-master-reference | Extended | yes | yes | yes | ||
§6.4.13 | simple-page-master | Basic | 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 | yes | yes | yes | ||
§6.4.15 | region-before | Extended | yes | yes | yes | ||
§6.4.16 | region-after | Extended | yes | yes | yes | ||
§6.4.17 | region-start | Extended | yes | yes | yes | ||
§6.4.18 | region-end | Extended | yes | yes | yes | ||
§6.4.19 | flow | Basic | yes | yes | yes | ||
§6.4.20 | static-content | Extended | yes | yes | yes | ||
§6.4.21 | title | Extended | yes | yes | yes | ||
§6.4.22 | flow-map | Extended | no | no | no | ||
§6.4.23 | flow-assignment | Extended | no | no | no | ||
§6.4.24 | flow-source-list | Extended | no | no | no | ||
§6.4.25 | flow-name-specifier | Extended | no | no | no | ||
§6.4.26 | flow-target-list | Extended | no | no | no | ||
§6.4.27 | region-name-specifier | Extended | no | no | no | ||
§6.5 | Block Formatting Objects | ||||||
§6.5.2 | block | Basic | yes | yes | yes | ||
§6.5.3 | block-container | Extended | partial | partial | partial | ||
§6.6 | Inline Formatting Objects | ||||||
§6.6.2 | bidi-override | Extended | no | no | no | ||
§6.6.3 | character | Basic | yes | yes | yes | ||
§6.6.4 | initial-property-set | Extended | no | no | no | ||
§6.6.5 | external-graphic | Basic | yes | yes | yes | ||
§6.6.6 | instream-foreign-object | Extended | yes | yes | yes | Built-in support for SVG only, additional namespaces through optional extensions. | |
§6.6.7 | inline | Basic | yes | yes | yes | ||
§6.6.8 | inline-container | Extended | no | no | no | ||
§6.6.9 | leader | Basic | yes | yes | yes | ||
§6.6.10 | page-number | Basic | yes | yes | yes | ||
§6.6.11 | page-number-citation | Extended | 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 | partial | partial | partial |
|
|
§6.6.13 | folio-prefix | Extended | no | no | no | ||
§6.6.14 | folio-suffix | Extended | no | no | no | ||
§6.6.15 | scaling-value-citation | Extended | no | no | no | ||
§6.7 | Table Formatting Objects | ||||||
§6.7.2 | table-and-caption | Basic | no | no | no | ||
§6.7.3 | table | Basic | partial | partial | partial | No support for auto layout yet | |
§6.7.4 | table-column | Basic | yes | yes | yes | ||
§6.7.5 | table-caption | Extended | no | no | no | ||
§6.7.6 | table-header | Basic | yes | yes | yes | ||
§6.7.7 | table-footer | Extended | yes | yes | yes | ||
§6.7.8 | table-body | Basic | yes | yes | yes | ||
§6.7.9 | table-row | Basic | yes | yes | yes | ||
§6.7.10 | table-cell | Basic | yes | yes | yes | ||
§6.8 | List Formatting Objects | ||||||
§6.8.2 | list-block | Basic | yes | yes | yes | ||
§6.8.3 | list-item | Basic | yes | yes | yes | ||
§6.8.4 | list-item-body | Basic | yes | yes | yes | ||
§6.8.5 | list-item-label | Extended | yes | yes | yes | ||
§6.9 | Link and Multi Formatting Objects | ||||||
§6.9.2 | basic-link | Extended | yes | yes | yes | both internal and external supported | |
§6.9.3 | multi-switch | Extended | no | no | no | ||
§6.9.4 | multi-case | Basic | no | no | no | ||
§6.9.5 | multi-toggle | Extended | no | no | no | ||
§6.9.6 | multi-properties | Extended | no | no | no | ||
§6.9.7 | multi-property-set | Extended | no | no | no | ||
§6.10 | Formatting Objects for Indexing | ||||||
§6.10.2 | index-page-number-prefix | Extended | no | no | no | ||
§6.10.3 | index-page-number-suffix | Extended | no | no | no | ||
§6.10.4 | index-range-begin | Extended | no | no | no | ||
§6.10.5 | index-range-end | Extended | no | no | no | ||
§6.10.6 | index-key-reference | Extended | no | no | no | ||
§6.10.7 | index-page-citation-list | Extended | no | no | no | ||
§6.10.8 | index-page-citation-list-separator | Extended | no | no | no | ||
§6.10.9 | index-page-citation-range-separator | Extended | no | no | no | ||
§6.11 | Formatting Objects for Bookmarks | ||||||
§6.11.1 | bookmark-tree | Extended | yes | yes | yes | ||
§6.11.2 | bookmark | Extended | partial | partial | partial | external-destination is not yet supported. | |
§6.11.3 | bookmark-title | Extended | partial | partial | partial | color, font-style and font-weight are not supported, yet. | |
§6.12 | Out-of-line Formatting Objects | ||||||
§6.12.2 | float | Extended | no | no | no | ||
§6.12.3 | footnote | Extended | partial | partial | partial | Restrictions with multi-column documents. | |
§6.12.4 | footnote-body | Extended | yes | yes | yes | ||
§6.13 | Other Formatting Objects | ||||||
§6.13.2 | change-bar-begin | Extended | no | no | no | ||
§6.13.3 | change-bar-end | Extended | no | no | no | ||
§6.13.4 | wrapper | Basic | partial | yes | yes | Only works as expected with inline-level content. | |
§6.13.5 | marker | Extended | yes | yes | yes | ||
§6.13.6 | retrieve-marker | Extended | yes | yes | yes | ||
§6.13.7 | retrieve-table-marker | Extended | no | no | no |
XSL-FO Property Support Table (§7)
The following is a summary of FOP's current support for the standard XSL-FO properties.
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 | Support in FOP | Comments | |||
---|---|---|---|---|---|---|---|
0.95 (stable) | 1.0 (stable) | develop- ment | |||||
§5.10.1 | Number Functions | ||||||
§5.10.1 | floor | Basic | yes | yes | yes | ||
§5.10.1 | ceiling | Basic | yes | yes | yes | ||
§5.10.1 | round | Basic | yes | yes | yes | ||
§5.10.1 | min | Basic | yes | yes | yes | ||
§5.10.1 | max | Basic | yes | yes | yes | ||
§5.10.1 | abs | Basic | yes | yes | yes | ||
§5.10.2 | Color Functions | ||||||
§5.10.2 | rgb | Basic | yes | yes | yes | ||
§5.10.2 | rgb-icc | Basic | yes | yes | yes | ||
§5.10.2 | system-color | Basic | yes | yes | yes | ||
§5.10.3 | Font Functions | ||||||
§5.10.3 | system-font | Basic | no | no | no | ||
§5.10.4 | Property Value Functions | ||||||
§5.10.4 | inherited-property-value | Basic | yes | yes | yes | ||
§5.10.4 | label-end | Basic | yes | yes | yes | ||
§5.10.4 | body-start | Basic | yes | yes | yes | ||
§5.10.4 | from-parent | Basic | yes | yes | yes | ||
§5.10.4 | from-nearest-specified-value | Basic | yes | yes | yes | ||
§5.10.4 | from-page-master-region | Basic | no | no | no | ||
§5.10.4 | from-table-column | Basic | yes | yes | yes | ||
§5.10.4 | proportional-column-width | Basic | yes | yes | yes | ||
§5.10.4 | merge-property-values | Basic | no | no | no |