Sintaxe XML do Feed de Dados

Uma abordagem para transferir dados XML para pastas de trabalho PowerPivot é criar um serviço de dados ou aplicativo Web que transmita dados XML em um formato e em uma estrutura que sejam facilmente consumidos no PowerPivot para Excel. O PowerPivot para Excel contém um leitor de feeds de dados interno capaz de desmembrar estruturas XML compatíveis com o formato de agregação de dados Atom 1.0 descrito em RFC4287. 

Embora você possa usar várias ferramentas e vários aplicativos para gerar um feed de dados, os programadores que criam um serviço de dados baseado no formato Atom ADO.NET Data Services 3.5.1 criarão feeds completamente contemplados pelo PowerPivot para Excel. Os seguintes produtos e as seguintes tecnologias aceitam a geração de feeds do Atom com base no formato Atom ADO.NET:

  • ADO.NET Data Services

  • Windows Communication Foundation (WCF)

  • Feeds do Atom para o SharePoint 2010

  • Feeds do Atom para o SQL Server 2008 R2 Reporting Services

Os programadores que usam outras ferramentas ou abordagens precisarão saber estruturar uma resposta XML válida que possa ser processada pelo leitor de feeds de dados incorporado ao PowerPivot para Excel. Este tópico descreve as partes da sintaxe do Atom 1.0 reconhecida pelas pastas de trabalho PowerPivot.

Para obter mais informações sobre como usar o ADO.NET Data Services para gerar feeds de dados a partir de outras fontes de dados, consulte Utilizando ADO.NET Data Services e o Formato Atom no site da Microsoft.

Imagine a Carga Útil de Dados

Antes de mergulhar nos detalhes da sintaxe XML, é útil visualizar como os dados se apresentam no espaço de trabalho do PowerPivot depois de uma operação de importação. Uma fonte de dados PowerPivot consiste em dados em tabelas que são organizados em linhas e colunas em um layout de grade conhecido. Quando você importar dados estruturados do Atom 1.0, o conjunto de resultados incluirá elementos de dados internos que estão presentes em qualquer feed do Atom e dados personalizados que contenham dados de negócios ou de mercado que os analistas desejem usar. Considere o exemplo a seguir, que mostra elementos de dados internos do Atom em negrito e elementos de dados personalizados usados para apresentar dados de um banco de dados interno de recursos humanos em itálico:

id

título

atualizado

número de funcionários

Vagas abertas

Média de Anos no Depto.

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

Departamento de marketing

2008-04-18T18:16:30Z

15

2

1.5

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

Departamento de produção

2008-04-18T18:16:30Z

26

3

4

O exemplo acima pode ser usado para ilustrar os seguintes pontos essenciais:

  • Campos internos podem fazer parte do seu conjunto de resultados. Campos, como id, título e atualizado, são especificados na sintaxe do Atom 1.0 e são uma parte obrigatória do feed. Entretanto, você pode usar um parâmetro de conexão de feed de dados chamado "Incluir Elementos do Atom" para incluir ou excluir campos. Dependendo de como você configurar o parâmetro, os usuários poderão ver esses campos no espaço de trabalho do PowerPivot depois que o feed for importado. Depois de importar um feed, os usuários poderão excluir os campos do Atom se estes não forem significativos dentro do contexto da fonte de dados.

  • Podem ser usados campos de conteúdo personalizados para gerar qualquer dado que seja útil em uma pasta de trabalho PowerPivot. Na maior parte dos casos, a maioria dos dados na carga útil consiste em conteúdos personalizados.

Estrutura do XML da carga útil de exemplo

Um feed de dados do Atom 1.0 inclui dados tabulares de XML que contêm uma combinação de elementos internos e elementos de conteúdo personalizados. Os elementos internos fornecem metadados essenciais usados no processamento. Dados personalizados são os dados de negócios que você deseja disponibilizar no feed. Cada linha de um conjunto de dados tabular contém elementos internos e personalizados.

O exemplo a seguir ilustra um documento de dados simples do Atom 1.0 que gera as duas linhas de dados no exemplo anterior. Os elementos internos do Atom são indicados em negrito.

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

Referência do XML

Os dados ou o serviço Web devem gerar um documento XML bem formado que contenha <feed>, <entry>, e <content> estruturas de dados. Esses elementos são correlacionados com a estrutura da tabela, estrutura de linhas e valores de dados exibidos em uma tabela no espaço de trabalho do PowerPivot depois que um feed de dados for importado.

Os padrões do Atom não contêm previsões para transmitir informações de esquema a um cliente que consome a carga útil de XML. Porém, uma abordagem prática para assegurar que sejam fornecidas definições de dados a um aplicativo cliente é especificar atributos de dados como atributos XML. Informações de esquema sobre tipos de dados, formato e outros atributos de coluna são geradas com base em descrições que sejam inseridas aos elementos de dados XML. Os atributos de cada elemento determinam se uma coluna contém dados numéricos ou de texto.

Elemento de Feed

