Sintassi di query XML per i dati del report XML (SSRS)XML Query Syntax for XML Report Data (SSRS)

In Reporting ServicesReporting Servicesè possibile creare set di dati per origini dati XML.In Reporting ServicesReporting Services, you can create datasets for XML data sources. Dopo aver definito un'origine dati, è possibile creare una query per il set di dati.After you define a data source, you create a query for the dataset. In base al tipo di dati XML a cui punta l'origine dati, è possibile creare la query del set di dati includendo un elemento Query XML o un percorso di elemento.Depending on the type of XML data pointed to by the data source, you create the dataset query by including an XML Query or an element path. Un elemento Query XML inizia con un tag <Query> e include spazi dei nomi ed elementi XML che variano in base all'origine dati.An XML Query starts with a <Query> tag and includes namespaces and XML elements that vary depending on the data source. Un percorso di elemento è indipendente dallo spazio dei nomi e specifica i nodi e gli attributi dei nodi dei dati XML sottostanti da utilizzare tramite una sintassi di tipo XPath.An element path is namespace-independent and specifies which nodes and node attributes to use from the underlying XML data with an XPath-like syntax. Per altre informazioni sui percorsi di elementi, vedere Sintassi del percorso di elemento per i dati del report XML (SSRS).For more information about element paths, see Element Path Syntax for XML Report Data (SSRS).

È possibile creare un'origine dei dati XML per i tipi di dati XML seguenti:You can create an XML data source for the following types of XML data:

  • Documenti XML a cui punta un URL tramite il protocollo HTTPXml documents pointed to by a URL using http protocol

  • Endpoint del servizio Web che restituiscono dati XMLWeb service endpoints that return XML data

  • Dati XML incorporatiEmbedded XML data

    La modalità usata per specificare un elemento Query XML o un percorso di elemento dipende dal tipo di dati XML.How you specify an XML Query or an element path depends on the type of XML data.

    Per un documento XML, l'elemento Query XML è facoltativo.For an XML document, the XML Query is optional. Se viene incluso, può contenere un elemento ElementPathXML facoltativo.If it is included, it can contain an optional XML ElementPath. Per il valore dell'elemento ElementPath XML viene usata la sintassi del percorso di elemento.The value of the XML ElementPath uses the element path syntax. Gli elementi Query XML ed ElementPath XML vengono inclusi per consentire l'elaborazione corretta degli spazi dei nomi quando richiesto dai dati XML dell'origine dati.You include the XML Query and XML ElementPath to process namespaces correctly when it is needed by the XML data from the data source.

    Per un endpoint servizio Web a cui punta un URL della stringa di connessione, l'elemento Query XML definisce l'azione SOAP o il metodo del servizio Web oppure entrambi.For a Web service endpoint pointed to by a connection string URL, the XML Query defines either the Web service method, the SOAP action, or both. Tramite il provider di dati XML viene creata una richiesta del servizio Web per recuperare i dati XML da utilizzare per il report.The XML data provider creates a Web service request that retrieves XML data to use for the report.

Nota

Quando uno spazio dei nomi del servizio Web contiene una barra (/) , includere sia il metodo del servizio Web che l'azione SOAP, per consentire all'estensione per l'elaborazione dati XML di derivare lo spazio dei nomi in modo corretto.When a Web service namespace includes a forward slash (/) character, include both the Web service method and the SOAP action so that the XML data processing extension can derive the namespace correctly.

Per un documento XML incorporato, l'elemento Query XML definisce i dati XML incorporati da usare, include gli spazi dei nomi facoltativi e contiene un elemento ElementPathXML facoltativo.For an embedded XML document, the XML Query defines the embedded XML data to use, includes optional namespaces, and contains an optional XML ElementPath..

Impostazione di parametri di query per dati XMLSpecifying Query Parameters for XML Data

È possibile specificare parametri di query per documenti XML.You can specify query parameters for XML documents.

  • Per le richieste di URL, i parametri di query vengono inclusi come parametri URL standard.For URL requests, the query parameters are included as standard URL parameters.

  • Per le richieste del servizio Web, i parametri di query vengono passati al metodo del servizio Web.For Web service requests, query parameters are passed to the Web service method. Per definire un parametro di query, usare la pagina Parametri della finestra di dialogo Proprietà set di dati .To define a query parameter, use the Parameters page of the Dataset Properties dialog box. Per altre informazioni, vedere Finestra di dialogo Proprietà set di dati, Parametri.For more information, see Dataset Properties Dialog Box, Parameters.

EsempioExample

Negli esempi della tabella seguente viene illustrato come recuperare i dati dal servizio Web ReportServer, da un documento XML e dai dati XML incorporati.The examples in the following table illustrate how to retrieve data from the Report Server Web service, an XML document, and embedded XML data.

