Syntaxe XML du flux de données

Une des méthodes de déplacement des données XML vers des classeurs PowerPivot consiste à générer un service de données ou une application Web qui transmet en continu des données XML sous un format et une structure facilement utilisables dans PowerPivot pour Excel. PowerPivot pour Excel contient un lecteur de flux de données intégré capable d'analyser les structures XML qui se conforment au format de syndication des données Atom 1.0 décrit dans RFC4287. 

Bien que vous puissiez utiliser divers outils et applications pour générer un flux de données, les programmeurs qui développent des services de données au format Atom ADO.NET Data Services 3.5.1 créeront des flux pleinement pris en charge dans PowerPivot pour Excel. Les produits et les technologies suivants prennent en charge la génération de flux Atom selon le format Atom ADO.NET :

  • ADO.NET Data Services

  • Windows Communication Foundation (WCF)

  • Flux Atom SharePoint 2010

  • Flux Reporting Services Atom SQL Server 2008 R2

Les programmeurs qui utilisent d'autres outils ou approches devront savoir comment structurer une réponse XML valide pouvant être traitée par le lecteur de flux de données intégré dans PowerPivot pour Excel. Cette rubrique décrit les parties de la syntaxe Atom 1.0 prises en charge pour les classeurs PowerPivot.

Pour plus d'informations sur l'utilisation d'ADO.NET Data Services pour générer des flux de données à partir d'autres sources de données, consultez Utilisation d'ADO.NET Data Service et le Format Atom sur le site Web Microsoft.

Décrire la charge utile de données

Avant d'examiner en détail la syntaxe XML, il est utile de visualiser la façon dont les données se présentent dans l'espace de travail PowerPivot après une opération d'importation. Une source des données PowerPivot consiste en des données tabulaires réorganisées en lignes et en colonnes dans une mise en page familière, sous forme de grille. Lorsque vous importez des données Atom 1.0 structurées, le jeu de résultats inclut des éléments de données intégrés, présents dans tout flux Atom, et des données personnalisées qui contiennent des données sur l'entreprise ou le secteur d'activité et que les analystes souhaitent utiliser. Prenons l'exemple suivant, qui affiche des éléments de données Atom intégrés en gras, et des éléments de données personnalisés servant à présenter les données d'une base de données de ressources humaines interne en italique:

id

title

updated

headcount

Open positions

Avg. Years in Dept

http://AW:8080/AWDept/AWDataService.svc/Dept(1)

Marketing department

2008-04-18T18:16:30Z

15

2

1.5

http://AW:8080/AWDept/AWDataService.svc/Dept(2)

Production department

2008-04-18T18:16:30Z

26

3

4

L'exemple ci-dessus peut être utilisé pour illustrer les points clés suivants :

  • Les champs intégrés peuvent faire partie de votre jeu de résultats. Des champs tels que ID, title et updated sont spécifiés dans la syntaxe Atom 1.0 et font obligatoirement partie du flux. Vous pouvez cependant utiliser un paramètre de connexion du flux de données nommé « Inclure des éléments Atom » pour inclure ou exclure les champs. Selon la façon dont vous configurez le paramètre, les utilisateurs peuvent s'attendre à voir ces champs dans l'espace de travail PowerPivot une fois le flux importé. Après avoir importé un flux, les utilisateurs peuvent supprimer les champs Atom s'ils ne sont pas pertinents dans le contexte de la source de données.

  • Les champs de contenu personnalisés peuvent être utilisés pour retourner des données utiles dans un classeur PowerPivot. Dans la plupart des cas, la majorité des données de la charge utile sont du contenu personnalisé.

Structure XML de l'exemple de charge utile

Un flux de données Atom 1.0 comprend des données XML tabulaires qui inclut une combinaison d'éléments intégrés et d'éléments de contenu personnalisés. Les éléments intégrés fournissent des métadonnées essentielles utilisées pour le traitement. Les données personnalisées incluent les données métier que vous souhaitez rendre disponibles dans le flux. Chaque ligne d'un dataset tabulaire inclut des éléments intégrés et des éléments personnalisés.

