Sintassi del percorso di elemento per i dati del report XML (SSRS)Element Path Syntax for XML Report Data (SSRS)

In Progettazione report è possibile specificare i dati da utilizzare per un report da un'origine dati XML definendo un percorso di elemento con distinzione tra maiuscole e minuscole.In Report Designer, you specify the data to use for a report from an XML data source by defining a case-sensitive element path. Un percorso di elemento indica come attraversare i nodi gerarchici XML e i relativi attributi nell'origine dei dati XML.An element path indicates how to traverse the XML hierarchical nodes and their attributes in the XML data source. Per usare il percorso di elemento predefinito, lasciare vuota la query del set di dati o l'elemento ElementPath XML dell'elemento Query XML.To use the default element path, leave the dataset query or the XML ElementPath of the XML Query empty. Quando vengono recuperati i dati dall'origine dei dati XML, i nodi elemento con valori di testo e gli attributi dei nodi elemento diventano colonne del set di risultati.When data is retrieved from the XML data source, element nodes that have text values and element node attributes become columns in the result set. Quando si esegue la query, i valori dei nodi e degli attributi diventano i dati delle righe.The values of the nodes and attributes become the row data when you run the query. Le colonne sono visualizzate come raccolta di campi di set di dati nel riquadro Dati report.The columns appear as the dataset field collection in the Report Data pane. In questo argomento viene descritta la sintassi del percorso di elemento.This topic describes the element path syntax.

Nota

La sintassi del percorso di elemento è indipendente dallo spazio dei nomi.Element path syntax is namespace-independent. Per usare gli spazi dei nomi in un percorso di elemento, usare la sintassi di XML Query che includa un elemento ElementPath XML, come descritto in Sintassi di XML Query per i dati del report XML (SSRS).To use namespaces in an element path, use the XML query syntax that includes an XML ElementPath element described in XML Query Syntax for XML Report Data (SSRS).

Nella tabella seguente vengono descritte le convenzioni utilizzate per definire un percorso di elemento.The following table describes conventions used to define an element path.

ConvenzioneConvention UtilizzoUsed for
grassettobold Il testo deve essere digitato esattamente come illustrato.Text that must be typed exactly as shown.
| (barra verticale)| (vertical bar) Separa gli elementi della sintassi.Separates syntax items. Indica che è possibile scegliere un solo elemento.You can choose only one of the items.
[ ] (parentesi quadre)[ ] (brackets) Elementi sintattici facoltativi.Optional syntax items. Le parentesi quadre non devono essere digitate.Do not type the brackets.
{ } (parentesi graffe){ } (braces) Delimitano i parametri degli elementi della sintassi.Delimits parameters of syntax items.
[,...n][,...n] Indica che l'elemento precedente può essere ripetuto n volte.Indicates the preceding item can be repeated n number of times. Le varie occorrenze dell'elemento sono separate da una virgola.The occurrences are separated by commas.

SintassiSyntax


Element path ::=  
    ElementNode[/Element path]  
ElementNode ::=  
    XMLName[(Encoding)][{[FieldList]}]  
XMLName ::=  
    [NamespacePrefix:]XMLLocalName  
Encoding ::=  
        HTMLEncoded | Base64Encoded  
FieldList ::=  
    Field[,FieldList]  
Field ::=  
    Attribute | Value | Element | ElementNode  
Attribute ::=  
        @XMLName[(Type)]  
Value ::=  
        @[(Type)]  
Element ::=  
    XMLName[(Type)]  
Type ::=  
        String | Integer | Boolean | Float | Decimal | Date | XML   
NamespacePrefix ::=  
    Identifier that specifies the namespace.  
XMLLocalName :: =  
    Identifier in the XML tag.   

OsservazioniRemarks

