Table des matières

XQuery: Foire aux Questions

Syntaxe

Commentaires

Distinct

Dans l'exemple suivant, $x est une chaine de caractères (concaténation du nom et du prénom d'un auteur), ce n'est pas un élément author.

for $x in distinct-values( document("bib.xml")//author ) 

Position

La fonction xpath position() donne le rang d'un élément (i.e., le n-ième fils).

Requêtes imbriquées

Il est possible d'imbriquer des expressions FLWOR dans la clause return d'une requête ou dans une clause let.

Tri

A ne pas confondre avec l'opérateur sort by (nom_element) servant à trier une collection. L'opérateur sort by est ajouté dans les clauses for ou let.

Comparaison de valeurs avec l'opérateur d'égalité: ''a eq b''

  1. si le type de a et b est simple (simpleType), alors a eq b est vrai ssi leur valeurs sont égales.
  2. si le type de a et b est complexe (complexType), alors a eq b est vrai ssi xs:string(a) eq xs:string(b)

Comparaison générale de deux ensembles : ''A = B''

Lorsque les opérandes A et B sont des ensembles. A = B est vrai ssi il existe au moins un elt a dans A et un elt b dans B tels que a eq b

Comparaison "en profondeur" de deux éléments:

utiliser la fonction deep-equal(a, b) au lieu de l'opérateur d'égalité =

Comparaison des identifiants de 2 éléments

a is b est vrai ssi a représente le même élément que b

Est-ce que Xquery a un prédicat exists comme en SQL?

Oui, la fonction s'écrit exists( expression )

Comment visualiser les données dans BaseX ?

Menu Visualization, cocher Folder. Possibilité de naviguer en zoomant. Cliquer sur le bouton “Home”(logo représentant une maison) pour revenir à la racine du document.

Message d'erreur rencontré: context item not defined

Retour vers TME XQuery : séance 1 (ancienne page) ou TME XQuery : Séance 2 (ancienne page)