QNames 관련 함수 - local-name-from-QName
적용 대상: SQL Server
$arg 지정된 QName의 로컬 부분을 나타내는 xs:NCNAME을 반환합니다. $arg 빈 시퀀스인 경우 결과는 빈 시퀀스입니다.
구문
fn:local-name-from-QName($arg as xs:QName?) as xs:NCName?
인수
$arg
로컬 이름을 추출해야 하는 QName입니다.
예제
이 항목에서는 데이터베이스의 다양한 xml 형식 열에 저장된 XML 인스턴스에 대한 XQuery 예제를 AdventureWorks2022
제공합니다.
다음 예제에서는 local-name-from-QName() 함수를 사용하여 QName 형식 값에서 로컬 이름 및 네임스페이스 URI 부분을 검색합니다. 이 예제에서는 다음을 수행합니다.
XML 스키마 컬렉션을 만듭니다.
xml 형식 열이 있는 테이블을 만듭니다. xml 형식은 XML 스키마 컬렉션을 사용하여 입력됩니다.
샘플 XML 인스턴스를 테이블에 저장합니다. xml 데이터 형식의 query() 메서드를 사용하여 쿼리 식이 실행되어 인스턴스에서 QName 형식 값의 로컬 이름 부분을 검색합니다.
DROP TABLE T
go
DROP XML SCHEMA COLLECTION SC
go
CREATE XML SCHEMA COLLECTION SC AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="QNameXSD" >
<element name="root" type="QName" nillable="true"/>
</schema>'
go
CREATE TABLE T (xmlCol XML(SC))
go
-- following OK
insert into T values ('<root xmlns="QNameXSD" xmlns:a="https://someURI">a:someLocalName</root>')
go
-- Retrieve the local name.
SELECT xmlCol.query('declare default element namespace "QNameXSD"; local-name-from-QName(/root[1])')
FROM T
-- Result = someLocalName
-- You can retrieve namespace URI part from the QName using the namespace-uri-from-QName() function
SELECT xmlCol.query('declare default element namespace "QNameXSD"; namespace-uri-from-QName(/root[1])')
FROM T
-- Result = https://someURI