Синтаксис элемента 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>

См. также

Основные понятия

Другие ресурсы