O elemento de Feed é um contêiner de metadados e dados. Ele descreve a tabela que será criada na pasta de trabalho PowerPivot. O exemplo a seguir ilustra a sintaxe do elemento de feed como é usado pelo PowerPivot para 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>

Sintaxe

Elemento ou atributo

Obrigatório

Descrição

<feed xmlns= >

Não

O atributo xmlns é usado para resolver conflitos de nomes de elementos. Por exemplo, se você tiver dois elementos <id>, poderá antepor um namespace que identifica cada um deles, onde <atom:id> faz referência à coluna interna e <adventureworks:id> faz referência a um identificador em um conjunto de dados da Adventure Works.

Se precisar eliminar a ambiguidade dos campos internos do Atom de outros campos que utilizam o mesmo nome, você poderá acrescentar o namespace do Atom ao elemento de feed (xmlns = "http://www.w3.org/2005/Atom") e, então, usar o prefixo do Atom para identificar o elemento (por exemplo, atom:id, atom:title, atom:updated).

<title>

Sim

O elemento title contém uma cadeia de caracteres de texto. Da forma usada em um feed de dados do PowerPivot, ele especifica o nome da tabela criada em um espaço de trabalho do PowerPivot quando o feed de dados for importado para o PowerPivot para Excel.

No tempo de execução, o valor do elemento <título> é lido do documento de serviço de dados no site do SharePoint.

<id>

Sim

O elemento id identifica de maneira exclusiva e permanente uma instância do feed. Esse valor é um metadado somente para uso interno. Ele não aparece em uma tabela no espaço de trabalho do PowerPivot nem em páginas de aplicativos em um site do SharePoint.

Em um feed de dados do PowerPivot, esse valor é usado na comparação de instâncias passadas e futuras do mesmo feed para fins de atualização de dados.

Esse valor deve ser um URI ou IRI. O valor diferencia maiúsculas de minúsculas.

<updated>

Sim

O elemento updated especifica uma data ou hora em que o feed de dados foi modificado. Esse valor é um metadado somente para uso interno. Ele não aparece em uma tabela no espaço de trabalho do PowerPivot nem em páginas de aplicativos em um site do SharePoint.

Em um feed de dados do PowerPivot, esse valor é usado na comparação de instâncias passadas e futuras do mesmo feed para fins de atualização de dados.

Esse valor deve ser um carimbo de data/hora válido.

Elementos filhos do feed ignorados

Todos os outros elementos definidos para o elemento <entry> no formato de agregação Atom 1.0 são ignorados pelo PowerPivot para Excel. Isso inclui o seguinte:

<Categoria>

<Contribuinte>

<Gerador>

<Ícone>

<Link>

<Logo>

<Direitos>

<Legenda>

<extensionElement>

Elemento entry

O elemento <entry> contém uma linha de dados. O exemplo a seguir ilustra a sintaxe do elemento <entry> da maneira como ele é usado pelo PowerPivot para 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>

Sintaxe

Elemento ou atributo

Obrigatório

Descrição

<id>

Sim

O elemento id identifica de maneira exclusiva e permanente uma instância da linha. Esse valor é usado para comparar outras instâncias da mesma linha, normalmente durante atualização de dados. Esse valor aparece em uma linha de uma tabela do PowerPivot.

Esse valor deve ser um URI ou IRI. O valor diferencia maiúsculas de minúsculas.

<title>

Sim

O elemento title especifica um nome da linha criada em uma tabela do PowerPivot quando o feed de dados for importado para o PowerPivot para Excel.

O elemento deve ser especificado, mas não exige um valor. Por exemplo, o elemento a seguir contém uma sintaxe válida do Atom 1.0:

<title type="text" />

<updated>

Sim

O elemento updated especifica uma data ou hora em que o feed de dados foi modificado. Esse valor aparece em uma tabela no espaço de trabalho do PowerPivot ou em páginas de aplicativos em um site do SharePoint.

<content>

Sim

Este elemento não é obrigatório na sintaxe do Atom 1.0, mas é obrigatório para transmitir dados a uma tabela no espaço de trabalho do PowerPivot. Ele contém os dados personalizados que você deseja usar.

Não há nenhum esquema que defina estruturas de dados. O esquema é gerado dinamicamente durante uma operação de importação, de acordo com atributos e elementos. Dentro de cada elemento <content> há informações que são usadas para gerar nomes de coluna e tipo de dados.

Esquema derivado para conteúdo personalizado

Feeds de dados contêm dados autônomos que são processados como um documento completo. Dessa forma, não há nenhuma pesquisa separada para esquemas. Em vez disso, você deve inserir definições de dados dentro das próprias estruturas XML.

Considere o seguinte fragmento XML do exemplo anterior. Observe que o tipo de dados é especificado como um atributo.

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

Elementos filhos ignorados de Entry

Todos os outros elementos definidos para o elemento <entry> no formato de agregação Atom 1.0 são ignorados pelo PowerPivot para Excel. Isso inclui o seguinte:

<Categoria>

<Contribuinte>

<Link>

<Publicado>

<Direitos>

<Origem>

<Resumo>

<extensionElement>