The XSL Specification went into the Candidate Recommendation period at the end of November 2000. The original planned date for exiting CR was 28 February 2000; however, the work as described below continued to date.
During the CR period, the Working Group continued to be active. Among the topics we handled during this period were:
The WG established the following exit criteria in the Request for CR (members only)
All exit criteria were met during the period from December 2000 until July 2001. Test cases were gathered from the XSL WG (two Integration tests), several of the implementors, (IBM, Antenna House, RenderX, and FOP), and the US National Institute of Standards and Technology who converted 615 CSS tests to XSL and wrote an additional several hundreds, hereafter called "unit tests" (see Coverage Report in Appendix A).
Test results were provided in PDF by the implementors: Antenna House, Arbortext, FOP, IBM, PassiveTeX, and RenderX. A manual visual inspection was performed reviewing both the unit tests and the integration tests. In addition, most implementors submitted a Report on their results and interpretation of the test results. A summary of their results is as follows (reproduced as of 2001 July 17 from the Test Result Files table of the full results report):
Profile | File | Test Results | |||||
---|---|---|---|---|---|---|---|
Full | Future | Differ | Test | Spec | Total | ||
Test Results From Anonymous Implementation #1 | 1/testresults.xml [HTML] | 199 | 194 | 0 | 19 | 0 | 412 |
Test Results for XEP (version 2.21) | 2/testresults.xml [HTML] | 547 | 1 | 67 | 2 | 0 | 617 |
Test Results from Arbortext | 3/testresults.xml [HTML] | 2 | 0 | 0 | 0 | 0 | 2 |
Test Results for XSL Formatter v1.2 alpha (Antenna House) | 4/testresults.xml [HTML] | 755 | 4 | 30 | 105 | 0 | 894 |
Test Results From PassiveTeX | 5/testresults.xml [HTML] | 0 | 0 | 2 | 0 | 0 | 2 |
Test Results from FOP (v0.19) | 6/testresults.xml [HTML] | 269 | 1 | 349 | 0 | 0 | 619 |
Total | 1772 | 200 | 448 | 126 | 0 | 2546 |
In the above table, the meanings of the columns are as follows: "full" means complete agreement with the test and expected results; "future" means support is expected in an upcoming release; "differ" means the current support does not produce the correct results at this time, but there was no disagreement with what the correct result should have been; "test" means the implementor felt there was some problem with the test case itself or disagreed with the suggested correct result (in all these cases, the correct result was determined by examining the spec and the tests were corrected); "spec" means there was an ambiguity in the spec that allowed for incorrect or multiple interpretations for this test case. See also XSL CR Test Suite -- Test Coverage Page for the complete set of CR test results.
Of all the tests performed, only 2 items were identified as requiring clarification or modification of the text of the specification, and these two changes were made. The Integration Tests are detailed in Appendix B: Integration test analysis and include the PDF of the results from all implementations.
All comments were accepted by commentators; there were no minority opinions generated.
Appendix C shows a table summarising implementation status of each Formatting Object. As far as we are aware, all FOs belonging to the 'basic' conformance level have been implemented, as well as most 'extended' FOs, except:
Other mechanisms not reflected in particular FOs and not implemented to our knowledge are
The XSL WG believes, based on implementation experience and test results, that XSL is ready to be forwarded to PR. The results were basically as expected; fallback specified on all FOs and properties was demonstrated to be very successful in that the results made it clear when a particular FO or property was not implemented in one or more of the implementations. The integration tests demonstrated clearly how fallback worked. The reports indicate that many of the implementors expect to continue implementing much of the functionality that was not able to be implemented in the CR time-frame. The WG expects these tests to form the basis for conformance testing once the specification becomes a Recommendation.
Below is a summary of the coverage level of tests supplied by the vendors. This does not include the NIST test suite. For complete details see also XSL CR Test Suite -- Test Coverage Page for the complete list of tests and results.
FOP coverage info ===================== Formatting object and number of tests: ------------------------------------- external-graphic 2 static-content 31 table-footer 2 page-sequence-master 16 repeatable-page-master-reference 5 page-sequence 43 conditional-page-master-reference 11 list-item-label 6 page-number 22 table-cell 12 list-block 6 repeatable-page-master-alternatives 11 block-container 1 region-body 43 basic-link 5 page-number-citation 2 inline 18 instream-foreign-object 2 layout-master-set 43 flow 43 simple-page-master 43 leader 6 list-item-body 6 list-item 6 table-row 12 block 43 table-body 12 region-after 39 single-page-master-reference 4 character 1 root 43 table-header 2 table-column 12 table 12 region-before 38 Property and number of tests: ---------------------------- keep-together.within-page 1 language 2 width 3 border-after-width 1 font-size 41 hyphenation-remain-character-count 1 line-height 40 margin-left 43 widows 1 hyphenation-push-character-count 1 src 2 ref-id 2 border-bottom-color 2 space-after.optimum 40 space-before.optimum 34 padding-after 1 border-right-width 4 margin-right 43 break-after 4 keep-with-next 3 padding-top 20 top 1 margin-bottom 43 border-before-width 1 border-left-width 3 padding-start.length 1 padding-end 1 extent 39 external-destination 5 text-align 41 white-space-collapse 2 odd-or-even 3 rule-thickness 6 flow-name 43 maximum-repeats 5 country 1 background-color 25 font-style 13 page-height 40 margin-top 43 column-gap 6 border-style 7 leader-length 5 font-variant 1 keep-with-next.within-page 1 color 25 keep-together 1 border-after-color 1 character 1 end-indent 8 number-columns-spanned 1 span 6 height 3 position 1 border-right-color 1 vertical-align 2 border-width 13 border-left-color 1 border-before-color 1 border-top-width 2 text-align-last 1 table-omit-footer-at-break 1 left 1 orphans 1 leader-alignment 1 hyphenate 2 column-width 12 master-name 43 padding-right 2 padding-left 2 space-before 2 space-before.minimum 2 initial-page-number 8 column-count 7 text-decoration 2 space-before.maximum 2 start-indent 12 keep-with-previous 1 space-after 2 wrap-option 2 id 3 provisional-label-separation 2 border-bottom-width 2 border-end-width 1 border-start-width 1 page-width 40 break-before 12 table-omit-header-at-break 1 padding-end.length 1 internal-destination 2 padding-bottom 1 padding 1 border-color 12 border-top-color 2 padding-before 1 font-weight 11 leader-pattern 6 leader-pattern-width 1 page-position 10 rule-style 1 provisional-distance-between-starts 5 number-rows-spanned 1 font-family 35 RenderX coverage info ===================== A. Pagination: A.1. Basic test for named regions. Objects: - fo:simple-page-master and its descendants; - fo:static-content and fo:flow Properties: - region-name, flow-name A.2. Page sequence masters and named regions. Objects: - fo:simple-page-master and its descendants; - fo:page-sequence-master and its descendants; - fo:static-content and fo:flow Properties: - region-name, flow-name; - page-position, odd-or-even; - reference-orientation on side regions; - display-align on side regions A.3. Maximum-repeats property Objects: - fo:repeatable-page-master-reference; - fo:repeatable-page-master-alternatives Properties: - maximum-repeats A.4. Force-page-count property and page number formatting Objects: - fo:page-sequence; - fo:conditional-page-master-reference; - fo:page-number; Properties: - force-page-count; - blank-or-not-blank; - initial-page-number; - format B. Page layout: B.1. Multi-column layout. Objects: - fo:region-body; - fo:static-content (for footnote separators) - fo:footnote/fo:footnote-body Properties: - column-count; - column-gap; - flow-name (value of "xsl-footnote-separator") - reference-orientation B.2. Regions. Objects: - fo:simple-page-master; - fo:region-*; Properties: - reference-orientation; - display-align; - precedence; - background-related properties B.3. Span. Objects: - fo:block; Properties: - span; B.4. Footnotes. Objects: - fo:footnote/fo:footnote-body Properties: none B.5. Top floats. Objects: - fo:float Properties: - float C. Block-level formatting: C.1. Text alignment Objects: - fo:block Properties: - text-align; - text-align-last C.2. Text indents Objects: - fo:block Properties: - text-align; - text-align-last; - text-indent; - last-line-end-indent; - start-indent; - end-indent C.3. Borders and Background Objects: - fo:block Properties: - background-color; - border-{side}-{trait} family; - border-style; - border-width; - border-color C.4. Padding Objects: - fo:block Properties: - padding-{side}; - padding; C.5. Background image Objects: - fo:block Properties: - background-color; - background-image; - background-position-horizontal; - background-position-vertical; - background-position; - background-repeat C.6. Background image - shorthand notation Objects: - fo:block Properties: - background C.7. First-line formatting Objects: - fo:initial-property-set Properties: none C.8. Line height Objects: - fo:block Properties: - line-height C.9. Line stacking strategy Objects: - fo:block Properties: - line-stacking-strategy; - line-height; - line-height-shift-adjustment C.10. Keeps - block-level. Objects: - fo:block Properties: - keep-together.within-page D. Inline-level formatting - font and character properties D.1. Font family Objects: - fo:wrapper Properties: - font-family D.2. Font weight Objects: - fo:wrapper Properties: - font-weight D.3. Font slant Objects: - fo:wrapper Properties: - font-style D.4. Font stretch Objects: - fo:wrapper Properties: - font-stretch D.5. Smallcaps Objects: - fo:wrapper Properties: - font-variant D.6. Capitalization Objects: - fo:wrapper Properties: - text-transform D.7. Text decoration Objects: - fo:inline Properties: - text-decoration D.8. Shadowed text Objects: - fo:wrapper Properties: - text-shadow D.9. Font size Objects: - fo:wrapper Properties: - font-size D.10. Font aspect ratio adjustment Objects: - fo:wrapper Properties: - font-size-adjust D.11. Font shorthand Objects: - fo:wrapper Properties: - font D.12. Letter and word spacing Objects: - fo:wrapper Properties: - letter-spacing - word-spacing E. Inline-level formatting - inline areas E.1. Borders around inlines Objects: - fo:inline Properties: - Border, Padding, and Background properties E.2. Baseline shift Objects: - fo:inline Properties: - Border, Padding, and Background properties - baseline-shift E.3. Vertical alignment properties for inlines Objects: - fo:inline Properties: - alignment-baseline - alignment-adjust - baseline-shift E.4. Keeps - inline-level. Objects: - fo:inline Properties: - keep-together.within-line F. Tables F.1. Basic table Objects: - fo:table; - fo:table-column; - fo:table-body; - fo:table-row; - fo:table-cell; Properties: - starts-row; - ends-row; F.2. Column specifiers Objects: - fo:table-column; Properties: - number-columns-repeated; - number-columns-spanned; - column-number; F.3. Table headers and footers Objects: - fo:table-body; - fo:table-header; - fo:table-footer; Properties: none F.4. Spanned cells Objects: - fo:table-cell; Properties: - number-columns-repeated; - number-columns-spanned; - number-rows-spanned; - column-number; F.5. Long table: Objects: - fo:table-header; - fo:table-footer; Properties: - table-omit-header-at-break - table-omit-footer-at-break F.6. Comprehensive table test, nested tables Objects: - all table-related objects Properties: - display-align on table cells. G. Miscellaneous objects G.1. Lists Objects: - fo:list-block - fo:list-item - fo:list-item-label - fo:list-item-body Properties: - provisional-label-separation; - provisional-distance-between-starts; Functions: - body-start(); - label-end(); G.2. Leaders Objects: - fo:leader Properties: - leader-pattern; - leader-length; - rule-style; - rule-thickness; G.3. Markers Objects: - fo:marker - fo:retrieve-marker Properties: - marker-class-name; - retrieve-class-name; - retrieve-position G.4. Graphics Objects: - fo:external-graphic Properties: - src; - content-width; - content-height; - scaling H. Unicode Support H.1. Adobe standard charset Tests Unicode values of all characters from the Adobe Roman-Extended charset. H.2. Symbol Tests Unicode values of all characters from the Adobe Symbol font (Greek letters and mathematical operators). H.3. ZapfDingbats Tests Unicode values of characters from ZapfDingbats font. Total: 45 tests See also http://www.renderx.com/testcases.html for the web page of RenderX tests in a nice organization. IBM === Formatting objects: ------------------ 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, block, block-container, character, external-graphic, inline, inline-container, leader, page-number, multi-switch, multi-case, multi-toggle, multi-properties, multi-property-set Properties: ----------- absolute-position, top, right, bottom, left, background-attachment, background-color, background-image, background-repeat, , background-position-vertical, border-before-color, border-before-style, border-before-width, border-start-width, border-end-color, border-end-style, border-end-width, border-top-color, border-right-width, padding-before, padding-after, padding-start, padding-end, margin-right, space-before, space-after, line-height, line-stacking-strategy, linefeed-treatment, space-treatment, text-align, white-space-collapse, character, leader-pattern, leader-pattern-width, leader-length, rule-style, rule-thickness, extent, flow-name, master-name, maximum-repeats, precedence, region-name, writing-mode, auto-restore, starting-state, case-name, case-title, switch-to, active-state Antenna House ============= - 2 on fo:root - 15 on page layout/page master reference combinations - 12 on page dimensions, margins, and regions, etc. - 2 on fo:block with lots of properties - 2 on fo:block-container including various writing directions - 3 on fo:inline or fo:inline-container including various writing directions - 1 on fo:bidi-override - 4 on fo:leader - 11 on tables - 6 on lists
The following summary tabulates results received as of 2001 July 12. It should be noted that results were requested and received for test 1 in March, and many implementations have been improved since then. Where the XSL WG is aware of it, due to subsequent test results or email discussions, we have attempted to indicate "now fixed" next to problems that have been resolved in the vendor's most recent code. The accompanying PDFs may be from an older version and may not reflect these latest fixes.
Copies of the output of these integration tests are expected to be attached as hard copy. In the following summaries, the links from the company name for each test link to the PDF available on the test site.
Integration test 1 consists of an approximately 8 page one-column document. The following basic formatting structures are included:
In general, the results show a high degree of interoperability in all areas. Exceptions are noted below.
Integration test 2 consists of an approximately 12 page two-column document. This test case includes some extended XSL FO features that are not necessarily part of the basic level of conformance.
The following formatting structures are included:
In general, the results show a high degree of interoperability in most areas with exceptions as noted below.
Formatting Object | Conformance Level | Implemented | Notes |
6.4.2 fo:root |
basic | Yes | |
6.4.3 fo:declarations | basic | Yes | |
6.4.4 fo:color-profile | extended | No | Fallback not implemented |
6.4.5 fo:page-sequence | basic | Yes | |
6.4.6 fo:layout-master-set | basic | Yes | |
6.4.7 fo:page-sequence-master | basic | Yes | |
6.4.8 fo:single-page-master-reference | basic | Yes | |
6.4.9 fo:repeatable-page-master-reference | basic | Yes | |
6.4.10 fo:repeatable-page-master-alternatives | extended | Yes | |
6.4.11 fo:conditional-page-master-reference | extended | Yes | |
6.4.12 fo:simple-page-master | basic | Yes | |
6.4.13 fo:region-body | basic | Yes | |
6.4.14 fo:region-before | extended | Yes | |
6.4.15 fo:region-after | extended | Yes | |
6.4.16 fo:region-start | extended | Yes | |
6.4.17 fo:region-end | extended | Yes | |
6.4.18 fo:flow | basic | Yes | |
6.4.19 fo:static-content | extended | Yes | |
6.4.20 fo:title | extended | Yes | |
6.5.2 fo:block | basic | Yes | |
6.5.3 fo:block-container | extended | Yes | |
6.6.2 fo:bidi-override | extended | Yes | |
6.6.3 fo:character | basic | Yes | |
6.6.4 fo:initial-property-set | extended | Yes | |
6.6.5 fo:external-graphic | basic | Yes | |
6.6.6 fo:instream-foreign-object | extended | Yes | |
6.6.7 fo:inline | basic | Yes | |
6.6.8 fo:inline-container | extended | Yes | |
6.6.9 fo:leader | basic | Yes | |
6.6.10 fo:page-number | basic | Yes | |
6.6.11 fo:page-number-citation | extended | Yes | |
6.7.2 fo:table-and-caption | basic | Yes | |
6.7.3 fo:table | basic | Yes | |
6.7.4 fo:table-column | basic | Yes | |
6.7.5 fo:table-caption | extended | Yes | |
6.7.6 fo:table-header | basic | Yes | |
6.7.7 fo:table-footer | extended | Yes | |
6.7.8 fo:table-body | basic | Yes | |
6.7.9 fo:table-row | basic | Yes | |
6.7.10 fo:table-cell | basic | Yes | |
6.8.2 fo:list-block | basic | Yes | |
6.8.3 fo:list-item | basic | Yes | |
6.8.4 fo:list-item-body | basic | Yes | |
6.8.5 fo:list-item-label | extended | Yes | |
6.9.2 fo:basic-link | extended | Yes | |
6.9.3 fo:multi-switch | extended | Yes | |
6.9.4 fo:multi-case | basic | Yes | |
6.9.5 fo:multi-toggle | extended | Yes | |
6.9.6 fo:multi-properties | extended | Yes | |
6.9.7 fo:multi-property-set | extended | Yes | |
6.10.2 fo:float | extended | Yes | |
6.10.3 fo:footnote | extended | Yes | |
6.10.4 fo:footnote-body | extended | Yes | |
6.11.2 fo:wrapper | basic | Yes | |
6.11.3 fo:marker | extended | Yes | |
6.11.4 fo:retrieve-marker | extended | Yes |