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 に答える