有人知道以下样式表在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,我的函数的语法应该是正确的。
答案 0 :(得分:2)
XSLT 2.0语言没有xsl:result
元素,只需使用
<xsl:sequence select="string-length($number) = string-length(translate($number, $notAllowedCharactersInTelNumber, ''))" />
在函数体内部返回结果。