En cours de spécification par le W3C, XML Query est un langage destiné à effectuer des requêtes et des traitements sur des documents ou données XML.
XML Query partage beaucoup de fonctionnalités avec son proche parent XSLT 2, notamment le sous-langage d'expressions XPath 2 et de nombreuses constructions similaires. Leur différence réside principalement dans la syntaxe et dans le mécanisme de templates qui est particulier à XSLT. Ils sont issus d'un effort de convergence entre des spécifications originaires de deux mondes initialement bien distincts: celui de XSLT et celui des bases de données XML.
Les deux langages sont du type fonctionnel, mais le style de programmation n'est pas le même: alors que XSLT est fortement déclaratif, basé sur des règles appelées templates, XML Query est plutôt impératif ou procédural, comme SQL ou les langages de programmation classiques. Par rapport à la génération précédente (XSLT 1), l'accent est mis, notamment dans XML Query, sur le typage statique et la prise en compte des XML Schémas.
XML Query a maintenant atteint une certaine maturité et pourrait devenir une Recommandation W3C définitive d'ici quelques mois.
Commencer sur la page d'accueil du W3C: http://www.w3.org/XML/Query.
Sur cette page vous trouverez en particulier une liste de pointeurs vers divers articles sur XML Query.
Il est aussi très utile d'examiner les usage scenarios for XQuery publiés par le W3C.