Syntaxe du chemin d'accès à l'élément pour la spécification de données de rapport XML

Mis à jour : 17 juillet 2006

Dans le Concepteur de rapports, vous spécifiez les données à utiliser pour un rapport à partir d'une source de données XML en définissant un chemin d'accès à l'élément qui respecte la casse. Le chemin d'accès à l'élément indique comment parcourir les nœuds hiérarchiques XML et leurs attributs dans la source de données XML. Pour utiliser le chemin d'accès à l'élément par défaut, laissez la requête du dataset ou ElementPath XML dans Query XML vide. Lorsque les données sont extraites de la source de données XML, les nœuds d'élément possédant des valeurs de texte et des attributs de nœud d'élément deviennent des colonnes dans le jeu de résultats. Les valeurs des nœuds et les attributs deviennent les données de ligne lorsque vous exécutez la requête. Les colonnes sont mappées à des champs du dataset, et apparaissent dans la fenêtre Datasets lorsque vous cliquez sur le bouton Actualiser les champs de la barre d'outils. Cette rubrique décrit la syntaxe du chemin d'accès à l'élément.

ms365158.note(fr-fr,SQL.90).gifRemarque :
La syntaxe du chemin d'accès à l'élément est indépendante de l'espace de noms. Pour utiliser des espaces de noms dans un chemin d'accès à l'élément, utilisez la syntaxe de requête XML qui inclut un ElementPath XML décrit dans Syntaxe de requête XML employée pour la spécification des données de rapport XML.

Le tableau suivant décrit les conventions utilisées pour définir un chemin d'accès à l'élément.

Convention Utilisation

gras

Texte devant être tapé exactement comme indiqué.

| (barre verticale)

Sépare les éléments de la syntaxe. Vous ne pouvez choisir qu'un seul de ces éléments.

[ ] (crochets)

Éléments de syntaxe facultatifs. Ne tapez pas les crochets.

{ } (accolades)

Délimitent les paramètres des éléments de syntaxe.

[,...n]

Indique que l'élément précédent peut se répéter n fois. Les occurrences sont séparées par des virgules.

Syntaxe

Element path ::=
    ElementNode[/Element path]
ElementNode ::=
    XMLName[(Encoding)][{[FieldList]}]
XMLName ::=
    [NamespacePrefix:]XMLLocalName
Encoding ::=
        HTMLEncoded | Base64Encoded
FieldList ::=
    Field[,FieldList]
Field ::=
    Attribute | Value | Element | ElementNode
Attribute ::=
        @XMLName[(Type)]
Value ::=
        @[(Type)]
Element ::=
    XMLName[(Type)]
Type ::=
        String | Integer | Boolean | Float | Decimal | Date | XML 
NamespacePrefix ::=
    Identifier that specifies the namespace.
XMLLocalName :: =
    Identifier in the XML tag. 

Notes

Le tableau suivant récapitule les termes du chemin d'accès à l'élément. Les exemples du tableau font référence au document XML d'exemple Customers.xml inclus dans la section Exemples de cette rubrique.

ms365158.note(fr-fr,SQL.90).gifRemarque :
Les balises XML respectent la casse. Lorsque vous spécifiez ElementNode dans le chemin d'accès à l'élément, vous devez utiliser exactement les mêmes balises XML que celles de la source de données.
Terme Définition

Chemin d'accès à l'élément

Définit la séquence de nœuds à parcourir dans le document XML afin de récupérer les données de champ d'un dataset avec une source de données XML.

ElementNode

Nœud XML dans le document XML. Les nœuds sont désignés par des balises et existent dans une relation hiérarchique avec d'autres nœuds. Par exemple, <Customers> est le nœud de l'élément racine. <Customer> est un sous-élément de >Customers<.

XMLName

Nom du nœud. Par exemple, le nom du nœud Customers est Customers. Un XMLName peut porter comme préfixe un identificateur d'espace de noms qui identifie de façon unique chaque nœud.

Encoding

Indique que Value pour cet élément est codé en XML et doit être décodé et inclus en tant que sous-élément de cet élément.

FieldList

Définit l'ensemble des éléments et des attributs à utiliser pour récupérer des données.

Si ce terme n'est pas spécifié, tous les attributs et les sous-éléments sont utilisés comme champs. Si la liste de champs vide est spécifiée ({}), aucun champ de ce nœud n'est utilisé.

FieldList ne peut pas contenir à la fois Value et Element ou ElementNode.

Field

Spécifie les données qui sont extraites en tant que champ de dataset.

Attribute

Paire nom-valeur dans ElementNode. Par exemple, dans le nœud d'élément <Customer ID="1">, ID est un attribut et @ID(Integer) retourne "1" comme type d'entier dans l'ID de champ de données correspondant.