Nella tabella seguente sono riepilogati i termini del percorso di elemento.The following table summarizes element path terms. Gli esempi della tabella si riferiscono al documento XML di esempio Customers.xml, incluso nella sezione relativa agli esempi di questo argomento.Examples in the table refer to the example XML document Customers.xml, which is included in the Examples section of this topic.

Nota

Nei tag XML viene fatta distinzione tra maiuscole e minuscole.XML tags are case-sensitive. Se nel percorso di elemento si specifica un nodo ElementNode, è necessario che corrisponda esattamente ai tag XML dell'origine dei dati.When you specify an ElementNode in the element path, you must exactly match the XML tags in the data source.

NomeTerm DefinizioneDefinition
Element pathElement path Definisce la sequenza di nodi da attraversare nel documento XML per recuperare i dati del campo di un set di dati con un'origine dei dati XML.Defines the sequence of nodes to traverse within the XML document in order to retrieve field data for a dataset with an XML data source.
ElementNodeElementNode Nodo XML nel documento XML.The XML node in the XML document. I nodi sono designati da tag e sono correlati agli altri nodi in base a una relazione gerarchica.Nodes are designated by tags and exist in a hierarchical relationship with other nodes. Customers><, ad esempio, è il nodo elemento radice.For example, <Customers> is the root element node. Customer>< è un sottoelemento di Customers><.<Customer> is a subelement of <Customers>.
XMLNameXMLName Nome del nodo.The name of the node. Il nome del nodo Customers, ad esempio, è Customers.For example, the name of the Customers node is Customers. XMLName può essere preceduto da un identificatore dello spazio dei nomi, per assegnare a ogni nodo un nome univoco.An XMLName can be prefixed with a namespace identifier to uniquely name every node.
CodificaEncoding Indica che il valore dell'elemento è un valore XML con codifica e deve essere decodificato e incluso come sottoelemento dell'elemento.Indicates that the Value for this element is encoded XML and needs to be decoded and included as a subelement of this element.
FieldListFieldList Definisce il set di elementi e attributi da utilizzare per recuperare i dati.Defines the set of elements and attributes to use to retrieve data.

Se non specificato, vengono utilizzati come campi tutti gli attributi e i sottoelementi.If not specified, all attributes and subelements are used as fields. Se viene specificato l'elenco dei campi vuoto ({}), non verrà usato alcun campo di questo nodo.If the empty field list is specified ({}), no fields from this node are used.

L'oggetto FieldList non può contenere un valore e un elemento oppure un nodo ElementNode.A FieldList may not contain both a Value and an Element or ElementNode.
CampoField Specifica i dati recuperati come campo del set di dati.Specifies the data that is retrieved as a dataset field.
AttributeAttribute Coppia nome-valore contenuta in ElementNode.A name-value pair within the ElementNode. Nel nodo elemento Customer ID="1"><, ad esempio, ID è un attributo e @ID(Integer) restituisce "1" come tipo integer nel campo dati ID corrispondente.For example, in the element node <Customer ID="1">, ID is an attribute and @ID(Integer) returns "1" as an integer type in the corresponding data field ID.
ValoreValue Valore dell'elemento.The value of the element. Valore può essere usato solo nell'ultimo ElementNode del percorso di elemento.Value can only be used on the last ElementNode in the element path. Poiché, ad esempio, Return>< è un nodo foglia, se lo si include alla fine di un percorso di elemento, il valore di Return {@} è Chair.For example, because <Return> is a leaf node, if you include it at the end of an element path, the value of Return {@} is Chair.
elementoElement Valore del sottoelemento denominato.The value of the named subelement. Customers {}/Customer {}/LastName recupera, ad esempio, i valori solo per l'elemento LastName.For example, Customers {}/Customer {}/LastName retrieves values for only the LastName element.
TipoType Tipo di dati facoltativo da utilizzare per il campo creato da questo elemento.The optional data type to use for the field created from this element.
NamespacePrefixNamespacePrefix NamespacePrefix è definito nell'elemento Query XML.NamespacePrefix is defined in the XML Query element. Se non è presente alcun elemento Query XML, gli spazi dei nomi dell'elemento ElementPath XML vengono ignorati.If no XML Query element exists, namespaces in the XML ElementPath are ignored. Se è presente un elemento Query XML, l'elemento ElementPath XML include un attributo IgnoreNamespacesfacoltativo.If there is an XML Query element, the XML ElementPath has an optional attribute IgnoreNamespaces. Se IgnoreNamespaces è True, gli spazi dei nomi dell'elemento ElementPath XML e del documento XML vengono ignorati.If IgnoreNamespaces is true, namespaces in the XML ElementPath and the XML document are ignored. Per altre informazioni, vedere Sintassi di XML Query per i dati del report XML (SSRS).For more information, see XML Query Syntax for XML Report Data (SSRS).

