Release Notes CSSToXSLFO 1.2
5th November 2005

1. Requirements

You need JRE 1.3 or a higher version to run the application. For 1.3 you should
create a classpath with a namespace-aware XML parser and an XSLT processor.

If you run css2xep.jar you also have to specify another XSLT processor, because
XEP uses Saxon 6.5.x, with which it doesn't work. You can either prepend
another XSLT processor to the boot classpath or you can simply copy saxon8.jar
in the XEP lib directory.

2. Installation

You can place the jar file where you want and launch the application as
follows:

> java -jar css2xslfo.jar options

Consult the manual for details about running the application.

3. Changes

3.1 Changes Since Version 1.1

Bug fixes

1348367: Fix table normalisation when display type is "none".
1348374: Fix link processing.
1348383: A CSS style sheet is not treated as case-insensitive.
1349014: Correct manual section about running with FOP.

New features

- The special Unicode spaces U+2000 through U+200A are post-processed using
  fo:leader elements (reminiscent of Jirka Kosek's DocBook style sheet).

3.2 Changes Since Version 1.0

Bug fixes

1281230: The presence of the anonymous @page rule is assumed.
1285991: Move fo:marker to the next allowed place in the XSL-FO tree.
1286078: Turn off hyphenation by default for User Agent page set-up.
1291094: A marker pseudo element shouldn't imply the other is one too.
1315758: Don't generate empty page sequences.

New features

- Add the "colspan" and "rowspan" properties for table cells.
- Add the unit "pcw" (proportional column width) for table column widths.
- Add the "table-omit-footer-at-break" and "table-omit-header-at-break"
  properties for tables.

3.3 Changes Since Version 1.0rc2

Incompatible changes

- The "footnote" property no longer exists. It is replaced by the new display
  types "footnote-reference" and "footnote-body". This provides control over
  contents and style of both the footnote reference and body. The list style
  type "footnote" has also been added. It generates symbols such as the
  asterix, dagger, etc.
- Regions have an incompatible restriction. They must now be the first children
  of the body region element. For XHTML the latter is the body element.
- Move "counter-reset" for the "page" counter from the static regions to the
  @page rule.
- Hyphenation is turned off by default instead of on. This puts it in line
  with XSL-FO.

Enhancements

- Add the "precedence" property for the top and bottom regions.
- Implement the change bar extension. This works only with XEP at the moment.
- Add the link extension, which covers internal and external links.
- Make it work with Saxon 8.3 and later.
- Make it work with JDK 1.5 without having to prepend an XSLT processor in the
  boot class path.
- Remove the CSS rules for the XHTML elements "sup" and "sub" from the User
  Agent style sheet. Set the "line-height-shift-adjustment" property to
  "disregard-shifts" to compensate this.
- Show a stack trace only in the main functions when -Dbe.re.stack is on.
- Generalize the named pages feature. It is no longer bound to a sibling list
  below the XHTML "body" element or the document element for another XML
  vocabulary.
- Enhance performance and reduce memory usage.
- Add a Xinc package.
- Add the XSL-FO "force-page-count" property.
- Implement markers with the limitation that the value "auto" is not supported
  for the the "width" property. Check out section 12.6 of the CSS2
  specification to learn how you can have much more control over lists through
  markers.
- Implement the "column-span" property for multicolumn pages.
- Introduce the display type "graphic".
- Add the pseudo page "blank".

Bug fixes

- Fix the "string-set" property bug. It didn't cascade properly and it didn't
  work when placed in the XHTML "style" attribute.
- Fix the CSSToXSLFOFilter constructor. It didn't check the absence of the
  user agent parameters.
- Fix the absence of the "any" simple-page-master when there were @page rules
  without an anonymous @page rule.
- Fix a page rule cascade bug. The page rules weren't split before sorting them.
- Do the inheritance of text-align and vertical-align in tables only for XHTML
  tables and take into account the specificity of UA rules and universal
  selectors.
- Fix the bug where properties on pseudo elements were also applied to the
  elements themselves.
- Change the processing instruction xml:stylesheet into xml-stylesheet. The
  XML namespaces specification doesn't allow colons in PI targets. The new
  target follows the CSS2.1 convention.
- Fix the combination of pseudo classes and pseudo elements. The specification
  ":first-child:before" didn't work.
- Fix the application of the "content" property. It didn't cascade, but
  combined all matched property values.
- Fix the specificity calculation in the case where several conditions are
  combined.
- Set the "font-selection-strategy" property to "character-by-character", which
  corresponds to CSS.
- Implement centering of blocks and tables when "margin-left" and
  "margin-right" are set to "auto".
- Report missing command-line options in css2fop.jar.
- Produce a descent error message when an URL is invalid when trying to parse
  a CSS style sheet.
- The value "contents" for the "string-set" property also included the
  generated content for the element it was set on.
- Fix the bug where the "userAgentParameters" argument to the constructor can't
  be "null".
- Fix the treatment of the "clear" property.

3.4 Changes Since Version 1.0rc1

- Install an error handler on the filter chain for the validating mode,
  otherwise there are no error messages when Xalan 2.6.0 or higher are used.
  This is because Xalan's TraXFilter now correctly propagates error handler
  events instead of throwing an exception.
- Also add the default unit "px" to the "width" and "height" of the XHTML "img"
  element if there is no specified unit.
- Honor the "media" attribute of the XHTML "style" and "link" elements.
- Fix a selector bug in the case unnamed element selectors are used elsewhere
  than at the final position.
- Fix a named pages regression when using a more recent Xalan version.
- Implement the multicolumn extension.

3.5 Changes Since Version 1.0b3

- Implement positioned elements (position, top, bottom, left and right
  properties).
- Implement layered presentation (z-index property).
- Use a block-container instead of a plain block when one of the following
  properties is specified on a block-level element: clip, height, min-height,
  min-width, overflow, width. This bug disabled those properties.
- Add a FOP package variant with a FOP filter that removes some of the
  non-supported XSL-FO properties.
- Implement the additional CSS3 List Module glyphs for the list-style-type
  property.

3.6 Changes Since Version 1.0b2

- Change the common -p option to accept a comma-separated list of URLs or
  filenames instead of just one.
- The anonymous page block elements following a named page block element are
  now part of the same name page type of the latter.
- Give lower precedence to the UA style sheet.
- Fix a bug in the translation of XHTML attributes into CSS properties.
- Fix a bug in the static region mapping onto pages.
- Fix a bug in the load of the embedded XHTML catalog.
- Document the footnote extension.
- Document the orientation extension.
- Complete the "Compliance With CSS2" section of the manual.

3.7 Changes Since Version 1.0b1

- Drop XSLTC because it produces wrong results.
- Add the option "-v" to turn on XML validation explicitly. By default no
  validation is done.
- Replace the deprecated XEP interface with the new interface.

4. Known Problems

5. Contact Information

Comments and bug reports can be sent to werner.donne@re.be. Information about
the application is available at http://www.re.be/css2xslfo.
