Subject: Saxon versus Xalan implementations of evaluate() extension function?
From: "Andrzej Taramina" <andrzej@xxxxxxxxxxx>
Date: Wed, 6 Jul 2005 20:02:43 -0400
|
I'm trying to get a large application to run using Saxon 8.4 rather than Xalan, which it
uses currently, since a large chunk of cpu is being burned in the xsl transform step.
Figured Saxon is usually a lot more efficient than Xalan in that regard.
But there seems to be a difference in the functionality of xalan:evaluate versus
saxon:evaluate.
For example:
xalan:evaluate( concat( '$', @varname ) )
works fine. It uses the value of the @varname attribute (say 'xyz' ) and then returns the
value of the variable $xyz. Saxon dies on this construct with an exception that looks like:
net.sf.saxon.trans.DynamicError: Static error in XPath expression supplied to
saxon:evaluate: XPath syntax error at char 10 in $xyz:
Similarily, I can do a
xalan:evaluate( concat( '$data/', @xpathValue ) )
But Saxon throws the DynamicError exception.
Seems that Saxon doesn't support variable bindings in the evaluate call. Strange
oversight (IMNSHO) since the exslt dyn:evaluate specifies that it will support variable
bindings.
Any workarounds? Any plans for Saxon 8.5 to support variable bindings for the evaluate()
function?
Thanks for any/all advice. If I can't resolve this, it will kill our ability to switch to
Saxon. ;-(
....Andrzej
Chaeron Corporation
http://www.chaeron.com
|