2016-05-09 10 views
3

私はMarklogicで評価されたxsltを持っています(xdmp:xslt-invoke経由)。 xsl:messageタグ内の変数を評価しようとしていますが、Marklogicがメッセージに遭遇したときに変数を評価するのではなく、単にその中にテキストを表示します。例えばMarkLogicで実行するとxsltメッセージの変数を評価する方法

<xsl:template match="/"> 
    <xsl:variable name="x" select="//xpath"/> 
    <xsl:message terminate="yes">Terminating <xsl:value-of select="$x"/></xsl:message>   
</xsl:template> 

これが評価されると、私は出力にこのような何かを参照してください。

[XSLT] XSLT-MSGTERMINATE: (err:XTMM9000)<xsl:message terminate="yes"><xsl:text>"Terminating "</xsl:text><xsl:value-of select="$x"/><xsl:text>"&#10; />"</xsl:text></xsl:message> -- xsl:message instruction called with terminate 

が実際にある$ xの値を評価して表示する方法はありますメッセージ?

答えて

1

xsl:message terminate="yes"は変数を評価していませんでした。私は正しく$x変数の値を評価しますfn:error

<xsl:template match="//some xpath condition"> 
    <xsl:variable name="x" select="//someXpath string value"/> 
     <xsl:message terminate="yes"> 
     <xsl:value-of 
      select=" 
       xdmp:eval(concat(
       'xquery version ''1.0-ml'';', 
       'let $message := concat(''Terminating with value ''', ',', '''', $x, ''')', 
       'let $_error := error(xs:QName(''Error''), $message)', 
       'return $_error' 
       ))" 
     /></xsl:message></xsl:template> 

xdmp:evalとして終了メッセージを次のようにxdmp:evalを通じて変数を評価し、提示することができました。

関連する問題