L'exemple suivant illustre un document de données Atom 1.0 simple qui fournit les deux lignes de données de l'exemple précédent. Les éléments Atom intégrés sont indiqués en Gras.

<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title type="text">Departments</title>
  <id>http://Adventure-works:8080/AW/AWDataService.svc/Department</id>
  <updated>2008-04-18T18:16:30Z</updated>
  <entry>
     <id>http://AW:8080/AWDept/AWDataService.svc/Dept(1)</id>
     <title type="text">Marketing department</title>
     <updated>2008-04-18T18:16:30Z</updated>
     <content type="application/xml">
     <d:headcount type="int">15</d:headcount>
     <d:openpositions type="int">2</d:openpositions>
     <d:yrsinposition type="int">1.5</d:yrsinposition>
     </content>
  </entry>
  <entry>
     <id>http://AW:8080/AWDept/AWDataService.svc/Dept(2)</id>
     <title type="text">Production department</title>
     <updated>2008-04-18T18:16:30Z</updated>
     <content type="application/xml">
     <d:headcount type="int">26</d:headcount>
     <d:openpositions type="int">3</d:openpositions>
     <d:yrsinposition type="int">4</d:yrsinposition>
     </content>
  </entry>
</feed>

Référence XML

Les données ou le service Web doivent retourner un document au format XML correct contenant les structures de données <feed>, <entry>et <content>. Ces éléments sont mappés à la structure de la table, celle des lignes et aux valeurs de données qui s'affichent dans une table dans l'espace de travail PowerPivot après l'importation d'un flux de données.

Les normes Atom n'incluent pas de provisions pour le passage des informations de schéma à un client qui utilise la charge XML utile. Toutefois, il est possible de s'assurer que les définitions de données sont fournies à une application cliente en spécifiant les caractéristiques des données sous forme d'attributs XML. Les informations de schéma sur le type de données, le format et d'autres attributs de colonne sont générées d'après les descriptions incorporées dans les éléments de données XML. Les attributs de chaque élément déterminent si une colonne contient des données numériques ou textuelles.

Élément de flux

L'élément de flux est un conteneur pour les métadonnées et les données. Il décrit la table qui sera créée dans le classeur PowerPivot. L'exemple suivant illustre la syntaxe de l'élément de flux telle que l'utilise PowerPivot pour Excel.

<feed xmlns="http://www.w3.org/2005/Atom">
   <title type="text">My Table Name</title>
   <id>http://UniversalResourceIdentifier/identifiesthisfeed</id>
   <updated>2008-10-31:09:23:34:1832</updated>
   <entry />
</feed>

Syntaxe

Élément ou attribut

Obligatoire

Description

<feed xmlns= >

Non

L'attribut xmlns est utilisé pour résoudre des conflits de nom d'élément. Par exemple, si vous avez deux éléments <d'ID>, vous pouvez préfixer un espace de noms qui identifie chacun des deux, avec <atom:id> qui fait référence à la colonne intégrée et <adventureworks:id> qui fait référence à un identificateur dans un dataset Adventure Works.

Si vous devez lever l'ambiguïté entre les champs Atom intégrés et les autres champs qui partagent le même nom, vous pouvez ajouter l'espace de noms Atom à l'élément de flux (xmlns = « http://www.w3.org/2005/Atom »), puis utiliser le préfixe atom pour identifier l'élément (par exemple, atom:id, atom:title, atom:updated).

<title>

Oui

L'élément title contient une chaîne de texte. Comme dans un flux de données PowerPivot, il spécifie le nom de la table créée dans l'espace de travail PowerPivot lorsque le flux de données est importé dans PowerPivot pour Excel.

Au moment de l'exécution, la valeur de l'élément <title> est lue sur le document de service de données sur le site SharePoint.

<id>

Oui

