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.
Hinweis |
---|
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. |
Hinweis |
---|
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).