XML-Abfragesyntax für XML-Berichtsdaten (SSRS)

In Reporting Serviceskönnen Sie Datasets für XML-Datenquellen erstellen. Wenn Sie eine Datenquelle definiert haben, erstellen Sie eine Abfrage für das Dataset. Je nach Typ der XML-Daten, auf die die Datenquelle zeigt, können Sie die Datasetabfrage erstellen, indem Sie eine XML- Query oder einen Elementpfad einfügen. Eine XML-Abfrage beginnt mit einem <Query>-Tag und enthält Namespaces sowie XML-Elemente, die je nach Datenquelle variieren. Ein Elementpfad ist von Namespaces unabhängig und gibt die Knoten und Knotenattribute in den zugrunde liegenden XML-Daten an, die mit der XPath-ähnlichen Syntax verwendet werden sollen. Weitere Informationen zu Elementpfaden finden Sie unter Syntax für Elementpfade für XML-Berichtsdaten (SSRS).

Sie können eine XML-Datenquelle für die folgenden Typen von XML-Daten erstellen:

  • XML-Dokumente, auf die eine URL über HTTP zeigt

  • Webdienst-Endpunkte, die XML-Daten zurückgeben

  • Eingebettete XML-Daten

Die Art, wie Sie eine XML- Query oder einen Elementpfad angeben, ist vom Typ der XML-Daten abhängig.

Bei einem XML-Dokument ist die XML- Query optional. Wenn sie eingeschlossen wird, kann sie einen optionalen XML- ElementPathenthalten. Der Wert des XML- ElementPath verwendet die Syntax des Elementpfades. Sie schließen die XML- Query und den XML- ElementPath ein, um Namespaces ordnungsgemäß zu verarbeiten, wenn diese von den XML-Daten in der Datenquelle benötigt werden.

Für einen Webdienst-Endpunkt, auf den eine Verbindungszeichenfolgen-URL zeigt, definiert die XML- Query die Webdienstmethode, die SOAP-Aktion oder beide. Der XML-Datenanbieter erstellt eine Webdienstanforderung, mit der XML-Daten abgerufen werden, die im Bericht verwendet werden sollen.

Hinweis

Wenn ein Webdienst-Namespace einen Schrägstrich ( / ) enthält, fügen Sie die Webdienstmethode und die SOAP-Aktion ein, sodass die XML-Datenverarbeitungserweiterung den Namespace fehlerfrei ableiten kann.

Für ein eingebettetes XML-Dokument definiert die XML- Query die zu verwendenden eingebetteten XML-Daten, außerdem enthält sie optionale Namespaces und einen optionalen XML- ElementPath.

Angeben von Abfrageparametern für XML-Daten

Sie können Abfrageparameter für XML-Dokumente angeben.

  • Bei URL-Anforderungen sind die Abfrageparameter als URL-Standardparameter enthalten.

  • Bei Webdienstanforderungen werden Abfrageparameter an die Webdienstmethode übergeben. Verwenden Sie zum Definieren eines Abfrageparameters im Dialogfeld Dataseteigenschaften die Seite Parameter .

Beispiel

Die Beispiele in der folgenden Tabelle veranschaulichen das Abrufen von Daten vom Berichtsserver-Webdienst, einem XML-Dokument und eingebetteten XML-Daten.

XML-Datenquelle Abfragebeispiel
Webdienst-XML-Daten aus der ListChildren -Methode <Query>

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

</Query>
Webdienst-XML-Daten von SoapAction. <Query xmlns=namespace>

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

</Query>
XML-Dokument oder eingebettete XML-Daten, die Namespaces verwenden.

Abfrageelement, das Namespaces für einen Elementpfad angibt.
<Query xmlns:es="https://schemas.microsoft.com/StandardSchemas/ExtendedSales">

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

</Query>
Eingebettetes XML-Dokument. <Query>

<XmlData>

<Customers>

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

</Customers>

</XmlData>

<ElementPath>Customer {@}</ElementPath>

</Query>
XML-Dokument, das Standardwerte verwendet. No query.

Der Elementpfad wird vom XML-Dokument selbst abgeleitet und ist von Namespaces unabhängig.

Hinweis

Im ersten Webdienstbeispiel wird der Inhalt des Berichtsservers aufgeführt, der die ListChildren -Methode Diese Abfrage können Sie ausführen, indem Sie eine neue Datenquelle erstellen und die Verbindungszeichenfolge auf https://localhost/reportserver/reportservice2006.asmx festlegen. Die Methode ListChildren akzeptiert zwei Parameter: Item und Recursive. Legen Sie den Standardwert für Item auf / und für Recursive auf 1fest.

Angeben von Namespaces

Verwenden Sie das XML- Query -Element zum Angeben der in den XML-Daten der Datenquelle verwendeten Namespaces. In der folgenden XML-Abfrage wird der Namespace salesverwendet. Die XML- ElementPath -Knoten für sales:LineItems und sales:LineItem verwenden den Namespace 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>  

Wenn Sie den Namespace des Datenanbieters so angeben möchten, dass der Standardnamespace leer bleibt, verwenden Sie xmldp. Dies wird im folgenden Beispiel gezeigt.

Beispiel

Im folgenden Beispiel wird das XML-Dokument DPNamespace.xml verwendet, das zur Veranschaulichung unter der Tabelle bereitgestellt ist. In dieser Tabelle sind zwei Beispiele für XML-ElementPath-Syntax angegeben, die Namespacepräfixe enthalten.

XML-Abfrageelement Resultierende Felder im Dataset
<Query/> Wert A: https://schemas.microsoft.com/...

Wert B: https://schemas.microsoft.com/...

Wert 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>
Value D

Value E

Value F

XML-Dokument: DPNamespace.xml

Sie können dieses XML-Dokument kopieren und unter einer URL speichern, auf den der Berichts-Designer zugreifen kann, um es als XML-Datenquelle zu verwenden: z. B. 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>  

Weitere Informationen

XML-Verbindungstyp (SSRS)
Reporting Services-Tutorials (SSRS)