Condividi tramite


Funzione local-name (XQuery)

Restituisce la parte locale del nome di $arg come xs:string corrispondente a una stringa di lunghezza zero o al formato lessicale di xs:NCName. Se non si specifica l'argomento, il valore predefinito è il nodo di contesto.

Sintassi

fn:local-name() as xs:string
fn:local-name($arg as node()?) as xs:string

Argomenti

  • $arg
    Nome del nodo di cui verrà recuperata la parte local-name.

Osservazioni

  • In SQL Server, è possibile utilizzare la funzione fn:local-name() senza argomento solo nell'ambito di un predicato dipendente dal contesto. In particolare, può essere utilizzata solo tra parentesi ([ ]).

  • Se si specifica l'argomento e questo corrisponde alla sequenza vuota, la funzione restituisce la stringa di lunghezza zero.

  • Se il nodo di destinazione non dispone di un nome specifico, in quanto è un nodo di documento, un nodo di commento o un nodo di testo, la funzione restituisce la stringa di lunghezza zero.

Esempi

In questo argomento vengono forniti esempi di utilizzo del linguaggio XQuery sulle istanze XML archiviate in diverse colonne di tipo xml nel database AdventureWorks2008R2. Per una panoramica su ognuna di queste colonne, vedere Rappresentazione del tipo di dati XML nel database AdventureWorks2008R2.

A. Recupero del nome locale di un nodo specifico

La query seguente viene eseguita su un'istanza XML non tipizzata. L'espressione della query, local-name(/ROOT[1]), recupera la parte del nome locale del nodo specificato.

declare @x xml;
set @x='<ROOT><a>111</a></ROOT>';
SELECT @x.query('local-name(/ROOT[1])')
-- result = ROOT;

La query viene eseguita sulla colonna Instructions, una colonna xml tipizzata della tabella ProductModel. L'espressione local-name(/AWMI:root[1]/AWMI:Location[1]) restituisce il nome locale Location del nodo specificato.

SELECT Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" ;
     local-name(/AWMI:root[1]/AWMI:Location[1])') as Result
FROM Production.ProductModel
WHERE ProductModelID=7
-- result = Location;

B. Utilizzo della funzione local-name senza argomento in un predicato

La query seguente viene eseguita sulla colonna Instructions, una colonna xml tipizzata della tabella ProductModel. L'espressione restituisce tutti gli elementi figlio dell'elemento <root>, per il quale la parte di nome locale del nome completo (QName) è "Location". La funzione local-name() viene specificata nel predicato e non include argomenti. La funzione utilizza il nodo di contesto.

SELECT Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" ;
  /AWMI:root//*[local-name() = "Location"]') as Result
FROM Production.ProductModel
WHERE ProductModelID=7;

La query restituisce tutti gli elementi figlio <Location> dell'elemento <root>.

Vedere anche

Riferimento

Concetti