我一直在尝试使用Exslt扩展dyn:evaluate($ expression)在XSLT1.0中实现对表达式的动态评估,但是我得到了以下错误。
BW-XML-100006 Job-261000 Error in [Transform_MCIN_XML/Dyn.process/Transform XML]
The [net.sf.saxon.trans.XPathException] occurred during XSLT transformation:
net.sf.saxon.trans.XPathException:
Cannot find a matching 1-argument function named {http://exslt.org/dynamic}evaluate()
caused by: ; SystemID: tibcr://; Line#: 6; Column#: -1
net.sf.saxon.trans.XPathException:
Cannot find a matching 1-argument function named {http://exslt.org/dynamic}evaluate()
我可以使用saxon做同样的事情:在Saxon-B XSLT 2.0引擎中评估($ expr)。但是我需要在XSLT 1.0中执行此操作。
如何解决此错误并在Tibco BW中的XSLT 1.0中实现相同的错误?
任何建议都将受到高度赞赏。
谢谢。
示例XSLT:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0"
xmlns:dyn="http://exslt.org/dynamic"
extension-element-prefixes="dyn">
<xsl:variable name="expr" select="not(1=1)"/>
<xsl:template match="/">
<eval>
<xsl:value-of select="dyn:evaluate($expr)"/>
</eval>
</xsl:template>
</xsl:stylesheet>
答案 0 :(得分:1)
使用tib:evaluate
代替dyn:evaluate
。
根据BW进程包含的其他内容,您可能需要将以下命名空间添加到进程中以使用tib:evaluate()函数:
namespace=http://www.tibco.com/bw/xslt/custom-functions
prefix=tib
为此,您可以选择流程,单击“命名空间注册表”按钮,然后添加上面的命名空间。