вы можете проверить, установлен ли $ tag следующим образом.
<xsl:param name="tag">
<xsl:message terminate="yes">
$tag has not been set
</xsl:message>
</xsl:param>
Хотя это не стандартно, он будет работать на большинстве процессоров XSLT.
Если вы хотитебыть абсолютно безопасным, вы можете установить недопустимое значение (например, 1 div 0) и проверить его в теле шаблона:
<xsl:param name="tag" select="1 div 0" />
<xsl:if test="$tag = 1 div 0">
<xsl:message terminate="yes">
$tag has not been set, or has been set to Infinity, which is invalid.
</xsl:message>
</xsl:if>
Источник: O'Reilly XSLT Cookbook