← all checks
warning suggested fix recommended //(xsl:if | xsl:when)[xslint:normalize-space(xslint:attribute(., 'test')) = ("'true'", "'false'", '"true"', '"false"')]

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

Incorrect use of boolean constants

When an xsl:if or xsl:when test is the bare string 'true' or 'false', it is a non-empty string, so the branch is always taken: test="'false'" runs when you meant it never should. Say what you mean with the boolean functions true() and false().

Incorrect:

<xsl:if test="'false'">
  <xsl:value-of select="."/>
</xsl:if>

Correct:

<xsl:if test="false()">
  <xsl:value-of select="."/>
</xsl:if>

Either quote is flagged. A comparison such as @active = 'true' is left alone, since attribute values are strings.