XSLT и XSL-FO - это два разных языка. По сути, он работает наоборот, чем то, что вы делаете в данный момент: FO встроен в таблицу стилей XSLT, которая затем используется для обработки исходного XML для создания документа XSL-FO (без какого-либо XSLT). Это добавлено в процессор XSL-FO для создания, например, PDF.
XSLT processing
| |
XML ---> XSL-FO ---> PDF
Итак, вы начинаете с такой таблицы стилей XSLT (без пространств имен и тому подобного, просто чтобы дать вам представление):
<xslt:stylesheet>
<xslt:template match="/">
<fo:root>
<!-- fo head -->
<fo:page-sequence>
<fo:flow>
<xslt:apply-templates /> <!-- process the rest of the doc-->
</fo:flow>
</fo:page-sequence>
</fo:root>
</xslt:template>
<xslt:template match="test">
<fo:block>
<xslt:value-of select="." />
</fo:block>
</xslt:template>
</xslt:stylesheet>
Вы можете найти много вопросов на FAQ Дэйва Поусона по XSL .