Parámetros de XSL / Variables de XQuery

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Guía del usuario y de referencia > Comandos de menú > Menú XSL/XQuery >

Parámetros de XSL / Variables de XQuery

El comando XSL/XQuery | Parámetros de XSL / Variables de XQuery abre el cuadro de diálogo "Parámetros de entrada de XSL y variables externas de XQuery" (imagen siguiente). Aquí puede escribir el nombre de los parámetros que desea pasar a la hoja de estilos XSLT y las variables externas de XQuery que desea pasar al documento XQuery, así como sus correspondientes valores. En Authentic Desktop estos parámetros se usan de esta manera:

 

Cuando se usa el comando XSL/XQuery | Transformación XSL para transformar un documento XML, los valores del parámetros guardados en este cuadro de diálogo se pasan al archivo XSLT seleccionado y utilizado para la transformación.
Cuando se usa el comando XSL/XQuery | Ejecutar XQuery para procesar un documento XQuery, los valores de las variables externas de XQuery guardadas en este cuadro de diálogo se pasan al documento XQuery para la ejecución.

 

Nota: los parámetros y las variables que introduzca en este cuadro de diálogo se pasan solamente al motor XSLT integrado de Altova. Por tanto, si usa MSXML o un motor externo, estos parámetros no se pasan al motor de procesamiento.

 

Nota: no es erróneo definir una variable externa de XQuery (o un parámetro de XSLT) en el diálogo "Parámetros de entrada de XSL y variables externas de XQuery" y después no utilizarla en el documento XQuery. Tampoco es erróneo definir un parámetro de XSLT (o una variable externa de XQuery) en este cuadro de diálogo y después no usarlo en una transformación XSLT.

 

Cómo usar los parámetros de XSLT

El valor del parámetro puede ser una expresión XPath sin comillas o una cadena de texto delimitada por comillas. Si el documento activo es un archivo XSLT, entonces está habilitado el botón Obtener desde XSL. Al hacer clic en este botón se insertan en el cuadro de diálogo los parámetros declarados en el archivo XSLT y sus valores predeterminados. Es decir, este botón le permite incluir rápidamente los parámetros declarados y después cambiar sus valores predeterminados si lo necesita.

xsl_parameters

Nota importante: una vez introducidos en este cuadro de diálogo, los pares de parámetros y valores se usan para todas las transformaciones subsiguientes hasta que se eliminen del cuadro de diálogo o se reinicie la aplicación. Los parámetros introducidos en este cuadro de diálogo se definen para toda la aplicación y se pasan al documento XSLT correspondiente en cada transformación que se realice a partir de ese momento a través del entorno IDE. En otras palabras:

 

los parámetros no están asociados a ningún tipo de documento en particular
los parámetros introducidos en el cuadro de diálogo "Parámetros de entrada de XSL y variables externas de XQuery" se borran cuando se cierra Authentic Desktop.

 

Ejemplo de uso de parámetros de XSLT

En este ejemplo tenemos un documento XML que contiene los nombres de países y sus respectivas capitales:

 

<document>

   <countries>

      <country name="USA" capital="Washington DC"/>

      <country name="UK" capital="London"/>

      <country name="France" capital="Paris"/>

      <country name="Russia" capital="Moscow"/>

      <country name="China" capital="Beijing"/>

   </countries>

</document>

 

El siguiente documento XSLT generará un documento XML que muestre uno de esos países con su capital. Se selecciona un país introduciendo su nombre como valor del parámetro llamado country (resaltado en amarillo en el ejemplo siguiente).
 
<xsl:stylesheet version="2.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

   <xsl:param name="country" select="'USA'"/>

   <xsl:template match="countries">

      <xsl:for-each select="country[@name=$country]">

         <country>

            <name><xsl:value-of select="$country"/></name>

            <capital><xsl:value-of select="@capital"/></capital>

         </country>

      </xsl:for-each>

   </xsl:template>

