Freigeben über


XML-Abfragesyntax zum Angeben von XML-Berichtsdaten (Berichts-Generator 2.0)

In Berichts-Generator 2.0 kö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-Query beginnt mit einem <Query>-Tag und enthält Namespaces und 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 zum Angeben von XML-Berichtsdaten (Berichts-Generator 2.0).

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-ElementPath enthalten. 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-Datenprovider erstellt eine Webdienstanforderung, mit der XML-Daten abgerufen werden, die im Bericht verwendet werden sollen.

HinweisHinweis

Wenn ein Webdienst-Namespace ein Schrägstrichzeichen (/) 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. Weitere Informationen finden Sie unter Dataseteigenschaften (Dialogfeld), Parameter (Berichts-Generator 2.0).

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>http://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.

HinweisHinweis

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

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 sales verwendet. 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 Datenproviders 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/>

Nodens
Value Ahttps://schemas.microsoft.com/...
Value Bhttps://schemas.microsoft.com/...
Value 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>

Node
Value D
Value E
Value F

XML-Dokument: DPNamespace.xml

Sie können diese Beispiel-XML als XML-Dokument speichern und als Datenquelle verwenden. Beispiel: Um dieses Dokument auf einem Berichtsserver anzugeben, geben Sie die URL für das Dokument in der Verbindungszeichenfolge wie folgt an: 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>

Beispiele für Verbindungszeichenfolgen finden Sie unter Beispielverbindungen (Berichts-Generator 2.0).