Espressioni di percorso (XQuery)

Si applica a: sìSQL Server (tutte le versioni supportate)

Le espressioni di percorso XQuery consentono di individuare nodi, ad esempio di testo, attributo o elemento, all'interno di un documento. Il risultato di un'espressione di percorso è sempre nell'ordine del documento, senza nodi duplicati nella sequenza risultante. Nello specificare un percorso è possibile utilizzare la sintassi abbreviata o non abbreviata. Le informazioni seguenti sono relative alla sintassi non abbreviata. La sintassi abbreviata è descritta di seguito in questo argomento.

Nota

Poiché le query di esempio in questo argomento vengono specificate in base alle colonne di tipo XML , CatalogDescription e alle istruzioni, nella tabella ProductModel è necessario acquisire familiarità con il contenuto e la struttura dei documenti XML archiviati in tali colonne.

Esistono espressioni di percorso relativo ed espressioni di percorso assoluto. Di seguito vengono descritti ambedue i tipi di espressione:

  • Un'espressione di percorso relativo è costituita da uno o più passi separati da una o due barre (/ o //). Ad esempio, child::Features è un'espressione di percorso relativo in cui Child si riferisce solo ai nodi figlio del nodo di contesto attualmente elaborato. L'espressione recupera gli <Features> elementi figlio del nodo di contesto.

  • Un'espressione di percorso assoluto inizia con una o due barre (/ o //), seguite da un percorso relativo facoltativo. Ad esempio, la barra iniziale nell'espressione /child::ProductDescription indica che si tratta di un'espressione di percorso assoluto. Poiché una barra all'inizio di un'espressione restituisce il nodo radice del documento del nodo di contesto, l'espressione restituisce tutti i <ProductDescription> nodi elemento figlio della radice del documento.

    Se un percorso assoluto inizia con una sola barra, può essere o meno seguito da un percorso relativo. Se si specifica una sola barra, l'espressione restituisce il nodo radice del nodo di contesto. Per un tipo di dati XML, si tratta del nodo del documento.

Una tipica espressione di percorso è costituita da passi. Ad esempio, l'espressione di percorso assoluto, /child::ProductDescription/child::Summary , contiene due passi separati da una barra.

  • Il primo passaggio recupera gli elementi <ProductDescription> figlio del nodo elemento della radice del documento.

  • Il secondo passaggio recupera gli elementi <Summary> figlio del nodo elemento per ogni <ProductDescription> nodo elemento recuperato, che a sua volta diventa il nodo di contesto.

Un passo in un'espressione di percorso può essere un passo dell'asse o un passo generale.

Passo dell'asse

Un passo dell'asse in un'espressione di percorso è composto dalle parti seguenti.

asse
Definisce la direzione di spostamento. Un passo dell'asse in un'espressione di percorso che inizia dal nodo di contesto e si sposta ai nodi raggiungibili nella direzione specificata dall'asse.

test di nodo
Specifica il tipo di nodo o i nomi dei nodi da selezionare.

Zero o più predicati facoltativi
Filtrano i nodi selezionandone alcuni e scartandone altri.

Negli esempi seguenti viene usato un axisstep nelle espressioni di percorso:

  • L'espressione di percorso assoluto /child::ProductDescription contiene un solo passo. Specifica un asse (child) e un test di nodo (ProductDescription).

  • L'espressione di percorso relativo child::ProductDescription/child::Features contiene due passi separati da una barra. Entrambi i passi specificano un asse child. ProductDescription e Features sono test di nodo.

  • L'espressione di percorso relativo child::root/child::Location[attribute::LocationID=10] contiene due passi separati da una barra. Il primo passo specifica un asse (child) e un test di nodo (root). Il secondo passo specifica tutti e tre i componenti di un passo dell'asse: un asse (child), un test di nodo (Location) e un predicato ([attribute::LocationID=10]).

Per ulteriori informazioni sui componenti di un passaggio dell'asse, vedere specifica dell'asse in un passaggio dell'espressione di percorso, specifica del test di nodo in un passaggiodell'espressione di percorso e specifica dei predicati in un passaggio dell'espressione di percorso.

Passo generale

Un passo generale è semplicemente un'espressione che deve restituire una sequenza di nodi.

L'implementazione di XQuery in SQL Server supporta un passo generale come primo passo di un'espressione di percorso. Di seguito sono riportati alcuni esempi di espressioni di percorso che utilizzano passi generali.

(/a, /b)/c  
id(/a/b)  

Per ulteriori informazioni sulla funzione ID, vedere la funzione id (XQuery).

Contenuto della sezione

Definizione dell'asse in un passo dell'espressione di percorso
Descrive l'utilizzo del passo dell'asse in un'espressione di percorso.

Definizione del test di nodo in un passo dell'espressione di percorso
Descrive l'utilizzo dei test di nodo in un'espressione di percorso.

Specifica di predicati in un passo dell'espressione di percorso
Descrive l'utilizzo dei predicati in un'espressione di percorso.

Utilizzo della sintassi abbreviata in un'espressione di percorso
Descrive l'utilizzo della sintassi abbreviata in un'espressione di percorso.