Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Descripción general de parámetros XSLT

Los parámetros se pueden pasar a plantillas con o sin nombre. Dentro de la plantilla, los parámetros se deben declarar y luego se pueden hacer referencia mediante el prefijo de su nombre con el signo de dólar ($).

Declarar parámetros

El alcance de un parámetro puede ser global o local. Un parámetro cuyo valor es establecido por Junos OS en la inicialización de script debe definirse como un parámetro global. Las declaraciones de parámetros globales se colocan justo después de las declaraciones de hoja de estilos. Una secuencia de comandos puede asignar un valor predeterminado al parámetro global, que se usa en caso de que Junos OS no le dé un valor al parámetro.

Los parámetros locales se deben declarar al principio de un bloque y su ámbito está limitado al bloque en el que se declaran. Dentro de una plantilla, se declaran los parámetros mediante la etiqueta y name el <xsl:param> atributo. Opcionalmente, declare valores predeterminados para cada parámetro incluyendo el select atributo, que puede contener expresiones XPath. Si se invoca una plantilla sin el parámetro, se evalúa la expresión predeterminada y los resultados se asignan al parámetro. Si no define un valor predeterminado en la plantilla, el parámetro se configura por defecto en una cadena vacía.

La siguiente plantilla print-host-name denominada declara el parámetro message y define un valor predeterminado:

La plantilla accede al valor del message parámetro prefijando el nombre del parámetro con el signo de dólar ($).

Pasar parámetros

Cuando se invoca una plantilla, se pasan argumentos a la plantilla mediante el elemento y name atributo<xsl:with-param>. El valor del <xsl:with-param> name atributo debe coincidir con el nombre de un parámetro definido en la plantilla real; de lo contrario, el parámetro se omite. Opcionalmente, para cada parámetro que pase a una plantilla, puede definir un valor mediante el select atributo o el contenido del <xsl:with-param> elemento.

El valor de parámetro que se usa en una plantilla depende de cómo se llama a la plantilla. Los tres ejemplos siguientes, que llaman a la print-host-name plantilla, ilustran los posibles entornos de llamada.

Si llama a una plantilla pero no incluye el <xsl:with-param> elemento para un parámetro específico, se evalúa la expresión predeterminada definida en la plantilla y los resultados se asignan al parámetro. Si no hay ningún valor predeterminado para ese parámetro en la plantilla, el parámetro se predeterminada a una cadena vacía. En el ejemplo siguiente se llama a la plantilla print-host-name con nombre, pero no se incluye ningún parámetro en la llamada. En este caso, la plantilla denominada utilizará el valor predeterminado para el message parámetro que se definió en la print-host-name plantilla o una cadena vacía si no existe ningún valor predeterminado.

Si llama a una plantilla e incluye un parámetro, pero no define un valor para el parámetro en el entorno de llamada, la secuencia de comandos pasa el valor actual del parámetro si se inicializó anteriormente o genera un error si el parámetro nunca se ha declarado. En el ejemplo siguiente se llama a la plantilla print-host-name con nombre y se pasa el message parámetro, pero no se incluye un valor. Si message se declara e inicializa en la secuencia de comandos y el ámbito es visible para el bloque, se utiliza el valor actual de message . Si message se declara en la secuencia de comandos pero no se inicializa, el valor de message será una cadena vacía. Si message no se ha declarado, la secuencia de comandos produce un error.

Si llama a una plantilla, incluya el parámetro y defina un valor para el parámetro, la plantilla usa el valor proporcionado. En el ejemplo siguiente se llama a la plantilla print-host-name con nombre con el message parámetro y un valor definido, de modo que la plantilla use el nuevo valor.

Ejemplo: parámetros y plantillas de coincidencia

La siguiente plantilla coincide en /, la raíz del documento XML. A continuación, genera un elemento denominado <outside>, que se agrega al documento de salida e indica al proceso de administración de Junos OS (mgd) que aplique plantillas recursivamente al configuration/system subárbol. El parámetro host se utiliza en el procesamiento de cualquier nodos coincidente. El valor del host parámetro es el valor de la host-name instrucción en el nivel [edit system] de la jerarquía de configuración.

La siguiente plantilla coincide con el <system> elemento, que es la parte superior del subárbol seleccionado en el ejemplo anterior. El host parámetro se declara sin valor predeterminado. Se <inside> genera un elemento que contiene el valor del host parámetro que se definió en la <xsl:with-param> etiqueta en el ejemplo anterior.

Ejemplo: parámetros y plantillas con nombre

La siguiente plantilla report-changed denominada declara dos parámetros: dot, que es el valor predeterminado para el nodo actual y changed, que es predeterminado para el changed atributo del nodo dot.

La siguiente estrofa llama a la report-changed plantilla y define un origen para el changed atributo distinto del origen predeterminado definido en la report-changed plantilla. Cuando se invoca la report-changed plantilla, utilizará el origen recién definido para el changed atributo en lugar del origen predeterminado.

Del mismo modo, la llamada de plantilla puede incluir el dot parámetro y definir un origen distinto al nodo actual predeterminado, como se muestra aquí: