A <xsl:param> can occur at either the top level or as the first child of a <xsl:template>. It is similar to a <xsl:variable>, but its value may be changed by the calling template or stylesheet environment.
This is analagous to the concept of subroutine parameters in a more traditional programming language.
<xsl:param name = qname select = expression> <!-- Content: template --> </xsl:param>