Syntaxe du chemin d'accès à l'élément pour des données de rapport XML (SSRS)

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 apparaissent sous la forme de collection de champs de dataset dans le volet des données de rapport. Cette rubrique décrit la syntaxe du chemin d'accès à l'élément.

[!REMARQUE]

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 pour les données de rapport XML (SSRS).

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.

[!REMARQUE]

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 encodé 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 ne peut être utilisé que sur le dernier ElementNode dans le chemin de 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 pour les données de rapport XML (SSRS).

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.

[!REMARQUE]

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 à 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

Ordre

Qty

ID

FirstName

LastName

Customer.ID

xmlns

Chair

6

1

Bobby

Moore

11

https://www.adventure-works.com

Table

1

2

Bobby

Moore

11

https://www.adventure-works.com

Sofa

2

8

Crystal

Hu

20

https://www.adventure-works.com

EndTables

2

15

Wyatt

Diaz

33

https://www.adventure-works.com

Customers {}/Customer

FirstName

LastName

ID

Bobby

Moore

11

Crystal

Hu

20

Wyatt

Diaz

33

Customers {}/Customer {}/LastName

LastName

Moore

Hu

Diaz

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

Ordre

Qty

Chair

6

Table

1

Sofa

2

EndTables

2

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

Order.ID

FirstName

LastName

ID

1

Bobby

Moore

11

2

Bobby

Moore

11

8

Crystal

Hu

20

15

Wyatt

Diaz

33

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.

<?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>

Vous pouvez également créer une source de données XML ne possédant aucune chaîne de connexion et incorporer Customers.XML dans la requête à l'aide de la procédure suivante :

Pour incorporer Customers.XML dans une requête

  1. Créez une source de données XML avec une chaîne de connexion vide.

  2. Créez un dataset pour la source de données XML.

  3. Dans la boîte de dialogue Propriétés du dataset, cliquez sur Concepteur de requêtes. La boîte de dialogue du concepteur de requêtes textuelles s'ouvre.

  4. Dans le volet de requête, entrez les deux lignes suivantes :

    <Query>

    <XmlData>

  5. Copiez Customers.XML et collez le texte dans le volet de requête après <XmlData>.

  6. Dans le volet de requête, supprimez la première ligne que vous avez copiée à partir de Customers.XML : <?xml version="1.0"?>

  7. À la fin de la requête, ajoutez les deux lignes suivantes :

    <XmlData>

    <Query>

  8. Cliquez sur Exécuter la requête.

    Le jeu de résultats affiche 4 lignes de données avec les colonnes suivantes : xmlns, Customer.ID, FirstName, LastName, ID, Qty, Order.

  9. Cliquez sur OK.

Voir aussi

Tâches

ajouter, modifier ou actualiser des champs dans le volet des données de rapport (Générateur de rapports et SSRS)

Concepts

Type de connexion XML (SSRS)

Autres ressources

Didacticiels sur Reporting Services (SSRS)