Partilhar via


Função local-name (XQuery)

Retorna a parte local do nome de $arg como xs:string que ou será a cadeia de caracteres de comprimento zero ou terá a forma léxica de um xs:NCName. Se o argumento não for fornecido, o padrão será o nó de contexto.

Sintaxe

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

Argumentos

  • $arg
    Nome de nó cuja parte local-name será recuperada.

Comentários

  • No SQL Server, o fn:local-name() sem um argumento pode ser usado só no contexto de um predicado dependente de contexto. Mais precisamente, ele só pode ser usado entre parênteses ([ ]).

  • Se o argumento for fornecido e a sequência for vazia, a função retornará a cadeia de caracteres de comprimento zero.

  • Se o nó designado não tiver nome, por ser um nó de documento, um comentário ou um nó de texto, a função retornará a cadeia de caracteres de comprimento zero.

Exemplos

Este tópico fornece exemplos de XQuery em instâncias XML armazenadas em várias colunas do tipo xml no banco de dados AdventureWorks.

A.Recuperar o nome local de um nó específico

A consulta a seguir é especificada em uma instância XML não digitada. A expressão de consulta, local-name(/ROOT[1]), recupera a parte do nome local do nó especificado.

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

A consulta a seguir é especificada contra a coluna Instructions, uma coluna xml digitada, da tabela ProductModel. A expressão, local-name(/AWMI:root[1]/AWMI:Location[1]), retorna o nome local, Location, do nó especificado.

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.Usando o local-name sem argumento em um predicado

A consulta a seguir é especificada contra a coluna Instructions, uma coluna xml digitada, da tabela ProductModel. A expressão retorna todos os filhos do elemento do elemento <root> cuja parte do nome local do QName é "Location". A função local-name() é especificada no predicado e não tem argumentos. O nó de contexto é usado pela função.

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

A consulta retorna todos os filhos do elemento <Location> do elemento <root>.

Consulte também

Referência

Funções em nós

Conceitos

Função namespace-uri (XQuery)