White Papers/XSL 1.1 via XSLT
From Docs
XSL-FO 1.1 via XSLT
The formatting core of DiType doesn't have (or has simplified) algoritms for some XSL-FO 1.1 features.
This is done intentionally.
One of the main goals of the formatter is high-speed execution of core formatting algorithms. Transformations of the formatting objects is a trivial task that can be done outside the kernel without loss of performance.
Don't bother the kernel with such problems. :)
XSLT is the right way and a good tool to implement the functionality related to object tree transformation.
So a part of XSL-FO 1.1 features is implemented via XSLT.
Page sequence wrapper
The formatting core doesn't accept the fo:page-sequence-wrapper element.
I've implemented a stylesheet that does the following:
- eliminates this element, but keeps all
fo:page-sequencedescendants of it in an input FO. - all attributes (except the
@idone) from this element are inherited by the corresponding child element.
The inheritence is meant according to XSL-FO 1.1 spec.
Note: the @id attribute is inherited from the fo:page-sequence-wrapper by the first (pre-document order) fo:page-sequence descendant (not child; fo:page-sequence-wrapper elements can be nested).
Folio
The formatting core does not accept the fo:folio-prefix and fo:folio-suffix elements [well, actually, it does, but uses only the text content, thus limiting the capabilities — DavidTolpin].
I've implemented a stylesheet that does the following:
- substitutes descendants of the
fo:folio-prefix/fo:folio-suffixelements in a proper place of the input FO tree
(i.e. before/after anchor elements - fo:page-number, fo:page-number-citation, and fo:page-number-citation-last)
- selects the correct page-sequence that anchor elements refer to.
Note: Acording to XSL-FO 1.1 spec, the anchor elements cannot be descendants of the fo:folio-prefix and fo:folio-suffix elements.
TODO: the above statement needs to be checked in the stylesheet.
Alexei Gagarinov
