Latest web development tutorials

Fonctions XQuery

XQuery 1.0, XPath 2.0 et XSLT 2.0 partagent la même bibliothèque.


Fonctions XQuery

XQuery contient plus de 100 fonctions intégrées. Ces fonctions peuvent être utilisées pour les valeurs de chaîne, numérique, date et comparaison du temps, le noeud et la manipulation QName, la manipulation de la séquence, les valeurs booléennes, et ainsi de suite. Vous pouvez également définir vos propres fonctions XQuery.


XQuery fonctions intégrées

XQuery fonction URI:

http://www.w3.org/2005/02/xpath-functions

L'espace de noms préfixe de fonction par défaut est fn:.

Astuce: appeler préfixe, tel que fn :: fonction souvent par chaîne de fn (). Cependant, depuis fn: est le préfixe par défaut de l'espace de noms, les noms de fonctions ne doivent pas utiliser le préfixe lorsqu'il est appelé.

Vous pouvez trouver le complet "dans notre tutoriel XPath intégré Fonctions XQuery Manuel de référence ."


Exemples d'appels de fonction

Les appels de fonction peuvent être utilisés avec une expression. Prenons l'exemple suivant:

Exemple 1: L'élément

<name>{upper-case($booktitle)}</name>

Exemple 2: Dans l'expression de chemin dans le prédicat

doc("books.xml")/bookstore/book[substring(title,1,5)='Harry']

Exemple 3: déclaration laisse

let $name := (substring($booktitle,1,4))


fonctions définies par l'utilisateur XQuery

Si vous ne trouvez pas la fonction XQuery requise, vous pouvez écrire vos propres fonctions.

Ou les utilisateurs peuvent définir la fonction personnalisée de requête de base de données distincte.

grammaire

declare function前缀:函数名($参数 AS 数据类型)
AS返回的数据类型
{
...函数代码...
}

A propos définis par l'utilisateur Fonctions Notes:

  • S'il vous plaît utiliser la fonction de déclarer mot-clé
  • Les noms de fonctions doivent utiliser le préfixe
  • Type de données paramètre est généralement compatible avec les données définies dans le type de schéma XML
  • Corps de fonction doit être entouré par des accolades

Dans une déclaration de requête exemples de fonctions définies par l'utilisateur:

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>