Fonctions XQuery
- Page précédente Sélections XQuery
- Page suivante Introduction à DTD
XQuery 1.0, XPath 2.0 et XSLT 2.0 partagent la même bibliothèque de fonctions.
Fonctions XQuery
XQuery contient plus de 100 fonctions intégrées. Ces fonctions peuvent être utilisées pour les valeurs de chaîne, les valeurs numériques, les comparaisons de dates et d'heures, les opérations sur les nœuds et QName, les opérations sur les séquences, les valeurs logiques, etc. Vous pouvez également définir vos propres fonctions en XQuery.
Fonctions intégrées XQuery
URI de l'espace de noms des fonctions XQuery :
http://www.w3.org/2005/02/xpath-functions
Le préfixe par défaut du namespace des fonctions est fn:.
Astuce :Les fonctions sont souvent appelées avec le préfixe fn: par exemple fn:string(). Cependant, étant donné que fn: est le préfixe par défaut du namespace, le préfixe n'est pas nécessaire lors de l'appel de la fonction.
Vous pouvez trouver la complete 'Référence du manuel des fonctions intégrées XQuery》。
Exemple d'appel de la fonction
L'appel de la fonction peut être utilisé avec des expressions. Voir les exemples suivants :
Exemple 1: Dans un élément
<name>{upper-case($booktitle)}</name>
Exemple 2: Dans le prédicat d'une expression de chemin
doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']
Exemple 3: Dans une instruction let
let $name := (substring($booktitle,1,4))
Fonctions utilisateur XQuery
Si vous ne trouvez pas la fonction XQuery nécessaire, vous pouvez écrire votre propre fonction.
Les fonctions utilisateur peuvent être définies dans une requête ou dans une bibliothèque indépendante.
Syntaxe
declare function préfixe:nomDeLaFonction($paramètre AS typeDeDonnées)
AS le type de données retourné
{}}
(: ...code de la fonction... :)
;
Remarques sur les fonctions utilisateur :
- Utilisez la clé mot-clé declare function
- Le nom de la fonction doit utiliser un préfixe
- Le type de données des paramètres correspond généralement au type de données défini dans XML Schema
- Le corps de la fonction doit être entouré de crochets
Un exemple de fonction utilisateur déclarée dans une requête :
declare function local:minPrice(
$price as xs:decimal?,
$discount as xs:decimal?)
AS xs:decimal?
{}}
let $disc := ($price * $discount) div 100
return ($price - $disc)
;
(Les exemples suivants montrent comment appeler la fonction ci-dessus :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>
- Page précédente Sélections XQuery
- Page suivante Introduction à DTD