xslt - partir - diferencia entre xsl: param y xsl: variable
xslt online (1)
Estoy considerando cualquiera de los dos para usar al definir un xsl: template name = myTemplate que se llamará en otro archivo xsl.
el código heredado parece usar ''xsl: variable'' cuando se usa en xsl: template match = "legacyTemplate"
Entonces, ¿cuál es la diferencia entre xsl: param y xsl: variable al usarlo en xsl: template name = myTemplate?
La diferencia es que el valor de xsl:param se puede establecer fuera del contexto en el que se declara. Por ejemplo, ver:
<xsl:template ...>
<xsl:param name="p" select="''x''" />
<xsl:variable name="v" select="''y''" />
...
entonces sabes que $v siempre te dará la cadena ''y'' . Pero para $p la cadena ''x'' solo es un valor predeterminado: verá un valor diferente si la plantilla se invoca con xsl:apply-templates o xsl:call-template que contiene una instrucción como:
<xsl:with-param name="p" select="''not x''" />
<xsl:param> también se puede usar fuera de xsl:template , en el nivel superior de la hoja de estilo. El valor de dicho parámetro se puede establecer cuando se llama al procesador XSLT. Cómo se hace esto depende del procesador y si lo llamas desde la línea de comando o por programa.