Esempio - Nessuno spazio dei nomiExample - No Namespaces

Negli esempi seguenti viene utilizzato il documento XML Customers.xml.The following examples use the XML document Customers.xml. In questa tabella sono illustrati esempi di sintassi del percorso di elemento e i risultati dell'utilizzo del percorso di elemento in una query per la definizione di un set di dati, basata sul documento XML come origine dati.This table shows examples of element path syntax and the results of using the element path in a query that defines a dataset, based on the XML document as a data source.

Nota

Quando il percorso di elemento è vuoto, per la query viene utilizzato il percorso di elemento predefinito, ovvero il primo percorso di una raccolta di nodi foglia.When the element path is empty, the query uses the default element path: the first path to a leaf node collection. Nel primo esempio l'utilizzo di un percorso di elemento vuoto corrisponde alla definizione del percorso di elemento /Customers/Customer/Orders/Order.In the first example, leaving the element path empty is equivalent to specifying the element path /Customers/Customer/Orders/Order. Tutti gli attributi e i valori del nodo nel percorso vengono restituiti nel set di risultati, mentre i nomi degli attributi e del nodo vengono visualizzati come campi del set di dati.All node value and attributes along the path are returned in the result set, and the node names and attributes names appear as dataset fields.

Esempio n. 1: vuotoExample #1: Empty

JSONOrder QtyQty IDID FirstNameFirstName LastNameLastName Customer.IDCustomer.ID xmlnsxmlns
ChairChair 66 11 BobbyBobby MooreMoore 1111 http://www.adventure-works.comhttp://www.adventure-works.com
TabellaTable 11 22 BobbyBobby MooreMoore 1111 http://www.adventure-works.comhttp://www.adventure-works.com
SofaSofa 22 88 CrystalCrystal HuHu 2020 http://www.adventure-works.comhttp://www.adventure-works.com
EndTablesEndTables 22 1515 WyattWyatt DiazDiaz 3333 http://www.adventure-works.comhttp://www.adventure-works.com

Esempio n. 2: Customers {}/CustomerExample #2: Customers {}/Customer

FirstNameFirstName LastNameLastName IDID
BobbyBobby MooreMoore 1111
CrystalCrystal HuHu 2020
WyattWyatt DiazDiaz 3333

Esempio n. 3: Customers {}/Customer {}/LastNameExample #3: Customers {}/Customer {}/LastName

LastNameLastName
MooreMoore
HuHu
DiazDiaz

Esempio n. 4: Customers {}/Customer {}/Orders/Order {@,@Qty}Example #4: Customers {}/Customer {}/Orders/Order {@,@Qty}

JSONOrder QtyQty
ChairChair 66
TabellaTable 11
SofaSofa 22
EndTablesEndTables 22

Esempio n. 5: Customers {}/Customer/Orders/Order{ @ID(Integer)}Example #5: Customers {}/Customer/Orders/Order{ @ID(Integer)}

Order.IDOrder.ID FirstNameFirstName LastNameLastName IDID
11 BobbyBobby MooreMoore 1111
22 BobbyBobby MooreMoore 1111
88 CrystalCrystal HuHu 2020
1515 WyattWyatt DiazDiaz 3333

