Paramètres XSL / Variables XQuery
La commande XSL/XQuery | Paramètres XSL / Variables XQuery ouvre le dialogue Paramètres d’entrée XSLT / Variables externes XQuery (voir la capture d’écran). Vous pouvez saisir le nom d’un ou de plusieurs paramètres que vous souhaitez passer à la feuille de style XSLT, ou une ou plusieurs variables externes XQuery 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 variables 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 les paramètres XSLT
La valeur que vous saisissez pour le paramètre est une expression XPath. Notez que les strings de texte dans XPath sont délimités par des guillemets.
![ADXSLTInputParams](./images/adxsltinputparams.png)
Une fois qu'un ensemble de valeurs de paramètres est saisi dans le dialogue, 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 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 particulier
•Chaque paramètre saisi dans le dialogue est supprimé une fois que Authentic Desktop a été fermé.
Note : | La touche Obtenir de XSL est activée dans Authentic View lorsqu’un document XSLT fait partie du document actif. Elle insère des paramètres déclarés dans le document XSLT actif à l’intérieur du dialogue ensemble avec les valeurs par défaut de ce paramètres. |
Exemple d'utilisation pour les paramètres XSLT
Nous avons un document XML qui contient les noms de pays et leurs capitales respectives :
<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>
Le document XSLT suivant générera un document XML qui affiche un pays depuis le fichier XML ensemble avec la capitale du pays. Le pays est sélectionné en saisissant le nom en tant que valeur du paramètre appelé country (affiché en surbrillance jaune ci-dessous).
<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>
Lorsque ce document XSLT est exécuté dans le document XML recensé ci-dessus, le résultat sera :
<country><name>USA</name><capital>Washington DC</capital></country>
Maintenant, si vous créez un paramètre dans le dialogue Paramètre d’entrée XSLT / Variables externes XQuery appelé country et lui donner une valeur (voir la capture d’écran ci-dessus), alors cette valeur sera passée au paramètre country dans la feuille de style XSLT pour la transformation. De cette manière, vous pouvez passer différentes valeurs à différents paramètres lors de l’exécution.
Veuillez noter les points suivants :
•Si vous utilisez la commande Transformation XSL:FO (XSL/XQuery | XSL:FO Transformation), alors les paramètres saisis dans le dialogue Paramètres d’entrée XSLT / Variables externes XQuery ne sont pas passés à la feuille de style. Si ces paramètres doivent être utilisés dans la sortie PDF, transformez d’abord de XML à FO utilisant la commande de transformation XSLT (XSL/XQuery | XSL Transformation), puis transformez FO en PDF utilisant la commande XSL:FO Transformation (XSL/XQuery | XSL:FO Transformation).
•Si vous utilisez un processeur XSLT autre que que les moteurs Altova XSLT intégrés, les paramètres que vous saisissez dans le dialogue Paramètres d’entrée ne seront pas passés au processeur externe.
Utiliser les variables XQuery externes
La valeur que vous saisissez pour des variables XQuery externes pourrait être une expression XPath sans guillemets ou un string de texte délimité par des guillemets. Le type de données de la variable externe est spécifié dans la déclaration variable dans le document XQuery.
![ADXQueryExternalVars](./images/adxqueryexternalvars.png)
Une fois qu'un ensemble de variables XQuery externe est saisi dans le dialogue, 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 sont spécifiées au niveau de l'application, et seront passées dans le document XQuery respectif pour chaque exécution effectuée par le biais de l'IDE à partir de ce point. Cela signifie que :
•Les variables ne sont pas associées à un document particulier
•Chaque variable saisie dans le dialogue est supprimée une fois que Authentic Desktop a été fermé.
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";
déclarer variable $first comme xs:string externe ;
let $last := "Jones"
return concat($first, " ", $last )
Cet XQuery renvoie Peter Jones si la valeur de la variable externe (saisie dans le dialogue Paramètres d’entrée XSLT / Variables externes XQuery) est Peter. Veuillez noter les points suivants :
•Le mot-clé externe dans la déclaration de variable dans le document XQuery indique que cette variable est une variable externe.
•Définir le type statique de la variable est optionnel. Si le type de données pour la variable n’est pas spécifiée dans la déclaration de variable, alors la valeur de variable obtient le type xs:untypedAtomic.
•Si une variable externe est déclarée dans le document XQuery, mais qu’aucune variable de ce nom n’est passée au document XQuery, alors une erreur est rapportée.
•Si une variable externe est déclarée et est saisie dans le dialogue Paramètres d’entrée XSLT / Variables externes XQuery, alors elle est considérée avoir l’étendue pour que le document XQuery soit exécuté. Si une nouvelle variable avec le nom est déclarée à l’intérieur du document XQuery, la nouvelle variable écrase temporairement la variable externe in-scope. Par exemple, le document XQuery ci-dessous renvoie Paul Jones même si la variable externe in-scope $first a une valeur Peter.
xquery version "1.0";
déclarer variable $first comme xs:string externe ;
let $first := "Paul"
let $last := "Jones"
return concat($first, " ", $last )