Fonctions relatives aux QName : local-name-from-QName
S’applique à :SQL Server
Retourne un xs:NCNAME qui représente la partie locale de QName spécifiée par $arg. Le résultat est une séquence vide si $arg est la séquence vide.
Syntaxe
fn:local-name-from-QName($arg as xs:QName?) as xs:NCName?
Arguments
$arg
QName d'où le nom local doit être extrait.
Exemples
Cette rubrique fournit des exemples XQuery sur des instances XML stockées dans différentes colonnes de type xml dans la AdventureWorks2022
base de données.
L’exemple suivant utilise la fonction local-name-from-QName() pour récupérer les parties de nom local et d’URI d’espace de noms à partir d’une valeur de type QName. Cet exemple illustre les opérations suivantes :
La requête crée une collection de schémas XML.
Elle crée ensuite une table possédant une colonne de type xml. Ce type est typé par le biais de la collection de schémas XML.
Elle stocke enfin une instance XML servant d'échantillon dans la table. À l’aide de la méthode query() du type de données xml, l’expression de requête est exécutée pour récupérer la partie nom local de la valeur de type QName de la instance.
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