2012-01-02 103 views
4

在关键元素中,use属性值或match属性的值包含变量引用时出错。<key>元素中的key()函数

但是,use属性或match属性是否可以包含key()函数?

这似乎是允许的,但只有在样式表中按文档顺序执行key元素时才有意义。这有保证吗?

(如果这确实工作,那么可以有时使用key()函数内的usematch做的工作是不允许的全局变量会做。)

回答

4

,但可以在use属性或match属性包含一个键() 函数?

在XSLT 1.0中,这两个都是错误

W3C Errata to the XSLT 1.0 Specification

E13 - 实质。

第12.2节第8段。在匹配和 中使用属性对xsl:key元素的调用可能会导致循环。请参阅 http://lists.w3.org/Archives/Member/w3c-xsl-wg/2000Jun/0048.html (仅限会员)。

它是要么使用属性或匹配 属性包含一个VariableReference,或在键 函数的调用的值的误差

在XSLT 2.0在使用key()功能的这些地方是允许的,只要一个关键字没有按照它自己的定义(在定义中不允许循环引用)。

+0

对于XSLT 2.0,允许使用key()函数,但必须受限于不能根据自身定义密钥,如http://www.w3.org/TR/xslt20/#circularity中所述 – 2012-01-03 00:17:48

+0

@MichaelKay:当然可以。任何循环定义都是错误的。 – 2012-01-03 00:40:35

相关问题