La differenza è che il valore di un xsl:param
potrebbe essere impostato al di fuori del contesto in cui è stato dichiarato. Ad esempio, si veda :
<xsl:template ...>
<xsl:param name="p" select="'x'" />
<xsl:variable name="v" select="'y'" />
...
poi si sa che $v
vi darà sempre la stringa 'y'
. Ma per $p
la stringa 'x'
è soltanto un default: si vedrà un valore diverso se il modello viene richiamato sia con xsl:apply-templates
o xsl:call-template
che contiene un'istruzione come ad esempio:
<xsl:with-param name="p" select="'not x'" />
<xsl:param>
può anche essere utilizzato al di fuori xsl:template
, al livello superiore in il foglio di stile. Il valore di tale parametro può essere impostato quando viene chiamato il processore XSLT . Il modo in cui questo viene fatto dipende dal processore e dal fatto che lo si chiami dalla riga di comando o dal programma.