Il s'agit de deux choses différentes, désolé si mon commentaire est confus.
En utilisant un <xsl:if test="@col>3"> on tombe dans de la programmation, alors qu'avec un <xsl:template match="table[@col>3]"> on reste complètement déclaratif.
Pour les "variables", on ne peut pas modifier la valeur d'une variable ou d'un paramêtre, une fois qu'elle est définie, sa valeur est fixée jusqu'à la fin de sa portée. Tout au plus, on peut la masquer par une variable du même nom dans une sous branche.
Ca permet de certifier qu'un appel de template ne produit pas d'effet de bord en ayant une influence sur les appelants.
[^] # Re: Ca ne va pas plaire aux intaigristes du XML
Posté par Sébastien Koechlin . En réponse au journal for & while en XSLT. Évalué à 2.
En utilisant un <xsl:if test="@col>3"> on tombe dans de la programmation, alors qu'avec un <xsl:template match="table[@col>3]"> on reste complètement déclaratif.
Pour les "variables", on ne peut pas modifier la valeur d'une variable ou d'un paramêtre, une fois qu'elle est définie, sa valeur est fixée jusqu'à la fin de sa portée. Tout au plus, on peut la masquer par une variable du même nom dans une sous branche.
Ca permet de certifier qu'un appel de template ne produit pas d'effet de bord en ayant une influence sur les appelants.