← all checks
error //xsl:with-param[not(parent::xsl:call-template or parent::xsl:apply-templates or parent::xsl:apply-imports or parent::xsl:next-match or parent::xsl:next-iteration)]

Using xsl:with-param in invalid parent node

xsl:with-param is allowed within xsl:call-template, xsl:apply-templates, xsl:apply-imports, xsl:next-match and xsl:next-iteration. xsl:with-param is needed to pass values to the called template or to the applied templates. Otherwise it doesn't make sense.

Incorrect:

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
  <xsl:with-param name="Kipling" select="1865"/>
</xsl:stylesheet>

Correct:

<xsl:call-template name="myTemplate">
  <xsl:with-param name="Shakespeare" select="1564"/>
</xsl:call-template>

or:

<xsl:apply-templates select="node">
  <xsl:with-param name="Austen" select="1775"/>
</xsl:apply-templates>

or:

<xsl:apply-imports>
  <xsl:with-param name="Dickens" select="1812"/>
</xsl:apply-imports>

or:

<xsl:next-match>
  <xsl:with-param name="Carroll" select="1832"/>
</xsl:next-match>

or:

<xsl:next-iteration>
  <xsl:with-param name="Christie" select="1890"/>
</xsl:next-iteration>