<xsl:param>

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

The name of the parameter

select

Selects the parameter content, if present, otherwise the element content is used