Condividi tramite


Sintassi dei percorsi di elementi per la definizione di dati di report XML

Data aggiornamento: 17 luglio 2006

In Progettazione report è possibile specificare i dati da utilizzare per un report da un'origine dei dati XML definendo un percorso di elemento con distinzione tra maiuscole e minuscole. Un percorso di elemento indica come attraversare i nodi gerarchici XML e i relativi attributi nell'origine dei dati XML. Per utilizzare il percorso di elemento predefinito, lasciare vuota la query del set di dati o il nodo ElementPath XML dell'elemento Query XML. 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. Quando si esegue la query, i valori dei nodi e degli attributi diventano i dati delle righe. Viene eseguito il mapping tra le colonne e i campi del set di dati e le colonne vengono visualizzate nella finestra Set di dati quando si fa clic sul pulsante Aggiorna campi sulla barra degli strumenti. In questo argomento viene descritta la sintassi del percorso di elemento.

[!NOTA] La sintassi del percorso di elemento è indipendente dallo spazio dei nomi. Per utilizzare gli spazi dei nomi in un percorso di elemento, utilizzare la sintassi di query XML che includa un elemento ElementPath, come descritto in Sintassi di query XML per la definizione di dati di report XML.

Nella tabella seguente vengono descritte le convenzioni utilizzate per definire un percorso di elemento.

Convenzione Utilizzo

grassetto

Il testo deve essere digitato esattamente come illustrato.

| (barra verticale)

Separa gli elementi della sintassi. Indica che è possibile scegliere un solo elemento.

[ ] (parentesi quadre)

Elementi della sintassi facoltativi. Le parentesi quadre non devono essere digitate.

{ } (parentesi graffe)

Delimitano i parametri degli elementi della sintassi.

[,...n]

Indica che l'elemento precedente può essere ripetuto n volte. Le varie occorrenze dell'elemento sono separate da virgole.

Sintassi

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. 

Osservazioni

Nella tabella seguente sono riepilogati i termini del percorso di elemento. Gli esempi della tabella si riferiscono al documento XML di esempio Customers.xml, incluso nella sezione relativa agli esempi di questo argomento.

[!NOTA] Nei tag XML viene fatta distinzione tra maiuscole e minuscole. Se nel percorso di elemento si specifica un nodo ElementNode, è necessario che corrisponda esattamente ai tag XML dell'origine dei dati.

Termine Definizione

Element 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.

ElementNode

Nodo XML nel documento XML. I nodi sono designati da tag e sono correlati agli altri nodi in base a una relazione gerarchica. <Customers>, ad esempio, è il nodo elemento principale. <Customer> è un sottoelemento di <Customers>.

XMLName

Nome del nodo. Il nome del nodo Customers, ad esempio, è Customers. XMLName può essere preceduto da un identificatore dello spazio dei nomi, per assegnare a ogni nodo un nome univoco.

Encoding

Indica che il valore Value dell'elemento è un valore XML con codifica e deve essere decodificato e incluso come sottoelemento dell'elemento.

FieldList

Definisce il set di elementi e attributi da utilizzare per recuperare i dati.

Se non specificato, vengono utilizzati come campi tutti gli attributi e i sottoelementi. Se è specificato un elenco di campi vuoto, ovvero {}, non vengono utilizzati campi di questo nodo.

Un elemento FieldList potrebbe non contenere sia Value che Element o ElementNode.

Field

Specifica i dati recuperati come campo del set di dati.

Attribute

Coppia nome-valore contenuta in 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.

Value

Valore dell'elemento. Value può essere utilizzato solo nell'ultimo nodo ElementNode del percorso di elemento. Poiché, ad esempio, <Return> è un nodo foglia, se lo si include alla fine di un percorso di elemento, il valore di Return {@} è Chair.

Element

Valore del sottoelemento denominato. Customers {}/Customer {}/LastName recupera, ad esempio, i valori solo per l'elemento LastName.

Type

Tipo di dati facoltativo da utilizzare per il campo creato da questo elemento.

NamespacePrefix

NamespacePrefix è definito nell'elemento Query XML. Se non è presente alcun elemento Query XML, gli spazi dei nomi del nodo ElementPath XML vengono ignorati. Se è presente un elemento Query XML, il nodo ElementPath XML include un attributo IgnoreNamespaces facoltativo. Se IgnoreNamespaces è true, gli spazi dei nomi del nodo ElementPath XML e del documento XML vengono ignorati. Per ulteriori informazioni, vedere Sintassi di query XML per la definizione di dati di report XML.

Esempio - Nessuno spazio dei nomi

Negli esempi seguenti viene utilizzato il documento XML 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 dei dati.

[!NOTA] Quando il percorso di elemento è vuoto, per la query viene utilizzato il percorso di elemento predefinito, ovvero il primo percorso di un insieme di nodi foglia. Nel primo esempio l'utilizzo di un percorso di elemento vuoto corrisponde alla definizione del percorso di elemento /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.

Esempio

Campi del set di dati

Vuoto

Order

Qty

ID

FirstName

LastName

Customer.ID

xmlns

Chair61BobbyMoore11https://www.adventure-works.com

Table12BobbyMoore11https://www.adventure-works.com

Sofa28CrystalHu20https://www.adventure-works.com

EndTables215WyattDiaz33https://www.adventure-works.com

Customers {}/Customer

FirstName

LastName

ID

BobbyMoore11

CrystalHu20

WyattDiaz33

Customers {}/Customer {}/LastName

LastName

Moore

Hu

Diaz

Customers {}/Customer {}/Orders/Order {@,@Qty}

Order

Qty

Chair6

Table1

Sofa2

EndTables2

Customers {}/Customer/Orders/Order{ @ID(Integer)}

Order.ID

FirstName

LastName

ID

1BobbyMoore11

2BobbyMoore11

8CrystalHu20

15WyattDiaz33

Documento XML: Customers.xml

Per provare a utilizzare gli esempi relativi al percorso di elemento della sezione precedente, è possibile copiare il codice XML seguente e salvarlo in un URL a cui sia possibile accedere tramite Progettazione report e quindi utilizzare il documento XML come origine dei dati XML, ad esempio, https://localhost/Customers.xml. In alternativa, è possibile creare un'origine dei dati XML che non disponga di stringa di connessione e incorporare il documento Customers.xml in un tag <XmlData> nell'elemento Query XML.

<?xml version="1.0"?>
<Customers xmlns="https://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>

Vedere anche

Attività

Procedura: Aggiornamento di campi nella finestra Set di dati (Progettazione report)

Altre risorse

Esercitazione: Utilizzo di dati XML in un report

Guida in linea e informazioni

Assistenza su SQL Server 2005