If I run fop with: fop.bat -xml daten.xml -xsl daten.xsl daten.pdf I got the error: [ERROR] org.apache.fop.apps.FOPException: A table cell must be child of fo:table-row, not fo:table-body I chekc th fo-output with xalan.bat and all looks fine. If I run fop with: fop.bat xalanout.fo daten.pdf it works. I assume the probleme is located in the following codesnip: <xsl:if test="position() mod 2"> <xsl:text disable-output-escaping="yes"><fo:table-row height="14cm" > </xsl:text> </xsl:if> <xsl:call-template name="RezeptCell"/> <xsl:if test="not(position() mod 2)"> <xsl:text disable-output-escaping="yes"></fo:table-row> </xsl:text> </xsl:if> <xsl:if test="position()=last() and position() mod 2"> <xsl:text disable-output-escaping="yes"></fo:table-row> </xsl:text> </xsl:if>
This is *not* a bug. It is not valid to generate the start tag in one template and the end tag in another template. If this becomes necessary to achieve what you want then you need to re-think your XSL stylesheet design. Using <xsl:text> with disable-output-escaping="yes" is a trick that only works when the result of the XSL tranform is serialized to disk. When you supply xsl and xml files as input to the command line, the transform result is not serialized but rather passed as SAX events to FOP. Hence your trick fails. If you are having difficulties then you should ask on the fop-user mailing list before raising a bug.
batch transition to closed remaining pre-FOP1.0 resolved bugs