Udostępnij za pośrednictwem


XML Query Syntax for Specifying XML Report Data

W Reporting Services, można utworzyć zestawów danych XML do źródła danych. Po zdefiniowaniu źródła danych należy utworzyć zapytanie, które będzie prowadziło do wygenerowania zestawu danych.W zależności od typu danych XML wskazywanej przez urządzenie źródłowe danych tworzenia kwerendy zestawu danych przy tym XML Query lub ścieżka element. XML Query rozpoczyna się od <Query> znaczniki i zawiera obszary nazw i elementy XML, które zmieniają się w zależności od urządzenie źródłowe danych. Ścieżka elementu jest niezależna od obszaru nazw. Za pomocą składni przypominającej format XPath określa, które węzły i atrybuty węzłów z bazowych danych XML mają być używane.Aby uzyskać więcej informacji na temat elementu ścieżki Zobacz Element Path Syntax for Specifying XML Report Data.

Źródła danych XML można tworzyć dla następujących typów danych XML:

  • Dokumenty XML, do których odwołuje się adres URL przy użyciu protokołu HTTP

  • Punkty końcowe usługi sieci Web zwracające dane XML

  • Osadzone dane XML

Jak określić XML Query lub ścieżka element zależy od typu danych XML.

Dla dokumentu XML, plik XML Query jest opcjonalne. Jeśli jest włączone, może zawierać opcjonalny XML ElementPath. Wartość kodu XML ElementPath używa składni ścieżka elementu. Dołącz plik XML Query a język XML ElementPath Aby poprawnie przetworzyć obszarów nazw, kiedy są potrzebne dane XML ze urządzenie źródłowe danych.

Dla punktu końcowego usługa na sieci Web wskazywanej przez połączenie ciąg adresu URL pliku XML Query definiuje metoda usługa sieci Web, Akcja SOAP lub oba. Dostawca danych XML tworzy żądanie o usługę sieci Web, które powoduje pobranie danych XML z przeznaczeniem dla raportu.

Uwaga

Kiedy obszar nazw usługa sieci Web zawiera (ukośnik/) znak, zawiera zarówno metoda usługa sieci Web, jak i akcja SOAP tak, aby rozszerzenie przetwarzania danych XML można poprawnie pobrać obszaru nazw.

Osadzone dokumentu XML, plik XML Query definiuje osadzone dane XML mają być używane, zawiera opcjonalny obszarów nazw i zawiera opcjonalny XML ElementPath..

Określanie parametrów zapytania o dane XML

Program umożliwia konfigurowanie parametrów zapytań o dokumenty XML.

  • W żądaniach wysyłanych z adresów URL parametry zapytań są dołączane jako standardowe parametry URL.

  • W żądaniach wysyłanych z usługi sieci Web parametry zapytań są przekazywane do metody używanej w usłudze.Aby zdefiniować parametr kwerendy, należy użyć Parametry stronaWłaściwości zestawów danych -okno dialogowe.Aby uzyskać więcej informacji zobacz Dataset Properties Dialog Box, Parameters.

Przykład

Przykłady w tabeli poniżej ilustrują sposoby pobierania danych z usługi sieci Web współpracującej z serwerem raportów, dokumentu XML oraz z osadzonych danych XML.

Źródło danych XML

Przykład zapytania

Dane XML usług sieci Web z ListChildren Metoda.

<Query>

<Method Name="ListChildren" Namespace="https://schemas.microsoft.com/sqlserver/2005/06/30/reporting/reportingservices" />

</Query>

Dane XML usługi sieci Web pobrane za pomocą akcji protokołu SOAP.

<Query xmlns=namespace>

<SoapAction>http://schemas/microsoft.com/sqlserver/2005/03/23/reporting/reportingservices/ListChildren</SoapAction>

</Query>

Dokument XML lub osadzone dane XML używające obszarów nazw.

Element zapytania określający obszary nazw dla ścieżki elementu.

<Query xmlns:es="https://schemas.microsoft.com/StandardSchemas/ExtendedSales">

<ElementPath>/Customers/Customer/Orders/Order/es:LineItems/es:LineItem</ElementPath>

</Query>

Osadzony dokument XML.

<Query>

<XmlData>

<Customers>

<Customer ID="1">Bobby</Customer>

</Customers>

</XmlData>

<ElementPath>Customer {@}</ElementPath>

</Query>

Dokument XML używający właściwości domyślnych.

No query.

Ścieżka elementu wywodzi się z dokumentem XML i jest niezależny od obszaru nazw.

Uwaga

W pierwszym przykładzie usługa sieci Web Wyświetla zawartość serwera raportu, który używa ListChildren(String) Metoda. Aby wykonać to zapytanie, należy utworzyć nowe źródło danych i użyć parametrów połączenia https://localhost/reportserver/reportservice2006.asmx.The ListChildren(String) metoda takes two parameters: Item i Recursive. zestaw wartości domyślnej Item Aby / i Recursive Aby 1.

Określanie obszarów nazw

Użyj pliku XML Query element, aby określić obszary nazw, które są używane w danych XML ze urządzenie źródłowe danych. W następującej kwerendzie XML korzysta z obszaru nazw sales. Kod XML ElementPath węzły do sales:LineItems i sales:LineItem za pomocą obszaru nazw 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>

Aby określić obszar nazw dostawca danych, dzięki czemu pozostaje pusta domyślny obszar nazw, należy użyć xmldp. Pokazano to na przykładzie poniżej.

Przykład

W poniższych przykładach użyto dokumentu XML DPNamespace.xml, który w celach ilustracyjnych zamieszczono po tabeli.Tabela zawiera dwa przykłady składni elementu XML ElementPath, w której znajdują się prefiksy obszarów nazw.

Element zapytania XML

Wynikowe pole w zestawie danych

<Query/>

Węzełobszar nazw
Wrtość Ahttps://schemas.microsoft.com/...
Wartość Bhttps://schemas.microsoft.com/...
Wartość 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>

Węzeł
Wartość D
Wartość E
Wartość F

Dokument XML: DPNamespace.xml

Można skopiować tego XML i zapisać go na adres URL dostępne dla Projektant raportów używany jako urządzenie źródłowe danych XML: na przykład 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>