Subject: Re: [xsl] Severe limitation of the xsl:key element with multiple source doc uments From: Mike Brown <mike@xxxxxxxx> Date: Tue, 10 Dec 2002 18:01:11 -0700 (MST) |
Jerome Louvel wrote: > But now we need to define XSLT keys in our source documents so we tried to > use the following declaration: > <xsl:key name="key_1" match="document('id:042C5210')/codesTable/entry/value" > use="../code" /> > > And we discovered that Xalan rejects this because of the presence of the > document() function call. > After checking the spec we discovered that the "match" attribute of the > xsl:key element must be a pattern (http://www.w3.org/TR/xslt#NT-Pattern) and > not an expression (http://www.w3.org/TR/xpath#NT-Expr). > > This prevents us from declaring any keys in our case which we find to be a > severe limitation in XSLT 1.0. > So we checked latest XSLT 2.0 working draft and found that the same > constraint. > > Are we missing something? Yes, you apparently didn't see XSLT 1.0 section 12.2, at the very end. It tells you how to do exactly what you're asking for. A key applies to nodes that match a pattern, no matter what document they occur in. The key *function*, however, only checks the keys of nodes in the document containing the context node. So just change the temporarily context node with xsl:for-each before you call key(). Mike -- Mike J. Brown | http://skew.org/~mike/resume/ Denver, CO, USA | http://skew.org/xml/ XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
[xsl] Severe limitation of the xsl:, Jerome Louvel | Thread | RE: [xsl] Severe limitation of the , Michael Kay |
Re: [xsl] Severe limitation of the , G. Ken Holman | Date | Re: [xsl] Building select-clause d, Marko Petersen |
Month |