Partager via


Références relatives au langage XQuery (moteur de base de données)

Transact-SQL prend en charge un sous-ensemble du langage XQuery utilisé pour interroger le type de données xml. Cette implémentation de XQuery est alignée sur la spécification préliminaire de XQuery de juillet 2004. Le langage est en cours de développement par le W3C (World Wide Web Consortium), avec la participation des principaux éditeurs de base de données ainsi que de Microsoft. Étant donné que les spécifications du W3C pourront faire l'objet de révisions avant de devenir une recommandation du W3C, cette implémentation peut être différente de la recommandation finale. Cette rubrique met en valeur la sémantique et la syntaxe du sous-ensemble de XQuery pris en charge dans SQL Server.

Pour plus d'informations, consultez W3C XQuery 1.0 Language Specification (en anglais).

XQuery est un langage qui permet d'interroger des données XML structurées ou semi-structurées. Grâce à la prise en charge du type de données xml dans le Moteur de base de données, les documents peuvent être stockés dans une base de données puis interrogés à l'aide de XQuery.

Basé sur le langage de requête XPath existant, XQuery se caractérise par une prise en charge améliorée de l'itération et du tri des résultats ainsi que par la possibilité de construire le document XML nécessaire. XQuery fonctionne sur le modèle de données XQuery. Il s'agit d'une abstraction de documents XML et des résultats XQuery pouvant être typés ou non typés. Les informations de type reposent sur les types fournis par le langage de schéma XML W3C. Si aucune information de type n'est disponible, XQuery gère les données comme étant non typées. Ce procédé est similaire à celui qu'utilise XPath version 1.0 pour gérer les données XML.

Pour interroger une instance XML stockée dans une variable ou colonne de type xml, vous utilisez les méthodes de type de données xml. Par exemple, vous pouvez déclarer une variable de type xml puis l'interroger à l'aide de la méthode query() du type de données xml.

DECLARE @x xml
SET @x = '<ROOT><a>111</a></ROOT>'
SELECT @x.query('/ROOT/a')

Dans l'exemple suivant, la requête est spécifiée par rapport à la colonne Instructions de type xml de la table ProductModel de la base de données AdventureWorks.

SELECT Instructions.query('declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions";         
    /AWMI:root/AWMI:Location[@LocationID=10]
') as Result 
FROM  Production.ProductModel
WHERE ProductModelID=7

La requête XQuery comprend la déclaration d'espace de noms, declare namespaceAWMI=..., et l'expression de requête, /AWMI:root/AWMI:Location[@LocationID=10].

La requête XQuery est spécifiée par rapport à la colonne Instructions de type xml. La méthode query() du type de données xml permet de spécifier la requête XQuery.

Le tableau suivant répertorie les rubriques connexes qui permettent d'assimiler l'implémentation de XQuery dans le Moteur de base de données.

Rubrique

Description

Implémentation de XML dans SQL Server

Explique la prise en charge du type de données xmldans le Moteur de base de données et les méthodes utilisables par rapport à ce type de données. Le type de données xml forme le modèle de données XQuery d'entrée sur lequel les expressions XQuery sont exécutées.

Gestion des collections de schémas XML sur le serveur

Explique comment les instances XML stockées dans une base de données peuvent être typées. Cela signifie que vous pouvez associer une collection de schémas XML à la colonne de type xml. Toutes les instances stockées dans la colonne sont validées et typées par rapport au schéma contenu dans la collection et fournissent les informations de type pour XQuery.

Représentation du type de données xml dans la base de données AdventureWorks2008R2

Décrit la colonne de type xml de la base de données AdventureWorks2008R2 et les instances stockées dans cette colonne. La plupart des exemples XQuery sont écrits par rapport à la base de données AdventureWorks2008R2 et aux colonnes de type xml qu'elle contient. La compréhension des instances XML peut faciliter l'assimilation des requêtes.

Notes

L'organisation de cette section est basée sur la spécification préliminaire de XQuery du W3C (World Wide Web Consortium). Certains des diagrammes fournis dans cette section proviennent de cette spécification. Cette section compare l'implémentation de Microsoft XQuery à la spécification du W3C, explique en quoi Microsoft XQuery diffère de cette spécification et indique les fonctionnalités W3C non prises en charge. La spécification W3C est disponible à l'adresse http://www.w3.org/TR/2004/WD-xquery-20040723.

Dans cette section

Rubrique

Description

Concepts de base de XQuery

Fournit une vue d'ensemble des concepts XQuery ainsi que de l'évaluation des expressions (contextes statique et dynamique), de l'atomisation, de la valeur booléenne effective, du système de type XQuery, de la correspondance des types de séquence et de la gestion des erreurs.

Expressions XQuery

Décrit les principales expressions XQuery, les expressions de chemin d'accès, les expressions de séquence, les expressions logiques et de comparaison arithmétiques, la construction XQuery, l'expression FLWOR, les expressions conditionnelles et quantifiées et les différentes expressions applicables aux types de séquence.

Modules et prologues (XQuery)

Décrit le prologue XQuery.

Fonctions XQuery impliquant le type de données xml

Décrit la liste des fonctions XQuery prises en charge.

Opérateurs XQuery sur le type de données xml

Décrit les opérateurs XQuery pris en charge.

Exemples supplémentaires de requêtes XQuery sur le type de données xml

Fournit des exemples XQuery supplémentaires.