You can have parameters just like regular templates.
xsl:param and xsl:with-param work the same.
Example:
<xsl:template name="frog"> <xsl:param name="color"/> <frog color="{$color}"/> </xsl:template> <xsl:template name="animal[@type='frog']"> <xsl:call-template name="frog"> <xsl:with-param name="color" select="@color"/> </xsl:call-template> </xsl:template>