XQuery 1.0, XPath 2.0, et part XSLT 2.0 de la même bibliothèque de fonctions.
Fonctions XQuery
XQuery est construit sur les expressions XPath. XQuery 1.0 et XPath 2.0 partagent le même modèle de données et prennent en charge les mêmes fonctions et les opérateurs.
Les opérateurs XPath
Vous pouvez également définir vos propres fonctions XQuery.
XQuery Types de données
XQuery partage les mêmes types de données XML Schema 1.0 (XSD) .
Exemples d'appels de fonction
Un appel à une fonction peut apparaître où une expression peut apparaître. Regardez les exemples ci-dessous:
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 clause let
let $name := (substring($booktitle,1,4))
XQuery Fonctions utilisateur
Si vous ne trouvez pas la fonction XQuery vous avez besoin, vous pouvez écrire votre propre.
Les fonctions définies par l'utilisateur peuvent être définis dans la requête ou dans une bibliothèque séparée.
Syntaxe
declare function Notes sur les fonctions définies par l'utilisateur: - Utilisez le mot-clé de fonction annoncez
- Le nom de la fonction doit être préfixé
- Le type de données des paramètres sont essentiellement les mêmes que les types de données définis dans le schéma XML
- Le corps de la fonction doit être encadrée par des accolades bouclés
Exemple d'une fonction définie par l'utilisateur Déclaré dans la requête
declare function local:minPrice($p as xs:decimal?,$d as xs:decimal?)
as xs:decimal?
{
let $disc := ($p * $d) div 100
return ($p - $disc)
};
Below is an example of how to call the function above:
<minPrice>{local:minPrice($book/price,$book/discount)}</minPrice>