xsl-list
[Top] [All Lists]

RE: xsl:key composite keys

2003-11-12 03:06:20
Thanks very much Michael and David Carlisle for your suggestion. It works a
treat.

Cheers,
Sue Latham

-----Original Message-----
From: Michael Kay [mailto:mhk(_at_)mhk(_dot_)me(_dot_)uk]
Sent: 10 November 2003 19:11
To: xsl-list(_at_)lists(_dot_)mulberrytech(_dot_)com
Subject: RE: [xsl] xsl:key composite keys

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

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



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