Syntaxe de requête XML pour la spécification de données de rapport XML (Générateur de rapports version 2.0)

Le Générateur de rapports version 2.0 vous permet de créer des datasets pour des sources de données XML. Après avoir défini une source de données, vous devez créer une requête pour le dataset. Selon le type de données XML désigné par la source de données, vous pouvez créer la requête du dataset en incluant une Query XML ou un chemin d'accès à un élément. Une Query XML commence par une balise <Query> et intègre des espaces de noms et des éléments XML variant selon la source de données. Un chemin d'accès à un élément opère indépendamment des espaces de noms ; il précise les nœuds et les attributs de nœud à utiliser à partir des données XML sous-jacentes avec une syntaxe similaire à la syntaxe XPath. Pour plus d'informations sur le concept de chemin d'accès à l'élément, consultez Syntaxe du chemin d'accès à l'élément pour la spécification de données de rapport XML (Générateur de rapports version 2.0).

Vous pouvez créer une source de données XML pour les types de données XML suivants :

  • Documents XML désignés par une URL utilisant le protocole HTTP

  • Points de terminaison du service Web retournant des données XML

  • Données XML incorporées

La manière dont vous spécifiez une Query XML ou un chemin d'accès à un élément dépend du type de données XML.

Dans le cadre d'un document XML, la requête Query XML est facultative. Si elle est incluse, elle peut contenir un ElementPath XML facultatif. La valeur de l'élément ElementPath XML utilise la syntaxe du chemin d'accès à l'élément. Vous devez inclure les éléments Query et ElementPath XML pour traiter correctement les espaces de noms lorsque cela est requis par les données XML de la source de données.

Dans le cadre d'un point de terminaison de service Web désigné par l'URL d'une chaîne de connexion, Query XML définit soit la méthode du service Web, soit l'action SOAP, soit les deux. Le fournisseur de données XML crée une demande de service Web qui extrait les données XML à utiliser pour le rapport.

[!REMARQUE]

Lorsque l'espace de noms d'un service Web comporte une barre oblique (/), incluez à la fois la méthode du service Web et l'action SOAP de sorte que l'extension de traitement des données XML puisse correctement extraire l'espace de noms.

Dans le cadre d'un document XML incorporé, la Query XML définit les données XML incorporées à utiliser, inclut des espaces de noms facultatifs et contient un ElementPath XML facultatif.

Spécification de paramètres de la requête pour des données XML

Vous pouvez spécifier des paramètres de la requête pour les documents XML.

Exemple

Les exemples fournis dans le tableau ci-dessous illustrent la manière d'extraire des données du service Web Report Server, un document XML et des données XML incorporées.

Source de données XML

Exemple de requête

Données XML du service Web issues de la méthode ListChildren.

<Query>

<Method Name="ListChildren" Namespace="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices" />

</Query>

Données XML du service Web issues de SoapAction.

<Query xmlns=namespace>

<SoapAction>http://schemas/microsoft.com/sqlserver/2005/03/23/reporting/reportingservices/ListChildren</SoapAction>

</Query>

Document XML ou données XML incorporées qui utilisent des espaces de noms.

Élément de requête spécifiant des espaces de noms pour un chemin d'accès à un élément.

<Query xmlns:es="https://schemas.microsoft.com/StandardSchemas/ExtendedSales">

<ElementPath>/Customers/Customer/Orders/Order/es:LineItems/es:LineItem</ElementPath>

</Query>

Document XML incorporé.

<Query>

<XmlData>

<Customers>

<Customer ID="1">Bobby</Customer>

</Customers>

</XmlData>

<ElementPath>Customer {@}</ElementPath>

</Query>

Document XML qui utilise la valeur par défaut.

No query.

Le chemin d'accès à l'élément provient du document XML lui-même et est indépendant des espaces de noms.

[!REMARQUE]

Le premier exemple de service Web répertorie le contenu du serveur de rapports qui utilise la méthode ListChildren. Pour exécuter cette requête, vous devez créer une nouvelle source de données et définir la chaîne de connexion sur https://localhost/reportserver/reportservice2006.asmx. La méthode ListChildren prend deux paramètres : Item et Recursive. Définissez la valeur par défaut de Item sur / et celle de Recursive sur 1.

Définition d'espaces de noms

Utilisez l'élément Query XML pour spécifier les espaces de noms qui sont utilisés dans les données XML de la source de données. La requête XML suivante utilise l'espace de noms sales. Les nœuds ElementPath XML de sales:LineItems et sales:LineItem utilisent l'espace de noms sales.

<Query xmlns:sales=
"https://schemas.microsoft.com/StandardSchemas/ExtendedSales">
   <SoapAction>
      https://schemas.microsoft.com/SalesWebService/ListOrders 
   </SoapAction>
   <ElementPath>
      Customers/Customer/Orders/Order/sales:LineItems/sales:LineItem
   </ElementPath>
</Query>

Pour préciser l'espace de noms du fournisseur de données afin que l'espace de noms par défaut reste vide, utilisez xmldp. C'est ce qu'illustre l'exemple suivant.

Exemple

Les exemples suivants utilisent le document XML DPNamespace.xml fourni à titre d'illustration à la suite du tableau ci-après. Ce tableau présente deux exemples de syntaxe ElementPath XML incluant des préfixes d'espaces de noms.

Élément de requête XML

Champs obtenus dans le dataset

<Query/>

Nœudns
Valeur Ahttps://schemas.microsoft.com/...
Valeur Bhttps://schemas.microsoft.com/...
Valeur Chttps://schemas.microsoft.com/...

<xmldp:Query xmlns:xmldp="https://schemas.microsoft.com/sqlserver/2005/02/reporting/XmlDPQuery" xmlns:ns="https://schemas.microsoft.com/...">

<xmldp:ElementPath>Root {}/ns:Element2/Node</xmldp:ElementPath>

</xmldp:Query>

Nœud
Valeur D
Valeur E
Valeur F

Document XML : DPNamespace.xml

Vous pouvez utiliser cet exemple de code XML et l'enregistrer dans un document XML à utiliser comme source de données. Par exemple, pour spécifier ce document sur un serveur de rapports, spécifiez l'URL du document dans la chaîne de connexion, par exemple, https://localhost/DPNamespace.xml.

<Root xmlns:ns="https://schemas.microsoft.com/...">
   <ns:Element1>
      <Node>Value A</Node>
      <Node>Value B</Node>
      <Node>Value C</Node>
   </ns:Element1>
   <ns:Element2>
      <Node>Value D</Node>
      <Node>Value E</Node>
      <Node>Value F</Node>
   </ns:Element2>
</Root>

Pour obtenir des exemples de chaînes de connexion, consultez Exemples de connexions (Générateur de rapports version 2.0).