Attention, xsl:param doit forcément être le premier fils de xsl:template... Par exemple :

<xsl:template name="fact">
	<xsl:param name="xxx" select="-1" />
	...

Cela ne fonctionnera pas s'il existe un nœud quelconque entre les deux, par exemple :

<xsl:template name="fact">
	hello
	<xsl:param name="xxx" select="-1" />
	...

Il faut le savoir ; c'est une erreur qui peut être insidieuse, entre Xalan qui ne signale aucune erreur (mais ne donne pas le résultat attendu) et Firefox qui se contente d'un laconique « Échec de l'analyse d'une feuille de style XSLT »...