Origine dei dati XMLXML data source Esempio di queryQuery example
Dati XML del servizio Web dal metodo ListChildren .Web service XML data from ListChildren method. <Query>

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

</Query>
Dati XML del servizio Web tramite SoapAction.Web service XML data from SoapAction. <Query xmlns=namespace>

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

</Query>
Documento XML o dati XML incorporati che utilizzano spazi dei nomi.XML Document or embedded XML data that uses namespaces.

Elemento Query specificando gli spazi dei nomi per un percorso di elemento.Query element specifying namespaces for an element path.
<Query xmlns:es="http://schemas.microsoft.com/StandardSchemas/ExtendedSales">

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

</Query>
Documento XML incorporato.Embedded XML document. <Query>

<XmlData>

<Customers>

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

</Customers>

</XmlData>

<ElementPath>Customer {@}</ElementPath>

</Query>
Documento XML che utilizza valori predefiniti.XML document that uses default. Nessuna query.No query.

Il percorso viene derivato dal documento XML stesso ed è indipendente dallo spazio dei nomi.The element path is derived from the XML document itself and is namespace-independent.

Nota

Nel primo esempio di servizio Web è riportato il contenuto del server di report che usa il metodo ListChildren .The first Web service example lists the contents of the report server that uses the ListChildren method. Per eseguire questa query, è necessario creare una nuova origine dati e impostare la stringa di connessione su http://localhost/reportserver/reportservice2006.asmx.To run this query, you must create a new data source and set the connection string to http://localhost/reportserver/reportservice2006.asmx. Il metodo ListChildren accetta due parametri: Elemento e Ricorsivo.The ListChildren method takes two parameters: Item and Recursive. Impostare il valore predefinito per Elemento su / e Ricorsivo su 1.Set the default value for Item to / and Recursive to 1.

Definizione degli spazi dei nomiSpecifying Namespaces

Usare l'elemento Query XML per specificare gli spazi dei nomi usati nei dati XML dell'origine dati.Use the XML Query element to specify the namespaces that are used in the XML data from the data source. Nella query XML seguente viene usato lo spazio dei nomi sales.The following XML query uses the namespace sales. Nei nodi ElementPath XML per sales:LineItems e sales:LineItem viene usato lo spazio dei nomi sales.The XML ElementPath nodes for sales:LineItems and sales:LineItem use the namespace sales.

<Query xmlns:sales=  
"http://schemas.microsoft.com/StandardSchemas/ExtendedSales">  
   <SoapAction>  
      http://schemas.microsoft.com/SalesWebService/ListOrders   
   </SoapAction>  
   <ElementPath>  
      Customers/Customer/Orders/Order/sales:LineItems/sales:LineItem  
   </ElementPath>  
</Query>  

Per specificare lo spazio dei nomi del provider di dati, affinché lo spazio dei nomi predefinito rimanga vuoto, usare xmldp,To specify the data provider namespace so that the default namespace remains empty, use xmldp. come illustrato nell'esempio seguente.This is shown in the following example.

EsempioExample

Negli esempi seguenti viene utilizzato il documento XML DPNamespace.xml, illustrato dopo la tabella.The following examples use the XML document DPNamespace.xml, which is provided for illustration after the table. Nella tabella sono illustrati due esempi di sintassi ElementPath XML che include i prefissi degli spazi dei nomi.This table shows two examples of XML ElementPath syntax that includes namespace prefixes.

Elemento Query XMLXML Query Element Campi risultanti nel set di datiResulting fields in the dataset
<Query/><Query/> Value A: http://schemas.microsoft.com/...Value A: http://schemas.microsoft.com/...

Value B: http://schemas.microsoft.com/...Value B: http://schemas.microsoft.com/...

Value C: http://schemas.microsoft.com/...Value C: http://schemas.microsoft.com/...
<xmldp:Query xmlns:xmldp="http://schemas.microsoft.com/sqlserver/2005/02/reporting/XmlDPQuery" xmlns:ns="http://schemas.microsoft.com/...">

<xmldp:ElementPath>Root {}/ns:Element2/Node</xmldp:ElementPath>

</xmldp:Query>
Value DValue D

Value EValue E

Value FValue F

Documento XML: DPNamespace.xmlXML document: DPNamespace.xml

È possibile copiare il codice XML seguente e salvarlo in un URL disponibile per Progettazione report, per l'utilizzo come origine dati XML, ad esempio, http://localhost/DPNamespace.xml.You can copy this XML and save it to a URL available for Report Designer to use as an XML data source: for example, http://localhost/DPNamespace.xml.

<Root xmlns:ns="http://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>  

Vedere ancheSee Also

Tipo di connessione XML (SSRS) XML Connection Type (SSRS)
Esercitazioni su Reporting Services (SSRS)Reporting Services Tutorials (SSRS)