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

Re: priority of key patterns

Subject: Re: priority of key patterns
From: Michael Kay <mike@xxxxxxxxxxxx>
Date: Wed, 14 Nov 2012 10:33:01 +0000
Re:  priority of key patterns
Also top tip regarding this:
<xsl:apply-templates select="node()|@*"/>
What the union operator | does is de-dupe and sort the nodes into
document order, so by doing "node() | @*" you are giving the processor
more work than "@* | node()" because all the attributes nodes have to
be moved in the sort before the node()s.

If you are using xslt 2.0, then you should use "@*, node()"  (comma
instead of pipe) which returns the nodes exactly the way you specify,
without the de-dupe or sort.


I think Saxon now does this optimization automatically - but I'm not sure which version it comes out in, it might be something that's yet to be released.

In fact it's not a very big win anyway: Saxon for years has been able to spot that both operands to "|" are sorted node-sets, in which case it does a merge with no sort, which isn't going to take that much longer than simply concatenating the two sequences, assuming you are using the TinyTree where node order comparisons are highly efficient.

Michael Kay
Saxonica

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.