RE: [xsl] xsl template priority / xsl template precedence

Subject: RE: [xsl] xsl template priority / xsl template precedence
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Thu, 7 Sep 2006 19:49:19 +0100
You've got one template that matches aggregate elements, and another that
matches errorresponse elements. Priorities only come into play when a node
matches more than one template rule, and that's not the case here - there's
no overlap. If you apply-templates on an aggregate, the first rule fires; if
you apply-templates on an errorresponse (with the right ancestry) the second
rule fires. Priority and precedence don't affect it.

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

> -----Original Message-----
> From: Ralph Rauscher [mailto:rra@xxxxxxxxxxxxxxxxxxxxxxxxx] 
> Sent: 07 September 2006 18:46
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: [xsl] xsl template priority / xsl template precedence
> 
> Hi,
> 
> seem to be stuck on this one. I'm using the following template:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"; 
> version="1.0">
>    <xsl:template match="aggregate" priority="5">
>        matched aggregate
>    </xsl:template>
>    <xsl:template match="aggregate/responses/errorresponse" 
> priority="1000">
>        matched error response
>    </xsl:template>
> </xsl:stylesheet>
> 
> and the following input:
> 
> <?xml version="1.0" encoding="UTF-8"?>
> <aggregate>
>    <responses>
>        <errorresponse>
>            some error
>        </errorresponse>
>    </responses>
> </aggregate>
> 
> I'd assume that given the priority attributes on the 
> templates, the match="aggregate/responses/errorresponse" 
> would get chosen by the XSLT processor. However, the result 
> is that - no matter what I try - the processor always uses 
> the match="aggregate" template also that thing has lower 
> priority and is also less specific than the other one.
> 
> Anyone any ideas why that happens? I tried different 
> processors, all with the same result.
> 
> Ralph

Current Thread