Simon Pepping wrote:
The code in Root shows that fox:bookmarks is the only allowed fox
child of fo:root. It is not clear that that is true. The web page
extensions.html does not even mention fox:bookmarks. The example file
examples/fo/basic/pdfoutline.fo clearly embeds fox:outline elements in
fox:bookmarks. The docbook stylesheets authors place fox:outline
elements directly in fo:root. FOP-0.20.5 has no problem with this
arrangement. Even if it is true, it creates compatibility problems.
This was changed in the redesign, outlines for bookmarks must now
be put into a fox:bookmark. Yes, this is incompatible but cleans up
pathological cases like
<fo:root>
<fox:outline>...</fox:outline>
<fo:layout-master-set ... />
<fox:outline>...</fox:outline>
<fo:page-sequence>
</fo:page-sequence>
<fox:outline>...</fox:outline>
<fo:page-sequence>
</fo:page-sequence>
</fo:root>
Some bookmarks in the above case wont be rendered, and it's quite
difficult to reliably check for this condition. If there can only
be a single fox:bookmark, error checking is much easier. Some would
also claim it enforces better writing style.
J.Pietschmann