数据馈送 XML 语法
一种将 XML 数据移入 PowerPivot 工作簿的方法是构建一个数据服务或 Web 应用程序,将 XML 数据流处理为在 PowerPivot for Excel 中容易使用的格式和结构。PowerPivot for Excel 包含一个内置的数据馈送读取器,用于分析符合在 RFC4287 中介绍的 Atom 1.0 数据联合格式的 XML 结构。
尽管您可以使用各种工具和应用程序来生成数据馈送,但构建基于 ADO.NET Data Services 3.5.1 Atom 格式的数据服务的编程人员将创建在 PowerPivot for Excel 中完全受支持的馈送。以下产品和技术支持基于 ADO.NET Atom 格式的 Atom 馈送生成:
ADO.NET Data Services
Windows Communication Foundation (WCF)
SharePoint 2010 Atom 馈送
SQL Server 2008 R2 Reporting Services Atom 馈送
使用其他工具或方法的编程人员需要了解如何设置可以由 PowerPivot for Excel 中内置的数据馈送读取器处理的有效 XML 响应的结构。 本主题介绍针对 PowerPivot 工作簿支持的 Atom 1.0 语法的各个部分。
有关如何使用 ADO.NET Data Services 从其他数据源生成数据馈送的详细信息,请参阅 Microsoft 网站上的 Using ADO.NET Data Services(使用 ADO.NET Data Services)和 Atom 格式。
描绘数据负载
在深入探讨 XML 语法的详细信息之前,直观地了解在执行导入操作之后数据如何在 PowerPivot 工作区中展示自己大有帮助。PowerPivot 数据源包含以熟悉的网格布局按行和列排列的表格数据。当您导入结构化的 Atom 1.0 数据时,结果集包含在任何 Atom 馈送中展示的内置数据元素,并且包括其中包含分析人员要使用的业务或工业数据的自定义数据。请看以下示例,该示例以粗体显示内置的 Atom 数据元素,而以斜体 显示用于展示内部人力资源数据库中数据的自定义数据元素。
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 |
上述示例可用于说明以下要点:
内置字段可能是结果集的一部分。诸如 id、title 和 updated 等字段以 Atom 1.0 语法指定,它们是馈送所需的部分。然而,您可以使用名为“Include Atom Elements”的数据库馈送连接参数来包括这些字段。根据您配置此参数的方式,用户可能希望在导入馈送后在 PowerPivot 工作区中查看这些字段。在导入馈送之后,如果 Atom 字段在数据源的上下文中没有意义,则用户可以删除它们。
自定义内容字段可用来返回在 PowerPivot 工作簿中有用的任何数据。在大多数情况下,负载中的大多数数据包含自定义内容。
示例负载的 XML 结构
Atom 1.0 数据馈送包含 XML 表格数据,其中包含内置元素和自定义内容元素的组合。内置元素提供用于进行处理的基本元数据。自定义数据包含您在馈送中可以使用的业务数据。表格数据集中的每一行都同时包括内置元素和自定义元素。
下面的示例演示了一个简单的 Atom 1.0 数据文档,其中提供了先前示例中的两行数据。内置 Atom 元素以粗体指示。
<?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 参考
数据和 Web 服务必须返回格式正确的 XML 文档,其中包含 <feed>、<entry> 和 <content> 数据结构。这些元素映射到表结构、行结构和数据值,在导入数据馈送之后,这些内容显示在 PowerPivot 工作区中的某个表中。
Atom 标准不包含用于将架构信息传递到使用 XML 负载的客户端的设置。然而,确保将数据定义提供给客户端应用程序的可行方法是将数据属性指定为 XML 属性。有关数据类型、格式和其他列属性的架构信息基于在 XML 数据元素中嵌入的说明而生成。每个元素的属性确定列是包含数值数据还是文本数据。
Feed 元素
Feed 元素是元数据和数据的容器。它描述将在 PowerPivot 工作簿中创建的表。下面的示例说明 PowerPivot for 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>
语法
元素或属性 |
必需 |
说明 |
---|---|---|
<feed xmlns= > |
否 |
xmlns 属性用于解决元素名称冲突。例如,如果您有两个 <id> 元素,则可以在前面附加一个标识每个元素的命名空间,其中,<atom:id> 指内置列,而 <adventureworks:id> 指 AdventureWorks 数据集中的一个标识符。 如果您需要明确区分内置 Atom 字段与共享相同名称的其他字段,则可以将 Atom 命名空间添加到馈送元素 (xmlns="http://www.w3.org/2005/Atom"),然后使用 atom 前缀来标识此元素(例如,atom:id、atom:title、atom:updated)。 |
<title> |
是 |
title 元素包含文本字符串。与用在 PowerPivot 数据馈送中一样,它指定在将数据馈送导入到 PowerPivot for Excel 时将在 PowerPivot 工作区中创建的表的名称。 在运行时,<title> 元素的值从 SharePoint 站点的数据服务文档中读取。 |
<id> |
是 |
id 元素唯一并永久地标识馈送的实例。该值是仅供内部使用的元数据。它不出现在 PowerPivot 工作区中的表中,也不出现在 SharePoint 站点的应用程序页面上。 在 PowerPivot 数据馈送中,当比较同一个馈送的将来和过去实例以进行数据刷新时,将使用此值。 此值必须是 URI 或 IRI。此值区分大小写。 |
<updated> |
是 |
updated 元素指定修改数据库馈送的日期或时间。该值是仅供内部使用的元数据。它不出现在 PowerPivot 工作区中的表中,也不出现在 SharePoint 站点的应用程序页面上。 在 PowerPivot 数据馈送中,当比较同一个馈送的将来和过去实例以进行数据刷新时,将使用此值。 此值必须是有效的日期时间戳。 |
馈送的已忽略子元素
PowerPivot for Excel 忽略为 <entry> 元素定义的 Atom 1.0 联合格式中的所有其他元素。其中包括:
<Category>
<Contributor>
<Generator>
<Icon>
<Link>
<Logo>
<Rights>
<Subtitle>
<extensionElement>
Entry 元素
<entry> 元素包含一行数据。下面的示例说明 PowerPivot for Excel 使用的 <entry> 元素的语法。
<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>
语法
元素或属性 |
必需 |
说明 |
---|---|---|
<id> |
是 |
id 元素唯一并永久地标识行的实例。当比较同一个行的其他实例(通常在数据刷新期间)时使用此值。该值出现在 PowerPivot 表的某行中。 此值必须是 URI 或 IRI。此值区分大小写。 |
<title> |
是 |
title 元素指定在将数据馈送导入到 PowerPivot for Excel 时在 PowerPivot 表中创建的行的名称。 必须指定此元素,但它不需要值。例如,下面的示例是有效的 Atom 1.0 语法: <title type="text" /> |
<updated> |
是 |
updated 元素指定修改数据库馈送的日期或时间。此值出现在 PowerPivot 工作区中的表中,或者出现在 SharePoint 站点的应用程序页面上。 |
<content> |
是 |
Atom 1.0 语法中不需要此元素,但要将数据传递到 PowerPivot 工作区的表中时需要此值。它包含您要使用的自定义数据。 没有用于定义数据结构的架构。此架构在导入操作期间基于属性和元素动态生成。在每个 <content> 元素内都是用于派生列名称和数据类型的信息。 |
用于自定义内容的派生架构
数据馈送包含作为完整文档处理的自主数据。这样,对于架构就没有单独的查找。而是必须在 XML 结构自身内部嵌入数据定义。
请看来自上述示例的以下 XML 片段。请注意,数据类型指定为属性。
<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 的已忽略子元素
PowerPivot for Excel 忽略为 <entry> 元素定义的 Atom 1.0 联合格式的所有其他元素。其中包括:
<Category>
<Contributor>
<Link>
<Published>
<Rights>
<Source>
<Summary>
<extensionElement>