2012-01-02 78 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

相關問題