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