EXSLT扩展“dyn:evaluate($ expr)”在TIBCO BW中的XSLT 1.0中失败

时间:2013-11-12 13:15:29

标签: xslt xslt-1.0 tibco tibco-topic

我一直在尝试使用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>

1 个答案:

答案 0 :(得分:1)

使用tib:evaluate代替dyn:evaluate

根据BW进程包含的其他内容,您可能需要将以下命名空间添加到进程中以使用tib:evaluate()函数:

namespace=http://www.tibco.com/bw/xslt/custom-functions
prefix=tib

为此,您可以选择流程,单击“命名空间注册表”按钮,然后添加上面的命名空间。