This is the mail archive of the xsl-list@mulberrytech.com mailing list .


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Re: Key/Use


    Excuse my ignorance but, why is this

   <xsl:key name="lookup" match="row"
   use="concat($TRANSFORMER_SourceCountry,'_layer_name')"/>

   any more useless than?:
  
   <xsl:key name="lookup" match="row" use="US_layer_name"/>
  


The first one uses a constant key value. If it were legal syntax (which
it would be if the explicit comment disallowing variables had not been
added to the spec) and if
$TRANSFORMER_SourceCountry were 'US' then
 
 <xsl:key name="lookup" match="row"
 use="concat($TRANSFORMER_SourceCountry,'_layer_name')"/>

would be


 <xsl:key name="lookup" match="row"
 use="'US_layer_name'"/>

ie every row gets the same key value 'US_layer_name' Thus you couldn't
use this key to get any subset of the row elements, just all of them at
once, in which case there's no need for a key at all you could just use
<xsl:variable name="x" select="//row"/>

The second one uses a non-constant Xpath.

each row gets the value of the US_layer_name element which is the child
of that row, so different rows potentially get different keys, and you
can use xsl:key to quickly find the rows with any particular key value.

David

_____________________________________________________________________
This message has been checked for all known viruses by Star Internet
delivered through the MessageLabs Virus Scanning Service. For further
information visit http://www.star.net.uk/stats.asp or alternatively call
Star Internet for details on the Virus Scanning Service.

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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]