Fonctions XSLT

www.altova.com Agrandir/Réduire tout Imprimer cette rubrique Page précédente Un niveau supérieur Page suivante

Accueil >  Annexes > Fonctions XSLT et XPath/XQuery > Fonctions d'extension Altova >

Fonctions XSLT

Les fonctions d'extension XSLT peuvent être utilisées dans les expressions XPath dans un contexte XSLT. Elles ne fonctionneront pas dans un contexte non-XSLT (par exemple dans un contexte XQuery).

 

Note concernant le nommage de fonctions et de l'applicabilité de la langue

Les fonctions d'extension Altova peuvent être utilisées dans les expressions XPath/XQuery. Elles fournissent des fonctions supplémentaires aux fonctions d'ores et déjà disponibles dans la librairie standard des fonctions XPath, XQuery et XSLT. Les fonctions d'extension Altova se trouvent dans l'espace de nom des fonctions d'extension Altova, http://www.altova.com/xslt-extensions, et sont indiquées dans cette section par le préfixe altova:, qui est présupposé être lié à cet espace de nom. Veuillez noter que, en ce qui concerne les versions futures de votre produit, la prise en charge d'une fonction peut être interrompue et le comportement de certaines fonctions peut changer. Veuillez consulter la documentation lors des publications à venir pour plus d'informations concernant la prise en charge des fonctions d'extension Altova de cette version.

 

Fonctions XPath (utilisées dans les expressions XPath dans XSLT) :

XP1 XP2 XP3.1

Fonctions XSLT (utilisées dans les expressions XPath dans XSLT) :

Xslt1 XSLT2 XSLT3

Fonctions XQuery (utilisées dans les expressions XQuery dans XQuery) :

XQ1 XQ3.1

 

 

Fonctions standard

Click to expand/collapsedistinct-nodes [altova:]

altova:distinct-nodes(node()*) as node()* Xslt1 XSLT2 XSLT3

Prend un ensemble d'un ou de plusieurs nœuds en tant que son entrée et retourne le même ensemble moins les nœuds avec des valeurs dupliquées. La comparaison s'effectue en utilisant la fonction XPath/XQuery fn:deep-equal.

altova:distinct-nodes(country) retourne tous les nœuds country enfant moins ceux possédant des valeurs dupliquées.

 

 

Click to expand/collapseevaluate [altova:]

altova:evaluate(XPathExpression as xs:string[, ValueOf$p1, ... ValueOf$pN]) Xslt1 XSLT2 XSLT3

Prend une expression XPath, passée en tant que chaîne, en tant que son argument obligatoire. Elle retourne la sortie de l'expression évaluée. Par exemple : altova:evaluate('//Name[1]') retourne les contenues du premier élément Name dans le document. Veuillez noter que l'expression //Name[1] est passée en tant que chaîne en l'enfermant dans des guillemets simples.

 

La fonction altova:evaluate peut prendre des arguments supplémentaires en option. Ces arguments sont les valeurs des variables in-scope qui portent les noms p1, p2, p3... pN. Veuillez noter les points suivants concernant l'utilisation : (i) Les variables doivent être définies avec les noms de la formule pX, lorsque X est un entier ; (ii) les arguments de la fonction altova:evaluate (voir signature ci-dessus), à partir du deuxième argument, fournissent les valeurs de la variables, avec la séquence des arguments correspondant à la séquence des variables classées numériquement : p1 à pN: le deuxième argument sera la valeur de la variable p1, le troisième argument celui de la variable p2, etc. ; (iii) Les valeurs de variable doivent être de type item*.

 

<xsl:variable name="xpath" select="'$p3, $p2, $p1'" />

<xsl:value-of select="altova:evaluate($xpath, 10, 20, 'hi')" />

outputs "hi 20 10"

 

Dans les listes ci-dessus, veuillez noter les points suivants :

 

Le deuxième argument de l'expression altova:evaluate est la valeur attribuée à la variable $p1, le troisième argument est celui attribué à la variable $p2, etc.
Veuillez noter que le quatrième argument de la fonction est une valeur de chaîne, ce qui est indiqué par le fait qu'elle est contenue dans des guillemets.
L'attribut select de l'élément xs:variable fournit l'expression XPath. Puisque cette expression doit être de type xs:string, elle est contenue dans des guillemets simples.

 

 

