[XSL-LIST Mailing List Archive Home] [By Thread] [By Date]

RE: [xsl] union vs. "or" vs. contains?


Subject: RE: [xsl] union vs. "or" vs. contains?
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 19 Oct 2004 08:34:10 +0100

Pretty well impossible to tell without measuring it. Note however that the
third example is wrong, it needs to be $citation-class='note-bib' or 
$citation-class= 'note-nobib'.

Presumably this is a Saxon question, because variable references in
predicates aren't allowed in XSLT 1.0. Saxon doesn't (currently) optimize
patterns like this - clearly it could save a lot of work if it pre-evaluated
the predicates once as soon as the value of the global variable was known,
and then eliminated the template rule from the decision tree if the
predicate was known to be false.

Michael Kay
http://www.saxonica.com/ 

> -----Original Message-----
> From: Bruce D'Arcus [mailto:bdarcus@xxxxxxxxxxxxx] 
> Sent: 19 October 2004 00:03
> To: XSL-List@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] union vs. "or" vs. contains?
> 
> I realize performance questions are always somewhat context-specific, 
> but I wonder if there are still general rules about which of these is 
> preferable?
> 
> <xsl:template match="db:section[contains($citation-class, 
> 'note')]/db:info">
>    <xsl:copy-of select="."/>
> </xsl:template>
> 
> <xsl:template match="db:section[$citation-class='note-bib']/db:info |
> 		db:section[$citation-class='note-nobib']/db:info">
>    <xsl:copy-of select="."/>
> </xsl:template>
> 
> <xsl:template match="db:section[$citation-class='note-bib' or 
> 'note-nobib']/db:info">
>    <xsl:copy-of select="."/>
> </xsl:template>
> 
> Bruce


Current Thread
Keywords