M. David Peterson <mailto:m(_dot_)david(_at_)mdptws(_dot_)com> wrote on
Thursday, September
16, 2004 2:22 PM:
Im not sure if I completely understand what you are trying to
do. Ive checked
your mentioned thread it seems that you are really trying to
use template
matching rules to group/ungroup, include/exclude data
elements which is going to
be better served by grouping the data together in the correct
layout/format first and then apply-templates to the resulting
temporary
tree. Let me know if
the following concept is what you are ultimately attempting
to accomplish...
Thx for your answer. I am really no XML/XSLT geek. I just try to get my
template work :)
I'll try to write the whole story again:
I have a working XSLT Stylesheet for transforming a html-like syntax into
XSL-FO.
The output PDF should have the feature that a Heading never breaks with the
next elements into 2 pages.
XSL-FO has the the property "keep-with-next" for this issue, but I use FOP
as FO-processor and that only supports it within 2 table rows. So i needed a
template, that converts the <hX> tag and the following tag into a <fo:table>
with 2 rows. And the second template, that tells XSLT not to process the
elements preceeded by a <hX> tag twice. And i wrote you my stylesheets, but
the dont work:
[XSLT]
<xsl:template match="h1|h2|h3|h4|h5">
<fo:table table-layout="fixed" width="100%">
<fo:table-column
column-width="proportional-column-width(1)"/>
<fo:table-body>
<fo:table-row keep-with-next="always">
<fo:table-cell>
<fo:block
xsl:use-attribute-sets="name()">
<xsl:apply-templates/>
</fo:block>
</fo:table-cell>
</fo:table-row>
<fo:table-row>
<fo:table-cell>
<fo:block>
<xsl:apply-templates
select="following-sibling::*"/>
</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-body>
</fo:table>
</xsl:template>
<xsl:template match="*[preceding-sibling::(h1|h2|h3|h4|h5)]"/>
[/XSLT]
But that does not work
1. The second element is there twice.
2. The xsl:use-attribute-sets="name()" does not work here.
Any idea?
So it's just a workaround and would not be possible if FOP supported the
"keep" for all elements as the standard says. I am happy with my 'dirty'
solution, because if FOP will support it the future, the workaround gets
kicked.
I would be really happy if you told me how to get this work!!
Thx, soenke.