Altova XMLSpy 2024 Enterprise Edition

Paramètres XSL / Variables XQuery

Accueil Préc Haut Suivant

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 XMLSpy:

 

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 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.

XSLParameters
Note :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 XMLSpy a été fermé.

 

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éelectionné 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.

 

Note :

 

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.

XQueryVariables
Note :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é une fois que l’application (XMLSpy) 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";

 declare variable $first comme xs:string external;

 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";

declare variable $first comme xs:string external;

let $first := "Paul"

let $last := "Jones"

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

 

© 2018-2024 Altova GmbH