[xsl] Why are these two template rules ambiguous?

Subject: [xsl] Why are these two template rules ambiguous?
From: "Roger L Costello costello@xxxxxxxxx" <xsl-list-service@xxxxxxxxxxxxxxxxxxxxxx>
Date: Tue, 23 Aug 2022 16:35:32 -0000
Hi Folks,

I have these two template rules:

<xsl:template match="procedureLeg[ancestor::airport]">
<xsl:template match="*[child::*]">

When the <procedureLeg> element is encountered in the instance document, Saxon
throws a warning, saying that it is ambiguous which rule to use.

But, but, but, ...

Clearly the first rule is more specific. I thought the XSLT specification
says: the more specific rule wins. Right? So why is Saxon throwing a warning
message?

I know that I can add "priority" to the first rule and then the warning will
go away, but I shouldn't have to do that, right?

/Roger

Current Thread