Fonctions en XQuery
- Page précédente Sélection XQuery
- Page suivante Résumé de XQuery
XQuery 1.0, XPath 2.0 et XSLT 2.0 partagent la même bibliothèque de fonctions.
Fonctions en 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 les 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 nom 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, comme fn: est le préfixe par défaut du namespace de nommage, le préfixe n'est pas nécessaire lors de l'appel de la fonction.
Vous pouvez trouver la totalité de la <Référence des fonctions intégrées XQuery}`.
Exemple d'appel de fonction
L'appel de fonction peut être utilisé avec des expressions. Voir l'exemple suivant :
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:nom_de_la_fonction($paramètre AS type_de_données)
AS type de données de retour
{
(: ...code de la fonction... :)
;
Remarques sur les fonctions utilisateur :
- Utilisez le mot-clé declare function
- Le nom de la fonction doit utiliser un préfixe
- Le type de données des paramètres est généralement conforme au type de données défini dans XML Schema
- Le corps de la fonction doit être entouré de crochets
Exemple d'une 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)
;
(Exemples d'appel de la fonction ci-dessus :)
<minPrice>{local:minPrice($book/price, $book/discount)}</minPrice>
- Page précédente Sélection XQuery
- Page suivante Résumé de XQuery