Expressions de chemin d'accès (XQuery)
S'applique à : SQL Server
Les expressions de chemin d'accès recherchent des nœuds, tels que des nœuds d'élément, d'attribut et de texte, dans un document. Le résultat d'une expression de chemin d'accès suit toujours l'ordre des documents et la séquence du résultat est dépourvue de nœuds dupliqués. Lorsque vous spécifiez un chemin d'accès, vous pouvez utiliser une syntaxe non abrégée ou une syntaxe abrégée. Les informations suivantes portent sur la syntaxe non abrégée. La syntaxe abrégée est décrite plus loin dans cette rubrique.
Remarque
Étant donné que les exemples de requêtes de cette rubrique sont spécifiés par rapport aux colonnes de type xml , CatalogDescription et Instructions, dans la table ProductModel , vous devez vous familiariser avec le contenu et la structure des documents XML stockés dans ces colonnes.
Une expression de chemin d'accès peut être relative ou absolue. Les paragraphes suivants décrivent ces deux types d'expression :
Une expression de chemin d'accès relative est composée d'une étape, ou de plusieurs étapes séparées par une ou deux barres obliques (/ ou //). Par exemple,
child::Features
est une expression de chemin d'accès relative, oùChild
fait uniquement référence aux nœuds enfants du nœud de contexte. Il s'agit du nœud en cours de traitement. L’expression récupère les <enfants du nœud d’élément Features> du nœud de contexte.Une expression de chemin d'accès absolue commence par une ou deux barres obliques (/ ou //), suivies d'un chemin d'accès relatif facultatif. Par exemple, la barre oblique initiale de l'expression
/child::ProductDescription
indique qu'il s'agit d'une expression de chemin d'accès absolue. Étant donné qu’une barre oblique au début d’une expression retourne le nœud racine du document du nœud de contexte, l’expression retourne tous les <enfants du nœud d’élément ProductDescription> de la racine du document.Si un chemin d'accès absolu commence par une barre oblique unique, il peut être, ou ne pas être, suivi d'un chemin d'accès relatif. Si vous spécifiez une seule barre oblique, l'expression renvoie le nœud racine du nœud de contexte. Dans le cas d'un type de données XML, il s'agit de son nœud de document.
En règle générale, une expression de chemin d'accès est composée d'étapes. Par exemple, l’expression de chemin d’accès absolu contient /child::ProductDescription/child::Summary
deux étapes séparées par une barre oblique.
La première étape récupère les <enfants du nœud d’élément ProductDescription> de la racine du document.
La deuxième étape récupère les enfants du <nœud d’élément Summary> pour chaque nœud d’élément ProductDescription> récupéré<, qui devient à son tour le nœud de contexte.
Une étape dans une expression de chemin d'accès peut être une étape d'axe ou une étape générale.
Étape d'axe
Une étape d'axe dans une expression de chemin d'accès est composée des parties ci-après.
axis
Définit le sens du déplacement. Étape d'axe dans une expression de chemin d'accès qui commence au nœud de contexte et navigue jusqu'aux nœuds accessibles dans le sens spécifié par l'axe.
test de nœud
Spécifie les noms de nœud ou de type de nœud à sélectionner.
Zéro ou plusieurs prédicats facultatifs
Filtre les nœuds en sélectionnant certains d'entre eux et en rejetant les autres.
Les exemples suivants utilisent un axestep dans les expressions de chemin d’accès :
L'expression de chemin d'accès absolue
/child::ProductDescription
contient une seule étape. Elle spécifie un axe (child
) et un test de nœud (ProductDescription
).L'expression de chemin d'accès relative
child::ProductDescription/child::Features
contient deux étapes séparées par une barre oblique. Les deux étapes spécifient un axe enfant. ProductDescription et Features sont des tests de nœud.L’expression relative path, contient
child::root/child::Location[attribute::LocationID=10]
deux étapes séparées par une barre oblique. La première étape spécifie un axe (child
) et un test de nœud (root
). La seconde étape spécifie l'ensemble des trois composants d'une étape d'axe : un axe (enfant), un test de nœud (Location
) et un prédicat ([attribute::LocationID=10]
).
Pour plus d’informations sur les composants d’une étape d’axe, consultez Spécification de l’axe dans une étape d’expression de chemin d’accès, spécification d’un test de nœud dans une étape d’expression de chemin et spécification de prédicats dans une étape d’expression de chemin d’accès.
Étape générale
Une étape générale est simplement une expression dont la valeur doit correspondre à une séquence de nœuds.
Dans SQL Server, l'implémentation de XQuery prend en charge une étape générale en tant que première étape d'une expression de chemin d'accès. Les exemples ci-après illustrent l'utilisation d'étapes générales dans les expressions de chemin d'accès.
(/a, /b)/c
id(/a/b)
Pour plus d’informations sur la fonction ID, consultez la fonction ID (XQuery) .
Dans cette section
Spécification de l’axe dans une étape d’expression de chemin d’accès
Décrit l'utilisation de l'étape d'axe dans une expression de chemin d'accès.
Spécification d’un test de nœud dans une étape d’expression de chemin d’accès
Décrit l'utilisation de tests de nœud dans une expression de chemin d'accès.
Spécification de prédicats dans une étape d’expression de chemin d’accès
Décrit l'utilisation de prédicats dans une expression de chemin d'accès.
Utilisation d’une syntaxe abrégée dans une expression de chemin d’accès
Décrit l'utilisation de la syntaxe abrégée dans une expression de chemin d'accès.