Value

Valeur de l'élément. Value peut être utilisé uniquement sur le dernier ElementNode dans le chemin d'accès à l'élément. Par exemple, étant donné que <Return> est un nœud terminal, si vous l'incluez à la fin d'un chemin d'accès à l'élément, la valeur de Return {@} est Chair.

Element

Valeur du sous-élément nommé. Par exemple, Customers {}/Customer {}/LastName récupère des valeurs pour l'élément LastName uniquement.

Type

Type de données facultatif utilisé pour le champ créé à partir de cet élément.

NamespacePrefix

NamespacePrefix est défini dans l'élément de requête XML. S'il n'existe aucun élément de requête XML, les espaces de noms dans ElementPath XML sont ignorés. S'il existe un élément de requête XML, ElementPath XML possède un attribut IgnoreNamespaces facultatif. Si la valeur de IgnoreNamespaces est true, les espaces de noms dans ElementPath XML et le document XML sont ignorés. Pour plus d'informations, consultez Syntaxe de requête XML employée pour la spécification des données de rapport XML.

Exemples - Aucun espace de noms

Les exemples suivants utilisent le document XML Customers.xml. Ce tableau présente des exemples de syntaxe du chemin d'accès à l'élément et les résultats de l'utilisation du chemin d'accès à l'élément dans une requête qui définit un dataset, en fonction du document XML comme source de données.

ms365158.note(fr-fr,SQL.90).gifRemarque :
Lorsque le chemin d'accès à l'élément est vide, la requête utilise le chemin d'accès à l'élément par défaut : le premier chemin d'accès vers une collection de nœuds terminaux. Dans le premier exemple, laisser un chemin d'accès à l'élément vide équivaut à spécifier le chemin d'accès à l'élément /Customers/Customer/Orders/Order. L'ensemble des attributs et des valeurs de nœud, ainsi que le chemin d'accès, sont retournés dans le jeu de résultats, et les noms de nœuds et les noms d'attributs apparaissent en tant que champs du dataset.

Exemple

Champs du dataset

Vide

Order

Qty

ID

FirstName

LastName

Customer.ID

xmlns

Chair61BobbyMoore11https://www.adventure-works.com

Table12BobbyMoore11https://www.adventure-works.com

Sofa28CrystalHu20https://www.adventure-works.com

EndTables215WyattDiaz33https://www.adventure-works.com

Customers {}/Customer

FirstName

LastName

ID

BobbyMoore11

CrystalHu20

WyattDiaz33

Customers {}/Customer {}/LastName

LastName

Moore

Hu

Diaz

Customers {}/Customer {}/Orders/Order {@,@Qty}

Order

Qty

Chair6

Table1

Sofa2

EndTables2

Customers {}/Customer/Orders/Order{ @ID(Integer)}

Order.ID

FirstName

LastName

ID

1BobbyMoore11

2BobbyMoore11

8CrystalHu20

15WyattDiaz33

Document XML : Customers.xml

Pour vous entraîner avec les exemples de chemin d'accès à l'élément présentés dans la section précédente, vous pouvez copier ce code XML et l'enregistrer dans une URL à laquelle le Concepteur de rapports peut accéder, puis utiliser le document XML comme source de données XML : par exemple, https://localhost/Customers.xml. Vous pouvez utiliser une autre méthode qui consiste à créer une source de données XML ne possédant aucune chaîne de connexion, et à incorporer Customers.XML dans une balise <XmlData> dans l'élément de requête XML.

<?xml version="1.0"?>
<Customers xmlns="https://www.adventure-works.com">
   <Customer ID="11">
      <FirstName>Bobby</FirstName>
      <LastName>Moore</LastName>
      <Orders>
         <Order ID="1" Qty="6">Chair</Order>
         <Order ID="2" Qty="1">Table</Order>
      </Orders>
      <Returns>
         <Return ID="1" Qty="2">Chair</Return>
      </Returns>
   </Customer>
   <Customer ID="20">
      <FirstName>Crystal</FirstName>
      <LastName>Hu</LastName>
      <Orders>
         <Order ID="8" Qty="2">Sofa</Order>
      </Orders>
      <Returns/>
   </Customer>
   <Customer ID="33">
      <FirstName>Wyatt</FirstName>
      <LastName>Diaz</LastName>
      <Orders>
         <Order ID="15" Qty="2">EndTables</Order>
      </Orders>
      <Returns/>
   </Customer>
</Customers>

Voir aussi

Tâches

Procédure : actualiser des champs dans la fenêtre Datasets (Concepteur de rapports)

Autres ressources

Didacticiel : Utilisation de données XML dans un rapport

Aide et Informations

Assistance sur SQL Server 2005