3

我一直在尝试使用 XSLT1.0 中的 Exslt 扩展 dyn:evaluate($expression) 来实现表达式的动态评估,但出现以下错误。

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-B XSLT 2.0 引擎中使用 saxon:evaluate($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>
4

1 回答 1

1

使用tib:evaluate而不是dyn:evaluate.

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

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

为此,您将选择进程,单击“命名空间注册表”按钮,然后在上面添加命名空间。

于 2013-11-13T03:11:27.180 回答