XQuery est un langage de requête informatique permettant non seulement d'extraire des informations d'un document XML, ou d'une collection de documents XML, mais également d'effectuer des calculs complexes à partir des informations extraites et de reconstruire de nouveaux documents ou fragments XML. XQuery est une spécification du W3C dont la version 1.0 finale date de , et dont l'élaboration a demandé près de huit années. XQuery a été développé conjointement avec XSLT 2, une révision majeure du langage de transformation XML XSLT, avec lequel il partage le sous-ensemble . XQuery joue par rapport aux données XML un rôle similaire à celui du langage SQL vis-à-vis des données relationnelles, et l'on peut trouver des analogies entre ces deux langages. Il existe deux syntaxes distinctes pour XQuery : la syntaxe "naturelle" non-XML dite aussi FLWOR (prononcer flower), dont le nom vient des cinq clauses principales qui la composent (for, let, where, order by et return) ; la syntaxe XQueryX (pour « XML Syntax for XQuery »), dans laquelle une requête est un document XML. De ce fait, elle est beaucoup plus verbeuse et moins lisible que la précédente et est destinée à des manipulations formelles par des programmes (éventuellement eux-mêmes écrits en XQuery). Soit le document XML suivant, situé à l'URL http://www.example.com/ et nommé exemple.xml :
Durant Albert 23/09/1958
Dupont Alphonse 23/12/1975
Dupont Isabelle 12/03/1967
La requête FLWOR suivante : for b/nom = "Dupont" return { b/date_naissance } va renvoyer le résultat suivant :
Alphonse 23/12/1975
Isabelle 12/03/1967
XQuery est un langage spécifié de façon modulaire : le cœur du langage peut être augmenté par des modules optionnels.
Anastasia Ailamaki, Viktor Sanca
Patrick Thiran, Gergely Odor, Victor Cyril L Lecomte