← all checks
error recommended //(xsl:variable | xsl:param | xsl:template | xsl:function)[matches(@name, '^(Q[{][^}]*[}]|[^:{]*:)?[0-9]')]

Name starts with a numeric character

A variable, parameter, template, or function name that starts with a digit is no QName, so a processor refuses the stylesheet, and no expression could name it anyway: $1st is a syntax error in XPath. Start the name with a letter.

Incorrect:

<xsl:param name="1st" select="'first'"/>

Correct:

<xsl:param name="first" select="'first'"/>

The local part is judged, so my:9lives is reported as well, and so is Q{}9lives. A digit inside the braces of Q{urn:1}lives is part of the namespace URI, and the name is sound.