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