Я себе сделал такой шаблон, чтобы смотреть, какие узлы и атрибуты есть в xml:
Код:
<!-- Вывод содержимого узла -->
<xsl:template name="print">
<fo:block xsl:use-attribute-sets="text" margin-top="12pt">
<fo:block>Orig:</fo:block>
<xsl:for-each select=".">
<fo:block margin-left="15pt">
<xsl:value-of select="local-name()"/>:<xsl:value-of select="."/>
</fo:block>
</xsl:for-each>
<fo:block>Children:</fo:block>
<xsl:for-each select="./*">
<fo:block margin-left="15pt">
<xsl:value-of select="local-name()"/>:<xsl:value-of select="."/>
</fo:block>
</xsl:for-each>
<fo:block>Attrs:</fo:block>
<xsl:for-each select="./@*">
<fo:block margin-left="15pt">
<xsl:value-of select="local-name()"/>:<xsl:value-of select="."/>
</fo:block>
</xsl:for-each>
<xsl:for-each select="./*">
<xsl:call-template name="print"/>
</xsl:for-each>
</fo:block>
</xsl:template>
Вызывать вот так:
Код:
<xsl:for-each select="./*">
<xsl:call-template name="print"/>
</xsl:for-each>
В результате в pdf будет всё дерево выведено.
Не идеал, конечно, но работает.