Jeff Vannest wrote:
What version of XPath is used in FOP 0.93 when parsing through an XSLT-FO
file? Is there a way to control the XPath version being used? I'm trying to
use:
<xsl:if test="upper-case( ../NAME ) = "SITE NAME"">
I don't know whether you can control what XSLT/XPath processor is being
used, but if you want to control the version, you can do so in the XSLT
header. There is no way to control an XPath version, as a simple rule of
the standard states that XSLT 2.0 is always chained with XPath 2.0 and
XSLT 1.0 with XPath 1.0 (not vice versa, XPath can also be used stand
alone). Changing the version won't have any effect, because FOP uses, if
you specify an XSLT file, an XSLT 1.0 processor.
XSLT-FO does not exist. I think you meant an XSLT stylesheet that, with
some input file, will result in an XSL-FO file, which in turn will be
processed by FOP.
If you want to use upper-case() and don't want to use the obvious and
ugly translate() hack you need for XSLT 1.0, you should consider XSLT 2.
Processors that support XSLT 2.0 (and as a result must process XPath
2.0) are Saxon 8 (.Net and Java), Gestalt (standalone and Eiffel),
AltovaXML (only standalone, free, no source). Only the first is by most
people considered both stable, fast and compliant. Gestalt is getting
closer, AltovaXML still has a long way to go, but does claim compliancy.
If you go that path, I suggest you split your process in two steps. This
can be done from a windows batch file, or any other means of course.
First step: process your input XML with XSLT, second step: process the
resulting XSL-FO(s). With time, you will probably find this way more
convenient and more versatile (I did).
Cheers,
-- Abel Braaksma
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]