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.

Notes

É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 de <nœud de l’é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 renvoie 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 absolu, /child::ProductDescription/child::Summary, contient deux étapes séparées par une barre oblique.

  • La première étape récupère les enfants de <nœud de l’é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 à son tour devient 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.

axe
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 et en ignorant d’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 de chemin relatif, child::root/child::Location[attribute::LocationID=10], contient 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, Spécification du 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 fonction id (XQuery).

Dans cette section

Définition d'une étape d'axe dans une 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 du 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 de la 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.