← all checks
warning suggested fix checked over the tokens, not an XPath rule

--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.

Redundant namespace declarations

A namespace prefix declared on the xsl:stylesheet and never used sends its reader looking for names it qualifies. Remove the declaration.

Incorrect:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:foo="urn:foo" version="2.0">
  <!-- the foo prefix is never used anywhere -->
</xsl:stylesheet>

Correct:

<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0">
  <!-- only namespaces that are actually used are declared -->
</xsl:stylesheet>

A prefix is used where it qualifies a name in an element, an attribute, an expression or a value template, or where a prefix list or xsl:namespace-alias names it. A computed name, an evaluated path or an extension function may still resolve it at run time, so check before removing it. Where a literal result element copies the namespace out and no #all of XSLT 2.0 or later excludes it, removing the declaration changes the output.