<xsl:variable name="xpath" select="'$p1'" />
<xsl:value-of select="altova:evaluate($xpath, //Name[1])" />
Sort la valeur du premier élément Name.
 
<xsl:variable name="xpath" select="'$p1'" />
<xsl:value-of select="altova:evaluate($xpath, '//Name[1]')" />
Sort "//Name[1]"

 

La fonction d'extension altova:evaluate() est utile lorsqu'une expression XPath dans la feuille de style XSLT contient une ou plusieurs parties qui doivent être évaluées dynamiquement. Par exemple, prenez comme exemple une situation dans laquelle un utilisateur saisit sa requête pour le critère de tri et le critère est stocké dans l'attribut UserReq/@sortkey. Dans la feuille de style, vous pouvez ensuite avoir l'expression : <xsl:sort select="altova:evaluate(../UserReq/@sortkey)" order="ascending"/>. La fonction altova:evaluate() lit l'attribut sortkey de l'élément enfant UserReq du parent du nœud contextuel. Si, par exemple, la valeur de l'attribut sortkey est Price, alors Price est retourné par la fonction altova:evaluate() et devient la valeur de l'attribut select : <xsl:sort select="Price" order="ascending"/>. Si cette instruction sort apparaît dans le contexte d'un élément appelé Order, alors les éléments Order seront triés conformément aux valeurs de leurs enfants Price. En alternative, si la valeur de @sortkey était, par exemple, Date, alors les éléments Order seraient triés selon les valeurs de leurs enfants Date. Donc le critère de triage pour Order est choisi à partir de l'attribut sortkey lors de l'exécution. Cela n'aurait pas pu se réaliser avec une expression telle que  : <xsl:sort select="../UserReq/@sortkey" order="ascending"/>. Dans le cas montré ci-dessus, le critère de tri aurait été l'attribut sortkey lui-même, et non pas Price ou Date (ou tout autre contenu actuel de sortkey).

 

Note :Le contexte statique inclut des espaces de nom, des types et des fonctions, mais pas des variables, depuis l'environnement d'appel. L'URI de base et l'espace de nom par défaut sont hérités.

 

Variables statiques : <xsl:value-of select="$i3, $i2, $i1" />
Sort les valeurs des trois variables.
 
Expression XPath dynamique avec des variables dynamiques :
<xsl:variable name="xpath" select="'$p3, $p2, $p1'" />
<xsl:value-of select="altova:evaluate($xpath, 10, 20, 30)" />
Sortie "30 20 10"
 
Expression XPath dynamique sans variable dynamique :
<xsl:variable name="xpath" select="'$p3, $p2, $p1'" />
<xsl:value-of select="altova:evaluate($xpath)" />
Sortie erreur : Aucune variable définie pour $p3.

 

 

Click to expand/collapseencode-for-rtf [altova:]

altova:encode-for-rtf(input as xs:stringpreserveallwhitespace as xs:booleanpreservenewlines as xs:boolean) as xs:string     XSLT2 XSLT3

Convertit la chaîne d'entrée en tant que code pour RTF. Les espaces blancs et les nouvelles lignes seront préservés selon la valeur booléenne spécifiée pour leurs arguments respectifs.

 

 

 

[ Haut ]

 

 

Fonctions XBRL

Les fonctions XBRL Altova peuvent uniquement être utilisées avec des éditions des produits Altova qui présentent une prise en charge XBRL.

 

Click to expand/collapsexbrl-footnotes [altova:]

altova:xbrl-footnotes(node()) as node()*     XSLT2 XSLT3

Prend un nœud en tant que son argument d'entrée et retourne l'ensemble des nœuds de notes de pieds XBRL référencées par le nœud d'entrée.

 

 

Click to expand/collapsexbrl-labels [altova:]

altova:xbrl-labels(xs:QNamexs:string) as node()*     XSLT2 XSLT3

Prend deux arguments d'entrée : un nom de nœud et l'emplacement de fichier de taxonomie contenant le nœud. La fonction retourne les nœuds de libellés XBRL associés avec le nœud d'entrée.

 

 

 

[ Haut ]

 


© 2018 Altova GmbH