Поделиться через


Синтаксис веб-каналов данных XML

Одним из подходов к перемещению XML-данных в книги PowerPivot является построение службы данных или веб-приложения, которое выводит XML-данные в формате и структуре, понятных PowerPivot для Excel. PowerPivot для Excel содержит встроенный модуль чтения веб-канала данных, который может выполнять синтаксический анализ XML-структур, соответствующих формату синдикации Atom 1.0, описанному в RFC4287. 

Хотя для создания веб-канала данных можно использовать разнообразные средства и приложения, программисты, создающие службу данных, основанную на формате Atom служб ADO.NET Data Services 3.5.1, могут создавать каналы, которые полностью поддерживаются в PowerPivot для Excel. Следующие продукты и технологии поддерживают создание веб-каналов данных, основанных на формате ADO.NET Atom:

  • Службы ADO.NET Data Services

  • Технология Windows Communications Foundation (WCF)

  • Веб-каналы данных SharePoint 2010

  • Веб-каналы данных служб SQL Server 2008 R2 Reporting Services

Программистам, которые используют другие средства или подходы, нужно знать, как следует структурировать допустимый XML-ответ, который может быть обработан модулем чтения веб-канала данных PowerPivot для Excel. В этом разделе описывается синтаксис Atom 1.0, поддерживаемый для книг PowerPivot.

Дополнительные сведения о способе использования служб данных ADO.NET для создания веб-каналов данных из других источников данных см. в разделе Использование служб данных ADO.NET и Формат Atom на веб-сайте Microsoft.

Сведения о полезных данных

Перед углублением в подробности синтаксиса XML полезно представить, как данные представляются в рабочей области PowerPivot после операции импорта. Источник данных PowerPivot состоит из табличных данных, упорядоченных в строки и столбцы в известном макете сетки. При импорте структурированных данных Atom 1.0 результирующий набор включает встроенные элементы данных, присутствующие в любом веб-канале данных, и пользовательские данные, содержащие производственные или бизнес-данные, необходимые аналитикам. Рассмотрим следующий пример, в котором показаны встроенные элементы данных 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 и являются обязательной частью канала. Однако с помощью параметра соединения с веб-каналом данных с именем "Включать элементы Atom" можно включать или не включать эти поля. В зависимости от значения этого параметра пользователи могут ожидать, что эти поля станут отображаться в рабочем пространстве 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

Данные или веб-служба должны возвращать XML-документ правильного формата, содержащий структуры данных <feed>, <entry> и <content>. Эти элементы сопоставлены со структурой таблицы, структурой строки и значениям данных, отображаемыми в таблице рабочего пространства PowerPivot после импорта веб-канала данных.

Стандарты Atom не включают средств для передачи данных схемы клиенту, использующему полезные XML-данные. Однако практическим подходом для обеспечения предоставления определений данных в клиентское приложение является задание атрибутов данных как XML-атрибутов. Данные схемы, касающиеся типа данных, формата и других атрибутов столбцов, создаются на основе описаний, встроенных в элементы XML-данных. Атрибуты для каждого элемента определяют, содержит столбец числовые или текстовые данные.

Элемент Feed

Элемент Feed является контейнером для метаданных и данных. Он описывает таблицу, которая будет создана в книге PowerPivot. В следующем примере иллюстрируется синтаксис элемента Feed, используемый в PowerPivot для 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> ссылается на идентификатор в наборе данных Adventure Works.

Если нужно разрешить неоднозначность при обращении ко встроенным полям Atom из других полей с тем же именем, можно добавить пространство имен Atom элементу канала (xmlns="http://www.w3.org/2005/Atom"), а затем использовать префикс atom для идентификации элемента (например, atom:id, atom:title, atom:updated).

<title>

Да

Элемент title содержит текстовую строку. При использовании в веб-канале данных PowerPivot она указывает имя таблицы, создаваемой в пространстве имен PowerPivot при импорте веб-канала данных в PowerPivot для Excel.

Во время выполнения значение элемента <title> считывается из сервисного документа данных на сайте SharePoint.

<id>

Да

Элемент id однозначно и постоянно идентифицирует экземпляр канала. Это значение является метаданными, предназначенными только для внутреннего использования. Оно не отображается в таблице в рабочем пространстве PowerPivot или на страницах приложения на сайте SharePoint.

В веб-канале данных PowerPivot это значение используется при сравнении следующего и предыдущего экземпляров одного поля в целях обновления данных.

Это значение должно представлять URI или IRI. Оно учитывает регистр.

<updated>

Да

Элемент updated указывает дату или время изменения веб-канала данных. Это значение является метаданными, предназначенными только для внутреннего использования. Оно не отображается в таблице в рабочем пространстве PowerPivot или на страницах приложения на сайте SharePoint.

В веб-канале данных PowerPivot это значение используется при сравнении следующего и предыдущего экземпляров одного поля в целях обновления данных.

Это значение должно быть допустимой отметкой времени.

Неучитываемые дочерние элементы канала

Остальные элементы, определяемые для элемента <entry> в формате синдикации Atom 1.0, в PowerPivot для Excel не учитываются. Это следующие элементы.

<Category>

<Contributor>

<Generator>

<Icon>

<Link>

<Logo>

<Rights>

<Subtitle>

<extensionElement>

Элемент Entry

Элемент <entry> содержит строку данных. Следующий пример иллюстрирует синтаксис элемента <entry>, используемый в PowerPivot для 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>

Синтаксис

Элемент или атрибут

Обязательный

Описание

<id>

Да

Элемент id однозначно и постоянно идентифицирует экземпляр строки. Это значение используется при сравнении разных экземпляров одной строки, обычно при обновлении данных. Это значение отображается в строке таблицы PowerPivot.

Это значение должно представлять URI или IRI. Оно учитывает регистр.

<title>

Да

Элемент title указывает имя строки, создаваемой в таблице PowerPivot при импорте веб-канала данных в PowerPivot для Excel.

Этот элемент должен быть указан, но для него не требуется значение. Например, следующий элемент представляет допустимый синтаксис 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> в формате синдикации Atom 1.0, в PowerPivot для Excel не учитываются. Это следующие элементы.

<Category>

<Contributor>

<Link>

<Published>

<Rights>

<Source>

<Summary>

<extensionElement>