Синтаксис запроса 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)
Обратная связь
https://aka.ms/ContentUserFeedback.
Ожидается в ближайшее время: в течение 2024 года мы постепенно откажемся от GitHub Issues как механизма обратной связи для контента и заменим его новой системой обратной связи. Дополнительные сведения см. в разделеОтправить и просмотреть отзыв по