Documento XML: Customers.xmlXML document: Customers.xml

Per provare gli esempi di percorso di elemento nella sezione precedente, copiare questo codice XML e salvarlo in un URL accessibile da Progettazione report e quindi usare il documento XML come origine dati XML, ad esempio http://localhost/Customers.xml.To try out the element path examples in the previous section, you can copy this XML and save it to a URL that is accessible by Report Designer, and then use the XML document as an XML data source: for example, http://localhost/Customers.xml.

<?xml version="1.0"?>  
<Customers xmlns="http://www.adventure-works.com">  
   <Customer ID="11">  
      <FirstName>Bobby</FirstName>  
      <LastName>Moore</LastName>  
      <Orders>  
         <Order ID="1" Qty="6">Chair</Order>  
         <Order ID="2" Qty="1">Table</Order>  
      </Orders>  
      <Returns>  
         <Return ID="1" Qty="2">Chair</Return>  
      </Returns>  
   </Customer>  
   <Customer ID="20">  
      <FirstName>Crystal</FirstName>  
      <LastName>Hu</LastName>  
      <Orders>  
         <Order ID="8" Qty="2">Sofa</Order>  
      </Orders>  
      <Returns/>  
   </Customer>  
   <Customer ID="33">  
      <FirstName>Wyatt</FirstName>  
      <LastName>Diaz</LastName>  
      <Orders>  
         <Order ID="15" Qty="2">EndTables</Order>  
      </Orders>  
      <Returns/>  
   </Customer>  
</Customers>  

In alternativa, è possibile creare un'origine dati XML senza una stringa di connessione e incorporare Customers.XML nella query, attenendosi alla procedura seguente:Alternatively, you can create an XML data source that has no connection string and embed Customers.XML in the query, using the following procedure:

Per incorporare Customers.XML in una queryTo embed Customers.XML in a query
  1. Creare un'origine dati XML con una stringa di connessione vuota.Create an XML data source with a blank connection string.

  2. Creare un nuovo set di dati per l'origine dati XML.Create a new dataset for the XML data source.

  3. Nella finestra di dialogo Proprietà set di dati fare clic su Progettazione query.In the Dataset Properties dialog box, click Query Designer. Verrà visualizzata la finestra di dialogo Progettazione query basata su testo.The text-based query designer dialog box opens.

  4. Nel riquadro delle query immettere le due righe seguenti:In the query pane, enter the following two lines:

    <Query>

    <XmlData>

  5. Copiare Customers.XML e incollare il testo nel riquadro delle query dopo <XmlData>.Copy Customers.XML and paste the text in the query pane after <XmlData>.

  6. Nel riquadro delle query eliminare la prima riga copiata da Customers.XML: <?xml version="1.0"?>In the query pane, delete the first line that you copied from Customers.XML: <?xml version="1.0"?>

  7. Aggiungere le due righe seguenti alla fine della query:At the end of the query, add the following two lines:

    <XmlData>

    <Query>

  8. Fare clic su Esegui query (!).Click Run Query (!).

    Nel set di risultati vengono visualizzate 4 righe di dati con le colonne seguenti: xmlns, Customer.ID, FirstName, LastName, ID, Qty, Order.The result set displays 4 lines of data with the following columns: xmlns, Customer.ID, FirstName, LastName, ID, Qty, Order.

  9. Fare clic su OK.Click OK.

Vedere ancheSee Also

Tipo di connessione XML (SSRS) XML Connection Type (SSRS)
Esercitazioni su Reporting Services (SSRS) Reporting Services Tutorials (SSRS)
Aggiunta, modifica e aggiornamento di campi nel riquadro dei dati del report (Generatore report e SSRS)Add, Edit, Refresh Fields in the Report Data Pane (Report Builder and SSRS)