Datenfeed-XML-Syntax

Eine Möglichkeit für das Verschieben von XML-Daten in PowerPivot-Arbeitsmappen besteht darin, einen Datendienst oder eine Webanwendung zu erstellen, die XML-Daten in einem Format und einer Struktur streamt, die leicht vom PowerPivot für Excel genutzt werden kann. Der PowerPivot für Excel enthält einen integrierten Datenfeedleser, der XML-Strukturen analysieren kann, die dem in RFC4287 beschriebenen Atom 1.0 Data Syndication Format entsprechen. 

Sie können eine Vielzahl von Tools und Anwendungen einsetzen, um einen Datenfeed zu generieren. Programmierer, die einen Datendienst auf Grundlage des ADO.NET Data Services 3.5.1 Atom-Formats erstellen, erstellen dazu jedoch Feeds, die vom PowerPivot für Excel vollständig unterstützt werden. Die folgenden Produkte und die Technologien unterstützen die Generierung von Atom-Feed auf Grundlage des ADO.NET Atom-Formats:

  • ADO.NET Data Services

  • Windows Communications Foundation (WCF)

  • SharePoint 2010-Atom-Feeds

  • SQL Server 2008 R2 Reporting Services-Atom-Feeds

Programmierer, die andere Tools oder Methoden verwenden, müssen eine gültige XML-Antwort, die vom Datenfeedleser im PowerPivot für Excel verarbeitet werden kann, strukturiert wird. In diesem Thema werden die Teile der Atom 1.0-Syntax erläutert, die für PowerPivot-Arbeitsmappen unterstützt werden.

Weitere Informationen zum Verwenden von ADO.NET Data Services für das Generieren von Datenfeeds von anderen Datenquellen finden Sie unter Verwenden von ADO.NET Data Services und dem Atom-Format auf der Microsoft-Website.

Visualisieren der Datennutzlast

Bevor näher auf die Details der XML-Syntax eingegangen wird, kann es hilfreich sein, sich visuell vorzustellen, wie die Daten nach einem Importvorgang im PowerPivot-Arbeitsbereich dargestellt werden. Eine PowerPivot-Datenquelle besteht aus Tabellendaten, die im vertrauten Rasterlayout in Zeilen und Spalten angeordnet sind. Wenn strukturierte Atom 1.0-Daten importiert werden, enthält das Resultset integrierte Datenelemente, die in allen Atom-Feeds vorhanden sind, und benutzerdefinierte Daten, die Geschäfts- oder Branchendaten enthalten, die Analysten verwenden möchten. Beachten Sie das folgende Beispiel, in dem integrierte Atom-Datenelemente fettgedruckt dargestellt werden. Es gibt zusätzlich benutzerdefinierte Datenelemente, mit denen die Daten einer internen Personaldatenbank kursiv angezeigt werden:

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

Anhand des obenstehenden Beispiels können folgende Punkte demonstriert werden:

  • Möglicherweise sind integrierte Felder Teil des Resultsets. Felder wie id, title und updated werden in der Atom 1.0-Syntax angegeben und sind ein erforderlicher Teil des Feeds. Sie können jedoch mithilfe eines Verbindungsparameters für Datenfeeds namens "Include Atom Elements" diese Felder ein- oder ausschließen. Abhängig von der Konfiguration des Parameters können Benutzer diese Felder ggf. im PowerPivot-Arbeitsbereich anzeigen, nachdem der Feed importiert wurde. Nach dem Importieren können sie die Atom-Felder löschen, wenn sie innerhalb des Kontexts der Datenquelle nicht von Bedeutung sind.

  • Mit benutzerdefinierten Inhaltsfeldern können alle Daten zurückgegeben werden, die in einer PowerPivot-Arbeitsmappe von Bedeutung sind. Meist besteht der überwiegende Teil der Daten in der Nutzlast aus benutzerdefiniertem Inhalt.

XML-Struktur der Beispielnutzlast

