This is the mail archive of the
xsl-list@mulberrytech.com
mailing list .
RE: keys and performance
- To: xsl-list at lists dot mulberrytech dot com
- Subject: RE: [xsl] keys and performance
- From: "Clapham, Paul" <pclapham at core-mark dot com>
- Date: Fri, 27 Jul 2001 10:26:25 -0700
- Reply-To: xsl-list at lists dot mulberrytech dot com
I don't know about performance, but in my opinion Version 1 is a better
design for the XML. It provides a clear relationship between the key (IE)
and the value (Ireland), as they are both contained in the same element
(csl:value). But in Version 2 the key and the value are in different
elements that are related by an implicit rule that needs to be explained,
namely that the value is in the first csl:value element following the
csl:key element that holds the key. You'll find that the XPath to relate
keys to values will be simpler for Version 1 than for Version 2; this may
have some minor effect on performance. In addition, and equally important
in my view, the average XSL programmer (if such a thing exists yet) would
probably work out the correct XPath for Version 1 by the second try, but
would have more difficulty with Version 2.
PC2
-----Original Message-----
From: James Pasley [mailto:James.Pasley@capeclear.com]
Sent: July 27, 2001 10:00
To: 'xsl-list@lists.mulberrytech.com'
Subject: [xsl] keys and performance
I am using XSLT to convert between two sets of values, using a "table"
defined in XML and a key.
Does the way the table is structured effect performance for large tables?
For example, is either one of the following two structures better than the
other?
Or is there a better way?
Version 1: used elements will the keys stored as attributes
<xsl:key name="CountryCodeKey" match="csl:CountryCode/csl:value"
use="@key"/>
<csl:CountryCode default="Other">
<csl:value key="IE">Ireland</csl:value>
<csl:value key="FR">France</csl:value>
<csl:value key="NL">Netherlands</csl:value>
<csl:value key="JP">Japan</csl:value>
<csl:value key="AU">Australia</csl:value>
</csl:CountryCode >
Version 2: Uses separate elements for the keys and values
<xsl:key name="CountryCodeKey" match="csl:CountryCode/csl:value"
use="preceding-sibling::cs:key[1]"/>
<csl:CountryCode>
<csl:key>IE</csl:key>
<csl:value>Ireland</csl:value>
<csl:key>FR</csl:key>
<csl:value>France</csl:value>
<csl:key>NL</csl:key>
<csl:value>Netherlands</csl:value>
<csl:key>JP</csl:key>
<csl:value>Japan</csl:value>
<csl:key>AU</csl:key>
<csl:value>Australia</csl:value>
</csl:CountryCode >
Thanks,
James Pasley
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list