Funciones relacionadas con QNames: local-name-from-QName
Se aplica a: SQL Server
Devuelve un xs:NCNAME que representa la parte local de QName especificada por $arg. El resultado es una secuencia vacía si $arg es la secuencia vacía.
Sintaxis
fn:local-name-from-QName($arg as xs:QName?) as xs:NCName?
Argumentos
$arg
Es el QName del que se debería extraer el nombre local.
Ejemplos
En este tema se proporcionan ejemplos de XQuery en instancias XML almacenadas en varias columnas de tipo xml de la AdventureWorks2022
base de datos.
En el ejemplo siguiente se usa la función local-name-from-QName() para recuperar los elementos URI de espacio de nombres y nombre local de un valor de tipo QName. En el ejemplo, se realizan las tareas siguientes:
Crear una colección de esquemas XML.
Crear una tabla con una columna de tipo xml. El tipo xml se escribe utilizando la colección de esquemas XML.
Almacenar una instancia XML de ejemplo en la tabla. Con el método query() del tipo de datos xml, la expresión de consulta se ejecuta para recuperar la parte de nombre local del valor de tipo QName de la instancia.
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