Udostępnij przez


lokalna nazwa funkcji (XQuery)

Zwraca lokalną część nazwy $arg xs:string, będzie ciąg o zerowej długości lub będzie miał postać leksykalne xs:NCName.Jeśli argument nie jest podany, domyślnym jest węzeł kontekstu.

Składnia

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

Argumenty

  • $arg
    Nazwa węzła, której część nazwy lokalne będą pobierane.

Uwagi

  • W programie SQL Server fn:local-name() bez argumentu mogą być używane tylko w kontekście predykat zależne od kontekstu.W szczególności go należy używać tylko wewnątrz nawiasów kwadratowych ([ ]).

  • Jeśli argument jest dostarczany i jest pusta, funkcja zwraca ciąg znaków o zerowej długości.

  • Jeśli węzeł miejsce docelowe nie ma nazwy, ponieważ jest węzeł dokumentu, komentarza lub węzła tekstu, funkcja zwraca ciąg znaków o zerowej długości.

Przykłady

W tym temacie przedstawiono przykłady XQuery przeciwko wystąpień XML, które są przechowywane w różnych xml Wpisz kolumn w AdventureWorks2008R2 bazy danych.Przegląd tych kolumn, zobacz XML reprezentacji typu danych w bazie danych AdventureWorks2008R2.

A.Pobrać lokalną nazwę określonego węzła

Określono następujące kwerendy przeciwko XML bez wystąpienie.Wyrażenie kwerendy local-name(/ROOT[1]), pobiera nazwę lokalną część określonego węzła.

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

Określono następujące kwerendy wobec kolumna instrukcje, kolumną maszynowy xml w tabela ProductModel.Wyrażenie, local-name(/AWMI:root[1]/AWMI:Location[1]), zwraca nazwę lokalną Location, określonego węzła.

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.Przy użyciu nazwy lokalnej bez argumentu w predykacie

Określono następujące kwerendy wobec kolumna instrukcje, wpisany xml kolumna w tabela ProductModel.Wyrażenie zwraca wszystkie podrzędne elementu z <root> element, którego nazwę lokalną część QName jest "Lokalizacja".Local-name() funkcja jest podana w predykacie i nie ma żadnych argumentów węzeł kontekstu jest używany przez funkcję.

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;

Kwerenda zwraca wszystkie <Location> elementy podrzędne elementu <root> elementu.