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


Синтаксис запроса XML для 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>https://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/> Значение A: https://schemas.microsoft.com/...

Значение B: https://schemas.microsoft.com/...

Значение C: https://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>  

См. также

Тип соединения XML (службы SSRS)
Учебники по службам Reporting Services (SSRS)