处理器(版本9.5)将xsl:result报告为未知元素

时间:2014-02-19 12:17:05

标签: xslt xslt-2.0 saxon

有人知道以下样式表在Saxon 9.5处理时收到编译错误的原因吗?

<?xml version="1.0" encoding="ISO-8859-1"?>
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
    xmlns:my="http://www.test.com"
>
  <xsl:variable name="lowerCaseLetters" select="'abcdefghijklmnopqrstuvwxyz'"/>
  <xsl:variable name="upperCaseLetters" select="'ABCDEFGHIJKLMNOPQRSTUVWXYZ'"/>
  <xsl:variable name="notAllowedCharactersInTelNumber" select="concat($lowerCaseLetters, $upperCaseLetters, '.:')" />

  <xsl:function name="my:isTelNumberValid">
    <xsl:param name="number" />
    <xsl:result
      type="xs:boolean"
      select="string-length($number) = string-length(translate($number, $notAllowedCharactersInTelNumber, ''))" />
  </xsl:function>
</xsl:stylesheet>

我得到的错误是:

Error at xsl:result on line 13 column 115 of testXslResult.xsl: XTSE0010: Unknown XSLT element: result

Failed to compile stylesheet. 1 error detected.

根据documentation,我的函数的语法应该是正确的。

1 个答案:

答案 0 :(得分:2)

XSLT 2.0语言没有xsl:result元素,只需使用

<xsl:sequence select="string-length($number) = string-length(translate($number, $notAllowedCharactersInTelNumber, ''))" />

在函数体内部返回结果。