← all checks
error suggested fix //xsl:template[(@name or @_name) and not(@match) and not(@_match) and (@mode or @_mode or @priority or @_priority)]

--fix-suggestions rewrites this one, and a plain --fix leaves it alone: the correction changes what the stylesheet does, or is one of several the check would accept.

Use @mode or @priority in Template without @match

A template carrying a name and no match is invoked by name, so mode and priority have nothing to decide: both of them only ever choose between the templates a match pattern made candidates for a node. A processor does not ignore them either — it refuses the module as a static error (XTSE0500), so the stylesheet does not run at all. Either give the template the match the two attributes are about, or drop them and call it by name.

Incorrect:

<xsl:template name="oo" priority="2" mode="qq">
  <!--body-->
</xsl:template>

or:

<xsl:template name="oo" mode="qq">
  <!--body-->
</xsl:template>

or:

<xsl:template name="oo" priority="2">
  <!--body-->
</xsl:template>

Correct:

<xsl:template name="oo" match="oo" mode="qq">
  <!--body-->
</xsl:template>

or:

<xsl:template name="oo" match="oo" priority="2">
  <!--body-->
</xsl:template>

or:

<xsl:template name="oo" match="oo" priority="2" mode="qq">
  <!--body-->
</xsl:template>

or:

<xsl:template match="oo" priority="2" mode="qq">
  <!--body-->
</xsl:template>

or:

<xsl:template match="oo" priority="2">
  <!--body-->
</xsl:template>

or:

<xsl:template match="oo" mode="qq">
  <!--body-->
</xsl:template>