Condividi tramite


Sintassi di query XML per la definizione di dati di report XML (SSRS)

In Reporting Services è possibile creare set di dati per le origini dati XML. Dopo avere definito un'origine dei dati, è possibile creare una query per il set di dati. In base al tipo di dati XML a cui punta l'origine dei dati, è possibile creare la query del set di dati includendo un elemento Query XML o un percorso di elemento. Un elemento Query XML inizia con un tag <Query> e include spazi dei nomi ed elementi XML che variano in base all'origine dei dati. 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. Per ulteriori informazioni sui percorsi di elementi, vedere Sintassi del percorso di elemento per la definizione di dati di report XML (SSRS).

È possibile creare un'origine dei dati XML per i tipi di dati XML seguenti:

  • Documenti XML a cui punta un URL tramite il protocollo HTTP

  • Endpoint del servizio Web che restituiscono dati XML

  • Dati XML incorporati

La modalità utilizzata per specificare un elemento Query XML o un percorso di elemento dipende dal tipo di dati XML.

Per un documento XML, l'elemento Query XML è facoltativo. Se viene incluso, può contenere un elemento ElementPath XML facoltativo. Per il valore dell'elemento ElementPath XML viene utilizzata la sintassi del percorso di elemento. 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.

Per un endpoint del servizio Web a cui punta un URL della stringa di connessione, l'elemento Query definisce l'azione SOAP o il metodo del servizio Web oppure entrambi. Tramite il provider di dati XML viene creata una richiesta del servizio Web per recuperare i dati XML da utilizzare per il 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.

Per un documento XML incorporato, l'elemento Query XML definisce i dati XML incorporati da utilizzare, include gli spazi dei nomi facoltativi e contiene un elemento ElementPath XML facoltativo.

Impostazione di parametri di query per dati XML

È possibile specificare parametri di query per documenti XML.

  • Per le richieste di URL, i parametri di query vengono inclusi come parametri URL standard.

  • Per le richieste del servizio Web, i parametri di query vengono passati al metodo del servizio Web. Per definire un parametro di query, utilizzare la pagina Parametri della finestra di dialogo Proprietà set di dati. Per ulteriori informazioni, vedere Finestra di dialogo Proprietà set di dati, Parametri.

Esempio

Negli esempi della tabella seguente viene illustrato come recuperare i dati dal servizio Web ReportServer, da un documento XML e dai dati XML incorporati.

Origine dei dati XML

Esempio di query

Dati XML del servizio Web tramite il metodo ListChildren.

<Query>

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

</Query>

Dati XML del servizio Web tramite 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.

Elemento Query specificando gli spazi dei nomi per un percorso di elemento.

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

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

</Query>

Documento XML incorporato.

<Query>

<XmlData>

<Customers>

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

</Customers>

</XmlData>

<ElementPath>Customer {@}</ElementPath>

</Query>

Documento XML che utilizza valori predefiniti.

No query.

Il percorso viene derivato dal documento XML stesso ed è indipendente dallo spazio dei nomi.

Nota

Nel primo esempio di servizio Web è riportato il contenuto del server di report che utilizza il metodo ListChildren. Per eseguire questa query, è necessario creare una nuova origine dati e impostare la stringa di connessione su https://localhost/reportserver/reportservice2006.asmx. Il metodo ListChildren accetta due parametri, ovvero Item e Recursive. Impostare il valore predefinito di Item su / e quello di Recursive su 1.

Definizione degli spazi dei nomi

Utilizzare l'elemento Query XML per specificare gli spazi dei nomi utilizzati nei dati XML dell'origine dati. Nella query XML seguente viene utilizzato lo spazio dei nomi sales. Nei nodi ElementPath XML per sales:LineItems e sales:LineItem viene utilizzato lo spazio dei nomi 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>

Per specificare lo spazio dei nomi del provider di dati, affinché lo spazio dei nomi predefinito rimanga vuoto, utilizzare xmldp, come illustrato nell'esempio seguente.

Esempio

Negli esempi seguenti viene utilizzato il documento XML DPNamespace.xml, illustrato dopo la tabella. Nella tabella sono illustrati due esempi di sintassi ElementPath XML che include i prefissi degli spazi dei nomi.

Elemento Query XML

Campi risultanti nel set di dati

<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

Documento XML: 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, 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>

Vedere anche

Concetti

Altre risorse