Ein Atom 1.0-Datenfeed enthält XML-Tabellendaten, die eine Kombination von integrierten Elementen und benutzerdefinierten Inhaltselementen enthalten. Die integrierten Elemente stellen wichtige Metadaten bereit, mit denen die Verarbeitung erfolgt. Benutzerdefinierte Daten enthalten die Geschäftsdaten, die im Feed verfügbar gemacht werden sollen. Jede Zeile eines Tabellendatasets enthält integrierte und benutzerdefinierte Elemente.

Im folgenden Beispiel wird ein einfaches Atom 1.0-Datendokument dargestellt, das die zwei Datenzeilen des vorherigen Beispiels enthält. Integrierte Atom-Elemente werden fettgedruckt dargestellt.

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

XML-Referenz

Der Daten- oder Webdienst muss ein wohlgeformtes XML-Dokument zurückgeben, das die Datenstrukturen <feed>, <entry> und <content> enthält. Diese Elemente werden der Tabellenstruktur, der Zeilenstruktur und den Datenwerten zugeordnet, die in einer Tabelle im PowerPivot-Arbeitsbereich angezeigt werden, nachdem ein Datenfeed importiert wurde.

Atom-Standards enthalten keine Bereitstellungen für das Übergeben von Schemainformationen an einen Client, der die XML-Nutzlast nutzt. Sie können praktisch sicherstellen, dass Datendefinitionen für eine Clientanwendung bereitgestellt werden, indem Sie Datenattribute als XML-Attribute angeben. Schemainformationen zum Datentyp und -format und zu anderen Spaltenattributen werden auf Grundlage von Beschreibungen generiert, die in die XML-Datenelemente eingebettet sind. Die Attribute der einzelnen Elemente bestimmen, ob eine Spalte numerische Daten oder Textdaten enthält.

Feedelement

Das Feedelement ist ein Container für Metadaten und Daten. Es beschreibt die Tabelle, die in der PowerPivot-Arbeitsmappe erstellt wird. Im folgenden Beispiel wird die Syntax des Feedelements dargestellt, die vom PowerPivot für Excel verwendet wird.

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

Syntax

Element oder Attribut

Erforderlich

Beschreibung

<feed xmlns= >

Nein

Das xmlns-Attribut wird dazu verwendet, Konflikte mit Elementnamen aufzulösen. Wenn Sie z. B. über zwei <id>-Elemente verfügen, können Sie einen Namespace voranstellen, der diese beiden Elemente identifiziert, wobei <atom:id> auf die integrierte Spalte und <adventureworks:id> auf einen Bezeichner in einem Adventure Works-Dataset verweist.

Wenn Sie die integrierten Atom-Felder eindeutig von anderen Feldern mit demselben Namen abgrenzen müssen, können Sie dem Feedelement den Atom-Namespace hinzufügen (xmlns = "http://www.w3.org/2005/Atom") und dann mit dem Atom-Präfix das Element identifizieren (z. B. atom:id, atom:title, atom:updated).

<title>

Ja

Das title-Element enthält eine Textzeichenfolge. Bei der Verwendung in einem PowerPivot-Datenfeed gibt es den Namen der Tabelle an, die beim Importieren eines Datenfeeds in den PowerPivot für Excel in einer PowerPivot-Datenquelle erstellt wird.

Zur Laufzeit wird der Wert des <title>-Elements aus dem Dokument des Datendiensts auf der SharePoint-Website gelesen.

<id>

Ja

Das id-Element identifiziert eindeutig und dauerhaft eine Instanz des Feeds. Dieser Wert gehört zu den Metadaten, die nur der internen Verwendung dienen. Er wird nicht in einer Tabelle im PowerPivot-Arbeitsbereich oder auf den Anwendungsseiten auf einer SharePoint-Website angezeigt.

In einem PowerPivot-Datenfeed wird dieser Wert verwendet, wenn zukünftige und vergangene Instanzen desselben Feeds im Hinblick auf die Datenaktualisierung verglichen werden.

Dieser Wert muss ein URI oder IRI sein. Bei dem Wert wird die Groß-/Kleinschreibung beachtet.

