Создание наборов данных отчета из XML-данных
Службы Reporting Services предоставляют модуль обработки данных, который поддерживает получение отчетом данных из источника XML-данных. Отчеты используют данные из XML-документов и веб-служб либо внедряют XML-данные в запрос. Встроенная поддержка для получения XML-документов из базы данных SQL Server отсутствует.
Соединение с источником XML-данных и получение данных
Чтобы получить XML-данные для отчета, создайте источник данных со строкой соединения, которая задает URL-адрес веб-службы или XML-документа. Можно также создать источник данных с пустой строкой соединения и внедрить XML-данные в запрос набора данных.
Каждый источник XML-данных должен иметь следующие характеристики.
Источником данных должен быть XML. Службы Reporting Services предоставляют модуль обработки XML-данных для получения и обработки данных в отчете.
Учетные данные должны быть настроены для использования встроенной безопасности Windows или отсутствовать.
Их сохранение и запрос их у пользователя не поддерживаются. Помните, что, если отключить встроенную безопасность Windows, получить данные будет невозможно. Если заданы хранимые учетные данные или их предлагается ввести, во время выполнения возникнет ошибка.
Если учетные данные не заданы, будет применяться анонимный доступ. Убедитесь, что для соединения сервера отчетов с внешним источником данных определена учетная запись автоматического выполнения. Модуль обработки XML-данных не передает учетные данные целевому URL-адресу или веб-службе. Если не определена учетная запись автоматического выполнения, соединение закончится ошибкой. Дополнительные сведения см. в разделе Настройка учетной записи автоматического выполнения.
Строка соединения должна представлять собой URL-адрес, указывающий на веб-службу, веб-приложение или XML-документ, доступный по протоколу HTTP. XML-документы должны иметь расширение XML. Для XML-данных, внедренных в запрос набора данных, можно также задать пустую строку соединения.
Запрос должен возвращать XML-данные. Для XML-документов можно определить путь к элементу с синтаксисом XML, подобным XQuery, как описано в разделе Синтаксис пути к элементу для определения XML-данных отчета. Для веб-службы можно задать элемент <Query>, указывающий вызываемый метод или действие SOAP. Можно оставить запрос пустым и использовать запрос по умолчанию, если источник XML-данных имеет иерархическую структуру, предоставляющую нужные для отчета данные. Значения и атрибуты узлов XML-элементов, полученные при выполнении запроса, привязываются к полям набора данных в отчете.
Для создания запроса используйте текстовый конструктор запросов. Запрос не анализируется для определения параметров, поэтому параметры следует создать при помощи страницы Параметр диалогового окна Свойства набора данных. Дополнительные сведения о синтаксисе запросов см. в разделе Синтаксис элемента XML Query для задания XML-данных отчета. Дополнительные сведения об обычном конструкторе запросов см. в разделе Средства проектирования запросов в службах Reporting Services.
Строки соединения для источников XML-данных
Следующие примеры иллюстрируют синтаксис строки соединения для веб-службы и XML-документа соответственно. Протокол file:// не поддерживается.
Типы XML-документов |
Пример строки соединения |
---|---|
Веб-служба |
http://adventure-works.com/results.aspx |
XML-документ |
https://localhost/XML/Customers.xml |
Внедренный XML-документ |
Не заполнено |
Дополнительные сведения об определении источника данных см. в разделе Как создать внедренный или общий источник данных.
Запросы для наборов данных с источниками XML-данных
Набор данных содержит запрос, который представляет собой текст команды, выполняющейся на источнике данных для получения конкретного результирующего набора. Результирующий набор сопоставлен с коллекцией полей в наборе данных. Можно также установить значения фильтров в наборе данных, чтобы ограничить результаты, возвращаемые из источника данных. Возможные значения запроса к источнику данных с типом XML представлены в следующей таблице.
Запрос набора данных |
Описание |
---|---|
Не заполнено |
Пустой запрос используется для создания результирующего набора по умолчанию. Запрос по умолчанию создается путем считывания источника данных и поиска в иерархии узлов XML первой коллекции конечных узлов. Результирующий набор включает все узлы с текстовыми значениями и все атрибуты узлов по этому пути. Столбцы в результирующем наборе сопоставлены с полями набора данных. |
Путь к элементу |
Задает последовательность узлов источника данных, используемых для получения XML-данных. |
Элемент XML Query |
Спецификация XML-запроса со следующими необязательными элементами.
Источник XML-данныхОбязательные XML-элементыНеобязательные XML-элементы
Для веб-службы <Method Namespace= «пространство имен» Name="MethodName" /> -- or -- <SoapAction> действие SOAP </SoapAction> <ElementPath> путь к элементу </ElementPath> <Method Namespace= «пространство имен» Name="MethodName" /> -- or -- <SoapAction> действие SOAP </SoapAction>
Для XML-документа <ElementPath> путь к элементу </ElementPath>
Для внедренного XML-документа <XmlData> внутренний XML </XmlData> <ElementPath> путь к элементу </ElementPath> -- or -- <ElementPath IgnoreNamespaces="true"> путь к элементу </ElementPath>
Можно указать пространства имен при помощи элемента XML Query или пропускать их при помощи атрибута IgnoreNamespaces в пути XML ElementPath. Дополнительные сведения об элементе XML Query см. в разделе Синтаксис элемента XML Query для задания XML-данных отчета. Дополнительные сведения о синтаксисе пути к элементу см. в разделе Синтаксис пути к элементу для определения XML-данных отчета. |
Требования для получения XML-данных веб-службы
Модуль обработки XML-данных не обнаруживает схему самостоятельно. Поэтому необходимо определить, какой метод SOAP будет получать нужные данные. Необходимо также представлять себе схему адресации или пространство имен, которые веб-служба использует для своих данных.
Требования для получения данных XML-документа
Используя протокол HTTP, сервер должен возвратить XML-данные либо XML-данные должны быть внедрены в элемент XML Query. При прямой ссылке на XML-документ по протоколу HTTP этот документ должен иметь расширение XML. Необходимо знать, как создавать XML-запрос, который будет получать нужные данные. Если путь к элементу не задан, по умолчанию при анализе XML-документа выбирается первый доступный путь к коллекции конечных узлов XML-документа. Если XML-документ включает дополнительные пути к другим коллекциям узлов одного уровня, эти узлы будут пропускаться, если в запросе не задан путь. Дополнительные сведения см. в разделе Синтаксис пути к элементу для определения XML-данных отчета.
См. также