阿罗哈,
在编写XSLT样式表时,我遇到了一个无法解决的问题。我的基本XML结构是以下
<nonUniqueConstraint name = "...">
<column name = "..."/>
<column name = "..."/>
</nonUniqueConstraint>
我想打印所有列的名称。因此,我使用了以下语句(我正在迭代所有非唯一约束):
<xsl:value-of select="./column/@name" separator=", "/>
然而,当我运行Ant构建文件时,它会输出以下内容:
错误![ERR 0510][ERR XTSE0090]非法的附件"分隔符"为指定
我查找了错误,发现了以下描述:
[ERR XTSE0090]这是XSLT中元素的静态错误命名空间的属性,该属性的命名空间为null(是,具有不固定名称的属性)或XSLT命名空间,其他而不是为此文档中的元素定义的属性。
尽管如此,我还是看到了许多使用分隔符属性的例子,例如这里。
我该如何解决这个问题?
干杯
查看version属性上的样式表元素-在xsl:value of 处启用属性"separator"应该是2.0
<xsl:stylesheet version="2.0"...
我认为您应该检查正在运行的XSLT处理器。
这个错误有点奇怪,因为错误代码XTSE0090只在XSLT2.0中定义,而XSLT2.0允许使用分隔符属性。Jirka的答复只是部分正确。如果您正在运行XSLT1.0处理器,它将始终拒绝分隔符属性,但不太可能使用XSLT2.0错误代码XTSE0090。如果你运行的是2.0处理器,不管样式表指定的是version="1.0"还是version="2.0",它都应该接受separator属性
要检查使用的XSLT处理器,请使用XSLT system-property()函数编写消息。