local-name-from-QName (XQuery)

Renvoie une valeur xs:NCNAME qui correspond à la partie locale de QName indiquée par $arg. Le résultat revient à une séquence vide si $arg correspond à la séquence vide.

Syntaxe

fn:local-name-from-QName($arg as xs:QName?) as xs:NCName?

Argument

  • $arg
    QName d'où le nom local doit être extrait.

Exemples

Cette rubrique propose des exemples de XQuery relatifs à des instances XML stockés dans différentes colonnes de type xml tirées de la base de données AdventureWorks2008R2. Pour obtenir une vue d'ensemble de chacune de ces colonnes, consultez Représentation du type de données xml dans la base de données AdventureWorks2008R2.

L'exemple suivant utilise la fonction local-name-from-QName() pour récupérer les parties URI du nom local et de l'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. Grâce à la méthode query() du type de données xml, l'expression de requête s'exécute pour récupérer la partie du nom local de la valeur de type QName provenant de l'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="http://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 retrive 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 = http://someURI