Paramètres XSL / Variables XQuery

www.altova.com Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Guide d'utilisateur et référence > Commandes de menu  > Menu XSL/XQuery  >

Paramètres XSL / Variables XQuery

La commande XSL/XQuery | Paramètres XSL / Variables XQuery ouvre le dialogue Paramètres de saisie XSLT /Variables externes XQuery (voir capture d'écran). Vous pouvez saisir le nom d'un ou de plusieurs paramètres que vous souhaitez passer dans la feuille de style XSLT, ou sur une ou plusieurs variables XQuery externes que vous souhaitez passer au document XQuery et leurs valeurs respectives. Ces paramètres sont utilisés comme suit dans Authentic Desktop:

 

Lorsque la commande Transformation XSL dans le menu XSL/XQuery est utilisée pour transformer un document XML, les valeurs de paramètre actuellement enregistrées dans le dialogue sont passées dans le document XSLT sélectionné et sont utilisées pour la transformation.
Lorsque la commande Exécution XQuery dans le menu XSL/XQuery est utilisée pour traiter un document XQuery, les valeurs de variable externes XQuery actuellement enregistrées dans le dialogue sont passées dans le document XQuery pour l'exécution.

 

Note : les paramètres ou les variables que vous saisissez dans le dialogue Paramètres de saisie XSLT /Variables externes XQuery sont uniquement transférés sur le moteur XSLT intégré Altova. C'est pourquoi, si vous utilisez MSXML ou un autre moteur externe que vous avez configuré, ces paramètres ne sont pas transférés à ce moteur.

 

Note:Il ne s'agit pas d'une erreur si un paramètre XSLT ou une variable XQuery externe est définie dans le dialogue Paramètres de saisie XSLT /Variables externes XQuery mais il n'est pas utilisé dans le document XSLT/XQuery ou dans la transformation.

 

Utiliser des paramètres XSLT

La valeur que vous saisissez pour le paramètre peut être une expression XPath sans guillemets ou un string de texte délimité par des guillemets. Si le document actif est un document XSLT, la touche Obtenir depuis XSL sera activée. Cliquer sur cette touche pour insérer des paramètres déclarés dans le XSLT à l'intérieur du dialogue avec leurs valeurs par défaut. Cela vous permet d'inclure rapidement des paramètres déclarés puis de changer leurs valeurs par défaut comme requis.

 

xsl_parameters

Note : Une fois qu'un ensemble de valeurs de paramètres est saisi dans le dialogue Paramètres de saisie XSLT /Variables externes XQuery, il est utilisé pour toutes les transformations ultérieures jusqu'à ce qu'il soit supprimé explicitement ou que l'application soit redémarrée. Les paramètres saisis dans le dialogue Paramètres de saisie XSLT /Variables externes XQuery sont spécifiés au niveau de l'application, et seront passés dans le document XSLT respectif pour chaque transformation effectuée par le biais de l'IDE à partir de ce point. Cela signifie que :

 

les paramètres ne sont pas associés à un document en particulier
tout paramètre saisi dans le dialogue Paramètres de saisie XSLT /Variables externes XQuery est supprimé une fois que Authentic Desktop a été fermé.

 

 

Exemple d'utilisation pour les paramètres XSLT

Dans l'exemple suivant, nous sélectionnons le pied de page du document requis parmi trois possibilités dans le document XML (footer1, footer2, footer3).

 

<?xml version="1.0" encoding="UTF-8"?>

<document xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

 xsi:noNamespaceSchemaLocation="C:\workarea\footers\footers.xsd">

 <footer1>Footer 1</footer1>

 <footer2>Footer 2</footer2>

 <footer3>Footer 3</footer3>

 <title>Document Title</title>

 <para>Paragraph text.</para>

 <para>Paragraph text.</para>

</document>

 

Le fichier XSLT contient un paramètre local appelé footer dans le modèle de l'élément racine. Ce paramètre a une valeur par défaut de footer1. La valeur de paramètre est instanciée par la suite dans le modèle possédant une valeur $footer dans la définition du bloc de pied de page.

 

<?xml version="1.0" encoding="UTF-8"?>

<xsl:stylesheet version="1.0"

 xmlns:xsl="http://www.w3.org/1999/XSL/Transform"

 xmlns:fo="http://www.w3.org/1999/XSL/Format">

 ...

       <xsl:param name="footer" select="document/footer1" />        

 ...

 <xsl:template match="/">

         <fo:root>

                 <xsl:copy-of select="$fo:layout-master-set" />

                 <fo:page-sequence master-reference="default-page"

                         initial-page-number="1" format="1">

                               <fo:static-content flow-name="xsl-region-after"

                                 display-align="after">

                                 ...

                                 <fo:inline color="#800000" font-size="10pt" font-weight="bold">

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

                                 </fo:inline>

                                 ...

                         </fo:static-content>

                 </fo:page-sequence>

         </fo:root>

 </xsl:template>

</xsl:stylesheet>

 

Dans le dialogue Paramètres de saisie XSLT, une nouvelle valeur pour le paramètre footer peut être saisi, comme le XPath: document/footer2 (voir capture d'écran ci-dessus) ou un string de texte. Pendant la transformation, cette valeur est transmise au paramètre footer dans le modèle pour l'élément racine et est la valeur utilisée lorsque le bloc de pied de page est instancié.

 

Note :

 

Si vous utilisez la commande XSL:FO Transformation (XSL/XQuery | Transformation XSL:FO), les paramètres saisis dans le dialogue Paramètres de saisie XSLT/Variables XQuery externes ne sont pas transmis dans la feuille de style. Afin de pouvoir utiliser ces paramètres dans une sortie PDF, veuillez tout d'abord transformer depuis XML vers FO en utilisant la commande Transformation XSLT (XSL/XQuery | Transformation XSL), puis transformer le FO en PDF en utilisant la commande Transformation XSL:FO (XSL/XQuery | Transformation XSL:FO).
Si vous utilisez un processeur XSLT différent des Moteurs XSLT Altova intégrés, les paramètres que vous saisissez à l'aide du dialogue Paramètres de saisie ne seront pas transmis au processeur externe.

 

 

Utiliser les variables XQuery externes

La valeur que vous saisissez pour une variable XQuery externe peut être une expression XPath sans guillemet ou un string de texte limité par des guillemets. Le type de données de la variable externe est spécifié dans la déclaration de variable dans le document XQuery.

 

xquery_variables

Note : Une fois qu'un ensemble de variables XQuery externe est saisi dans le dialogue Paramètres de saisie XSLT/Variables XQuery externes, celles-ci sont utilisées pour toutes les exécutions ultérieures jusqu'à ce qu'elles soient explicitement supprimées ou que l'application est redémarrée. Les variables saisies dans le dialogue Paramètres de saisie XSLT/Variables XQuery externes sont spécifiées au niveau de l'application et seront transférées au document XQuery respectif pour chaque exécution qui est effectuée par le biais de l'IDE à partir de ce point. Cela signifie que :

 

Les variables ne sont pas associées avec un document particulier
Toute variable saisie dans le dialogue Paramètres de saisie XSLT/Variables XQuery externes est supprimée une fois que l'application (Authentic Desktop) a été fermée.

 

Exemple d'utilisation pour des variables XQuery externes

Dans l'exemple suivant, une variable $first est déclarée dans le document XQuery et est ensuite utilisée dans la clause de retour de l'expression FLWOR :

 

 xquery version "1.0";

 declare variable $first as xs:string external;

 let $last := "Jones"

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

 

Cet XQuery retourne Peter Jones, si la valeur de la variable externe (saisie dans le dialogue Paramètres de saisie XSLT/Variables XQuery externes) est Peter. Veuillez noter les points suivants :

 

Le mot-clé external dans la déclaration de variable dans le document XQuery indique que cette variable est une variable externe.
La définition du type statique de la variable est optionnelle. Si un type de données pour la variable n'est pas spécifié dans la déclaration de la variable, la valeur de variable est assignée au type xs:untypedAtomic.
Si une variable externe est déclarée dans le document XQuery, mais qu'aucune variable externe de ce nom n'est transmise au document XQuery, une erreur sera rapportée.
Si une variable externe est déclarée et est saisie dans le dialogue Paramètres de saisie XSLT/Variables XQuery externes, elle sera considérée comme se trouvant dans le cadre de l'étendue pour le document XQuery en cours d'exécution. Si une nouvelle variable avec ce nom est déclarée dans le document XQuery, la nouvelle variable contournera temporairement la variable externe in-scope. Par exemple, le document XQuery ci-dessous retourne Paul Jones même si la variable externe in-scope $first a une valeur de 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