</xsl:stylesheet>

 

Al ejecutar este documento XSLT en el documento XML mencionado más arriba, el resultado será el siguiente:

 

<country><name>USA</name><capital>Washington DC</capital></country>

 

Si se crea un parámetro llamado country en el cuadro de diálogo Parámetros de entrada XSLT/Variables externas XQuery y se le da un valor (imagen anterior), este valor pasará al parámetro country en la hoja de estilos para la transformación.De esta manera puede pasar distintos valores a diferentes parámetros en tiempo de ejecución.

 

Nota:

 

si usa el comando XSL/XQuery | Transformación XSL-FO, entonces los parámetros introducidos en el cuadro de diálogo "Parámetros de entrada de XSLT y variables externas de XQuery" no se pasan a la hoja de estilos. Para que estos parámetros se usen en el archivo PDF de salida, antes es necesario transformar el documento XML en FO con el comando XSL/XQuery | Transformación XSL) y después transformar el FO en PDF con el comando XSL/XQuery | Transformación XSL-FO.
si usa un procesador XSLT que no sea uno de los motores XSLT integrados de Altova, los parámetros que introduzca en el diálogo "Parámetros de entrada de XSLT y variables externas de XQuery" no se pasan al procesador externo.

 

Cómo usar las variables externas de XQuery

El valor de las variables externas de XQuery puede ser una expresión XPath sin comillas o una cadena de texto delimitada por comillas. El tipo de datos de la variable externa se especifica en la declaración de variable en el documento XQuery.

xquery_variables        

Nota: una vez introducidas en este cuadro de diálogo, las variables externas de XQuery se utilizan para todas las ejecuciones subsiguientes hasta que se borren del cuadro de diálogo o se reinicie la aplicación. Las variables introducidas en este cuadro de diálogo se definen para toda la aplicación y se pasan al documento XQuery correspondiente en cada ejecución que se realice a partir de ese momento a través del entorno IDE. En otras palabras:

 

las variables no están asociadas a ningún tipo de documento en particular
las variables introducidas en el cuadro de diálogo "Parámetros de entrada de XSL y variables externas de XQuery" se borran cuando se cierra Authentic Desktop.

 

Ejemplo de uso de variables externas de XQuery

En este ejemplo, en el documento XQuery se declaró una variable $first que se utiliza en la cláusula return  de la expresión FLWOR:

 

 xquery version "1.0";

 declare variable $first as xs:string external;

 let $last := "Jones"

 return concat($first, " ", $last )

 

Este XQuery devuelve Peter Jones, si el valor de la variable externa (introducida en el cuadro de diálogo "Parámetros de entrada de XSL y variables externas de XQuery") es Peter. Es necesario tener en cuenta que:

 

La palabra clave external de la declaración de variable del documento XQuery indica que esta variable es una variable externa.
Definir el tipo estático de la variable es opcional. Si no se indica un tipo de datos para la variable en la declaración de variable, entonces al valor de la variable se le asigna el tipo xs:untypedAtomic.
Si se declara una variable externa en el documento XQuery, pero no se pasa al documento XQuery ninguna variable externa que tenga ese mismo nombre, entonces se emite un mensaje de error.
Si se declara y se introduce una variable externa en el cuadro de diálogo "Parámetros de entrada de XSL y variables externas de XQuery", entonces se considera que está en el ámbito del documento XQuery que se está ejecutando. Si se declara una variable nueva con el mismo nombre dentro del documento XQuery, la variable nueva reemplaza temporalmente a la variable externa. Por ejemplo, el XQuery que aparece a continuación devuelve Paul Jones aunque la variable externa $first que está en el ámbito del documento tiene el valor Peter.

 

xquery version "1.0";

declare variable $first as xs:string external;

let $first := "Paul"

let $last := "Jones"

return concat($first, " ", $last )

 


© 2019 Altova GmbH