Синтаксис веб-каналов данных 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>