Udostępnij za pośrednictwem


lokalna nazwa funkcja (XQuery)

Zwraca lokalną część nazwy $arg jak xs:string, który będzie ciąg znaków o zerowej długości lub będą miały postać xs:NCName leksykalne. Jeśli argument nie zostanie podana, domyślnie 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, w których część nazwy lokalne zostaną pobrane.

Uwagi

  • W programie SQL Server FN:Local-Name() bez argumentu można używać tylko w kontekście predykat zależne od kontekstu.W szczególności to można używać tylko wewnątrz nawiasów kwadratowych)[ ]).

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

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

Przykłady

W tym temacie przedstawiono przykłady XQuery przed XML wystąpienia, które są przechowywane w różnych XML typu kolumny bazy danych AdventureWorks.Aby uzyskać ogólne informacje o każdej z tych kolumn zobacz xml Data Type Representation in the AdventureWorks Database.

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

W następującej kwerendzie określono przed wystąpienie bez typu XML.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

W następującej kwerendzie określono wobec kolumna instrukcji, kolumna xml pisma, ProductModel tabela.Wyrażenie, local-name(/AWMI:root[1]/AWMI:Location[1]), zwraca nazwę lokalną Location, z 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.Za pomocą nazwy lokalne bez argumentu w predykatu

W następującej kwerendzie określono wobec kolumna instrukcji, wpisane XML kolumna tabela ProductModel.Wyrażenie zwraca wszystkie podrzędne wobec elementu <root>element, którego nazwę lokalną część QName jest "Położenie". The local-name() funkcja is specifed in the predicate and it has no arguments The context node is used by the funkcja.

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> element.