Partager via


Spécification d’un chemin d’emplacement (SQLXML 4.0)

Les requêtes XPath sont spécifiées sous la forme d’une expression. Il existe différents types d’expressions. Un chemin d’accès d’emplacement est une expression qui sélectionne un ensemble de nœuds par rapport au nœud de contexte. Le résultat de l’évaluation d’un chemin d’accès d’emplacement est un jeu de nœuds.

Types de chemins d’accès d’emplacement

Un chemin d’accès d’emplacement peut prendre l’une des formes suivantes :

  • Chemin d’accès d’emplacement absolu

    Un chemin d’accès d’emplacement absolu commence au nœud racine du document. Il se compose d’une barre oblique (/) éventuellement suivie d’un chemin d’accès d’emplacement relatif. La barre oblique (/) sélectionne le nœud racine du document.

  • Chemin d’accès à l’emplacement relatif

    Un chemin d’accès d’emplacement relatif commence au nœud de contexte dans le document. Un chemin d’accès d’emplacement se compose d’une séquence d’une ou plusieurs étapes d’emplacement séparées par une barre oblique (/). Chaque étape sélectionne un ensemble de nœuds par rapport au nœud de contexte. La séquence initiale d’étapes sélectionne un ensemble de nœuds par rapport à un nœud de contexte. Chaque nœud de ce jeu est utilisé comme nœud de contexte pour l’étape suivante. Ensembles de nœuds identifiés par cette étape sont joints. Par exemple, child ::Order/child ::OrderDetail sélectionne les enfants de l’élément <OrderDetail> des enfants de <l’élément Order> du nœud de contexte.

    Remarque

    Dans l’implémentation SQLXML 4.0 de XPath, chaque requête XPath commence au contexte racine, même si le XPath n’est pas explicitement absolu. Par exemple, une requête XPath commençant par « Customer » est traitée comme « /Customer ». Dans la requête XPath Customer[Order], le client commence au contexte racine, mais order commence par le contexte client. Pour plus d’informations, consultez Présentation de l’utilisation de requêtes XPath (SQLXML 4.0).

Étapes d’emplacement

Un chemin d’accès d’emplacement (absolu ou relatif) se compose d’étapes d’emplacement qui contiennent trois parties :

  • de l’axe

    L’axe spécifie la relation d’arborescence entre les nœuds sélectionnés par l’étape d’emplacement et le nœud de contexte. Les parentaxes , et attributeself les childaxes sont pris en charge. Si un child axe est spécifié dans le chemin d’accès d’emplacement, tous les nœuds sélectionnés par la requête sont les enfants du nœud de contexte. Si un parent axe est spécifié, le nœud sélectionné est le nœud parent du nœud de contexte. Si un attribute axe est spécifié, les nœuds sélectionnés sont les attributs du nœud de contexte.

  • Test de nœud

    Un test de nœud spécifie le type de nœud sélectionné par l’étape d’emplacement. Chaque axe (child, , attributeparentet self) a un type de nœud principal. Pour l’axe attribute , le type de nœud principal est <attribut>. Pour les axes et les parentaxeschildself, le type de nœud principal est l’élément<>.

    Par exemple, si le chemin d’accès d’emplacement spécifie child ::Customer, les enfants de l’élément <Customer> du nœud de contexte sont sélectionnés. Étant donné que l’axe child a <un élément> comme type de nœud principal, le test de nœud, Customer, est TRUE si Customer est un nœud d’élément<>.

  • Prédicats de sélection (zéro ou plus)

    Un prédicat filtre un ensemble de nœuds par rapport à un axe. La spécification de prédicats de sélection dans une expression XPath est similaire à la spécification d’une clause WHERE dans une instruction SELECT. Le prédicat est spécifié entre crochets. L’application du test spécifié dans les prédicats de sélection filtre les nœuds retournés par le test de nœud. Pour chaque nœud du jeu de nœuds à filtrer, l’expression de prédicat est évaluée avec ce nœud comme nœud de contexte, avec le nombre de nœuds dans le jeu de nœuds comme taille de contexte. Si l’expression de prédicat prend la valeur TRUE pour ce nœud, le nœud est inclus dans le jeu de nœuds résultant.

    La syntaxe d’une étape d’emplacement est le nom de l’axe et le test de nœud séparés par deux points ( ::), suivis de zéro ou plusieurs expressions, chacune entre crochets. Par exemple, l’expression XPath (chemin d’accès d’emplacement) child ::Customer[@CustomerID='ALFKI'] sélectionne tous les enfants de l’élément <Customer> du nœud de contexte. Ensuite, le test dans le prédicat est appliqué au jeu de nœuds, qui retourne uniquement les nœuds d’élément Customer> avec la< valeur d’attribut « ALFKI » pour son attribut CustomerID.

Dans cette section

Spécification d’un axe (SQLXML 4.0)
Fournit des exemples de spécification d’un axe.

Spécification d’un test de nœud dans le chemin d’emplacement (SQLXML 4.0)
Fournit des exemples de spécification d’un test de nœud.

Spécification des prédicats de sélection dans le chemin d’emplacement (SQLXML 4.0)
Fournit des exemples de spécification de prédicats de sélection.