Michael,
Just a head's up that it appears no error is triggered in some cases where an illegal axis is used inside a pattern.

I was trying to use <xsl:for-each-group> today and forgot that only child and attribute axes are allowed in patterns. When I ran the following script, no error was reported.

<xsl:template match="/">
        <xsl:for-each-group select="Employees/Employee" group-starting-with="Employee[xs:date(@Bday) gt xs:date(preceding-sibling::Employee/@Bday)]">
            <xsl:copy-of select="."/>
        </xsl:for-each-group>
       
    </xsl:template>

Instead, the processor appears to just refuse to find any matches, so only one group is ever formed, even if there are nodes that would logically match the pattern in question.

-David

--

"A false conclusion, once arrived at and widely accepted is not dislodged easily, and the less it is understood, the more tenaciously it is held." - Cantor's Law of Preservation of Ignorance.