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 AdventureWorks2008R2. Para obter uma visão geral de cada uma dessas colunas, consulte Representação de tipo de dados xml no banco de dados do AdventureWorks2008R2.

A. Recuperar 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. Uso do 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

Conceitos