Синтаксис элемента XML Query для задания XML-данных отчета (службы SSRS)
В службах Службы Reporting Services можно создавать наборы данных для источников XML-данных. После определения источника данных можно создать запрос для получения набора данных. В зависимости от типа XML-данных, на которые указывает источник данных, этот запрос создается путем включения либо элемента XML Query, либо пути к элементу. Элемент XML Query начинается с тега <Query> и включает пространства имен и XML-элементы, зависящие от источника данных. Путь к элементу не зависит от пространства имен и указывает необходимые узлы и атрибуты узлов в базовых XML-данных при помощи XPath-подобного синтаксиса. Дополнительные сведения о путях к элементам см. в разделе Синтаксис пути к элементу для определения XML-данных отчета (службы SSRS).
Источник данных XML можно создать для следующих типов XML-данных:
XML-документы, на которые указывает URL-адрес по протоколу HTTP;
конечные точки веб-службы, возвращающей XML-данные;
встроенные XML-данные.
Способ указания элемента XML Query или пути к элементу зависит от типа XML-данных.
Для XML-документа элемент XML Query необязателен. Если он включен, то может содержать необязательный элемент XML ElementPath. В значении элемента XML ElementPath используется синтаксис пути к элементу. Элементы XML Query и XML ElementPath включаются, чтобы обеспечить правильную обработку пространства имен, если это нужно для XML-данных источника данных.
Для конечной точки веб-службы, на которую указывает URL-адрес строки соединения, элемент XML Query определяет метод веб-службы, действие SOAP или и то, и другое. Поставщик XML-данных создает запрос веб-службы, который получает XML-данные для отчета.
Примечание |
---|
Если пространство имен веб-службы содержит символ косой черты (/), включите как метод веб-службы, так и действие SOAP, чтобы модуль обработки XML-данных мог корректно определить пространство имен. |
Для встроенных XML-документов элемент XML Query определяет встроенные XML-данные, включает дополнительные пространства имен и содержит необязательный элемент XML ElementPath.
Указание параметров запроса XML-данных
Для XML-документов можно указать параметры запроса.
Параметры включаются в URL-адрес как стандартные URL-параметры.
В случае запросов к веб-службе параметры запросов передаются методу веб-службы. Для определения параметра запроса используется страница Параметры диалогового окна Свойства набора данных. Дополнительные сведения см. в разделе Диалоговое окно «Свойства набора данных» — «Параметры».
Пример
Примеры, представленные в следующей таблице, иллюстрируют получение данных от веб-службы сервера отчетов, из XML-документа, а также встроенных XML-данных.
Источник данных XML |
Пример запроса |
---|---|
XML-данные веб-службы при помощи метода ListChildren. |
<Query> <Method Name="ListChildren" Namespace="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices" /> </Query> |
XML-данные веб-службы при помощи действия SoapAction. |
<Query xmlns=namespace> <SoapAction>http://schemas/microsoft.com/sqlserver/2005/03/23/reporting/reportingservices/ListChildren</SoapAction> </Query> |
XML-документ или внедренные XML-данные, использующие пространства имен. Элемент запроса, задающий пространства имен для пути к элементу. |
<Query xmlns:es="https://schemas.microsoft.com/StandardSchemas/ExtendedSales"> <ElementPath>/Customers/Customer/Orders/Order/es:LineItems/es:LineItem</ElementPath> </Query> |
Встроенный XML-документ. |
<Query> <XmlData> <Customers> <Customer ID="1">Bobby</Customer> </Customers> </XmlData> <ElementPath>Customer {@}</ElementPath> </Query> |
XML-документ, использующий значения по умолчанию. |
No query. Путь к элементу определяется на основе самого XML-документа и не зависит от пространства имен. |
Примечание |
---|
Первый пример веб-службы перечисляет содержимое сервера отчетов, применяющего метод ListChildren. Для выполнения этого запроса необходимо создать новый источник данных и задать строку соединения: https://localhost/reportserver/reportservice2006.asmx. Метод ListChildren имеет два параметра: Item и Recursive. Для Item установите значение по умолчанию /, а для параметра Recursive — значение 1. |
Указание пространств имен
Для указания пространств имен, используемых XML-данными из источника данных, используется элемент XML Query. Следующий XML-запрос использует пространство имен sales. Узлы XML ElementPath для элементов sales:LineItems и sales:LineItem используют пространство имен sales.
<Query xmlns:sales=
"https://schemas.microsoft.com/StandardSchemas/ExtendedSales">
<SoapAction>
https://schemas.microsoft.com/SalesWebService/ListOrders
</SoapAction>
<ElementPath>
Customers/Customer/Orders/Order/sales:LineItems/sales:LineItem
</ElementPath>
</Query>
Чтобы указать пространство имен поставщика данных, оставив пространство имен по умолчанию пустым, используется xmldp. Это показано в следующем примере.
Пример
В следующих примерах используется XML-документ DPNamespace.xml, который для наглядности приводится после таблицы. В таблице представлены два примера синтаксиса пути XML ElementPath, включающие префиксы пространства имен.
Элемент XML Query |
Полученные в результате поля набора данных |
---|---|
<Query/> |
УзелПространство имен
Значение Ahttps://schemas.microsoft.com/...
Значение Bhttps://schemas.microsoft.com/...
Значение Chttps://schemas.microsoft.com/...
|
<xmldp:Query xmlns:xmldp="https://schemas.microsoft.com/sqlserver/2005/02/reporting/XmlDPQuery" xmlns:ns="https://schemas.microsoft.com/..."> <xmldp:ElementPath>Root {}/ns:Element2/Node</xmldp:ElementPath> </xmldp:Query> |
Узел
Значение D
Значение E
Значение F
|
XML-документ: DPNamespace.xml
Можно скопировать этот XML-документ и сохранить его по URL-адресу, который конструктор отчетов будет использовать в качестве источника XML-данных, например https://localhost/DPNamespace.xml.
<Root xmlns:ns="https://schemas.microsoft.com/...">
<ns:Element1>
<Node>Value A</Node>
<Node>Value B</Node>
<Node>Value C</Node>
</ns:Element1>
<ns:Element2>
<Node>Value D</Node>
<Node>Value E</Node>
<Node>Value F</Node>
</ns:Element2>
</Root>