xsl-list
[Top] [All Lists]

RE: xsl:key composite keys

2003-11-10 12:10:58
You can define a composite key using concat() with a suitable separator.

Michael Kay

-----Original Message-----
From: owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com 
[mailto:owner-xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com] On Behalf Of 
Latham, SE (Sue) 
Sent: 10 November 2003 17:29
To: 'XSL-List(_at_)lists(_dot_)mulberrytech(_dot_)com'
Subject: [xsl] xsl:key composite keys


I am performing xml-to-xml transformations(XSLT/XPATH V1.0) 
using xsl:key definitions to cross-refer within a document. 
Is it possible to define composite keys using xsl:key? For 
example I can define a key thus:- 
<xsl:key name="Personkey" match="//Metadata/Person" 
use="MetadataID/LocalID"/> Where the MetadataID part of the 
document looks like this:- <MetadataID>
      <ServerID>server1</ServerID>
      <PersonID>Person1</PersonID>
</MetadataID>
Which I can then use OK like this:- 
<xsl:variable name="Pkey"  select="somewhere/someID"/> 
<xsl:for-each select="key('Personkey', $Pkey)"> ... do something...

But what I really want is the key to use eveything under 
'MetadataID'. So the key would be the concatenation of 
ServerID & LocalID. e.g. in the case above a string "server1Person1".

Is this possible in XSLT/XPATH version 1.0? Will it be 
possible in version 2.0? 

Regards,
Sue Latham
-----------


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



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



<Prev in Thread] Current Thread [Next in Thread>