[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: key and document()

Subject: RE: key and document()
From: Kay Michael <Michael.Kay@xxxxxxx>
Date: Tue, 24 Aug 1999 14:30:10 +0100
RE: key and document()
> If I understand you correctly, then each document, whether it is the
> `primary' one being transformed or a `secondary' one referred to by
> means of the document() function, has its own collection of keys.

That's my reading of the spec: "[The key() function] returns a node-set
containing the nodes in the same document as the context node that have a
value for the named key equal to this string".

> 
> Thus assuming the following variable declaration:
> 
>         <variable name="db" select="document('db.xml')"/>
> 
> In order to get keys from secondary document $db, I must use an
> expression of the form:
> 
>         $db/key($name,$value)
> 
> is that the intention?

Not quite, that isn't a valid path expression: there's no axis for keys. You
have to do a for-each or apply-templates to change the context node and then
execute the key() function.

> Does it not follow from this that I can never have a key that contains
> nodes from multiple documents?

Yes (or should I say no), It does follow from this.
> 
> If a multi-document spanning key is desired, then it must be simulated
> by means of union expressions (thus forcing database merging to be
> expressed at each point of use rather than at the point of
> `definition').
> 
Yes, I think so.

And note also that there is nothing in the spec to say whether invoking
document('db.xml') repeatedly will return the same node set each time or a
new node set each time, nor is there anything to say whether in your example
document('db.xml') is invoked when the variable is declared, the first time
it is referenced, or each time it is referenced.

(In SAXON each call on document() returns a new node set, but if you call it
in a global variable declaration, it will be invoked exactly once).

Mike Kay


 XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list


Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2013 All Rights Reserved.