<updated>

Ja

Das updated-Element gibt den Zeitpunkt (Datum oder Uhrzeit) an, zu dem der Datenfeed geändert wurde. Dieser Wert gehört zu den Metadaten, die nur der internen Verwendung dienen. Er wird nicht in einer Tabelle im PowerPivot-Arbeitsbereich oder auf den Anwendungsseiten auf einer SharePoint-Website angezeigt.

In einem PowerPivot-Datenfeed wird dieser Wert verwendet, wenn zukünftige und vergangene Instanzen desselben Feeds im Hinblick auf die Datenaktualisierung verglichen werden.

Dieser Wert muss ein gültiger Datumszeitstempel sein.

Ignorierte untergeordnete Elemente des Feeds

Alle anderen Elemente, die für das <entry>-Element im Atom 1.0 Syndication Format definiert werden, werden vom PowerPivot für Excel ignoriert. Dazu gehören folgende Elemente:

<Category>

<Contributor>

<Generator>

<Icon>

<Link>

<Logo>

<Rights>

<Subtitle>

<extensionElement>

Entry-Element

Das <entry>-Element enthält eine Datenzeile. Im folgenden Beispiel wird die Syntax des <entry>-Elements dargestellt, die vom PowerPivot für Excel verwendet wird.

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

Syntax

Element oder Attribut

Erforderlich

Beschreibung

<id>

Ja

Das id-Element identifiziert eindeutig und dauerhaft eine Instanz der Zeile. Dieser Wert wird verwendet, wenn andere Instanzen der gleichen Zeile verglichen werden, in der Regel während einer Datenaktualisierung. Der Wert wird in einer Zeile einer PowerPivot-Tabelle angezeigt.

Dieser Wert muss ein URI oder IRI sein. Bei dem Wert wird die Groß-/Kleinschreibung beachtet.

<title>

Ja

Das title-Element gibt einen Namen der Zeile an, die beim Importieren eines Datenfeeds in den PowerPivot für Excel in einer PowerPivot-Tabelle erstellt wird.

Das Element muss angegeben werden, es ist jedoch kein Wert erforderlich. Beispiel: Das folgende Element entspricht einer gültigen Atom 1.0-Syntax:

<title type="text" />

<updated>

Ja

Das updated-Element gibt den Zeitpunkt (Datum oder Uhrzeit) an, zu dem der Datenfeed geändert wurde. Dieser Wert wird in einer Tabelle im PowerPivot-Arbeitsbereich oder auf den Anwendungsseiten auf einer SharePoint-Website angezeigt.

<content>

Ja

Dieses Element ist in der Atom 1.0-Syntax nicht erforderlich. Es muss jedoch vorhanden sein, damit die Daten an eine Tabelle im PowerPivot-Arbeitsbereich übergeben werden können. Es enthält die benutzerdefinierten Daten, die verwendet werden sollen.

Es gibt kein Schema, mit dem Datenstrukturen definiert werden. Das Schema wird während eines Importvorgangs dynamisch auf Grundlage von Attributen und Elementen generiert. In jedem <content>-Element befinden sich Informationen, mit denen Spaltennamen und Datentyp abgeleitet werden.

Abgeleitetes Schema für benutzerdefinierten Inhalt

Datenfeeds enthalten autonome Daten, die als vollständiges Dokument verarbeitet werden. Deshalb gibt es keine separate Suche nach Schemas. Stattdessen müssen Sie Datendefinitionen in die XML-Struktur einbetten.

Betrachten Sie folgende XML-Fragmente aus dem vorherigen Beispiel. Beachten Sie, dass der Datentyp als Attribut angegeben wird.

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

Ignorierte untergeordnete Elemente von "Entry"

Alle anderen Elemente, die für das <entry>-Element im Atom 1.0 Syndication Format definiert werden, werden vom PowerPivot für Excel ignoriert. Dazu gehören folgende Elemente:

<Category>

<Contributor>

<Link>

<Published>

<Rights>

<Source>

<Summary>

<extensionElement>