L'élément id identifie de façon unique et permanente une instance du flux. Cette valeur représente des métadonnées à usage interne uniquement. Elle ne s'affiche pas dans une table de l'espace de travail PowerPivot ou dans les pages d'application d'un site SharePoint.

Dans un flux de données PowerPivot, cette valeur sert à comparer les instances passées et futures du même flux à des fins d'actualisation des données.

Cette valeur doit être un URI ou IRI. Elle respecte la casse.

<updated>

Oui

L'élément updated spécifie une date ou une heure à laquelle le flux de données a été modifié. Cette valeur représente des métadonnées à usage interne uniquement. Elle ne s'affiche pas dans une table de l'espace de travail PowerPivot ou dans les pages d'application d'un site SharePoint.

Dans un flux de données PowerPivot, cette valeur sert à comparer les instances passées et futures du même flux à des fins d'actualisation des données.

Il doit s'agir d'un horodateur valide.

Éléments enfants ignorés du flux

Tous les autres éléments définis pour l'élément <entry> au format de syndication Atom 1.0 sont ignorés par PowerPivot pour Excel. Notamment :

<Category>

<Contributor>

<Generator>

<Icon>

<Link>

<Logo>

<Rights>

<Subtitle>

<extensionElement>

Élément d'entrée

L'élément <entry> contient une ligne de données. L'exemple suivant illustre la syntaxe de l'élément <entry> telle que l'utilise PowerPivot pour Excel.

<entry>
   <id>http://AW:8080/AW/AWDataService.svc/Department(1)</id>
   <title type="text" />
   <updated>2008-04-18T18:16:30Z</updated>
   <content />   ;* contains data
</entry>

Syntaxe

Élément ou attribut

Obligatoire

Description

<id>

Oui

L'élément id identifie de façon unique et permanente une instance de la ligne. Cette valeur est utilisée pour comparer d'autres instances de la même ligne, en général pendant l'actualisation des données. Elle s'affiche dans une ligne d'une table PowerPivot.

Cette valeur doit être un URI ou IRI. Elle respecte la casse.

<title>

Oui

L'élément title spécifie le nom d'une ligne créée dans une table PowerPivot lorsque le flux de données est importé dans PowerPivot pour Excel.

L'élément doit être spécifié, mais ne requiert pas de valeur. Par exemple, l'élément suivant a une syntaxe Atom 1.0 valide :

<title type="text" />

<updated>

Oui

L'élément updated spécifie une date ou une heure à laquelle le flux de données a été modifié. Cette valeur s'affiche dans une table de l'espace de travail PowerPivot ou dans les pages d'application d'un site SharePoint.

<content>

Oui

Cet élément n'est pas obligatoire dans la syntaxe Atom 1.0 mais il l'est pour transférer des données vers une table de l'espace de travail PowerPivot. Il contient les données personnalisées que vous souhaitez utiliser.

Il n'existe aucun schéma qui définisse des structures de données. Le schéma est généré dynamiquement lors d'une opération d'importation d'après des attributs et des éléments. Dans chaque élément <content> se trouvent des informations utilisées pour dériver des noms de colonne et des types de données.

Schéma dérivé pour un contenu personnalisé

Les flux de données contiennent des données autonomes traitées comme un document complet. Il n'y a donc aucune recherche distincte de schémas. Vous devez plutôt incorporer les définitions de données dans les structures XML elles-mêmes.

Prenons le fragment XML suivant de l'exemple précédent. Remarquez que le type de données est spécifié en tant qu'attribut.

     <content type="application/xml">
     <d:headcount type="int">15</d:headcount>
     <d:openpositions type="int">2</d:openpositions>
     <d:yrsinposition type="int">1.5</d:yrsinposition>
     </content>

Éléments enfants ignorés d'entrées

Tous les autres éléments définis pour l'élément <entry> au format de syndication Atom 1.0 sont ignorés par PowerPivot pour Excel. Notamment :

<Catégorie>

<Contributor>

<Link>

<Published>

<Rights>

<Source>

<Summary>

<extensionElement>