ad alanı-uri işlev (XQuery)
URI değerini belirtilen QName ad alanını döndürür $arg bir xs:dize. olarak
Sözdizimi
fn:namespace-uri() as xs:string
fn:namespace-uri($arg as node()?) as xs:string
Bağımsız değişkenler
- $arg
Düğüm adı, ad alanı URI bölümü alınır.
Açıklamalar
Bağımsız değişken atlanırsa, içerik düðümünün varsayılandır.
sql Server fn:namespace-uri() olmayan bir bağımsız değişken yalnızca içerik bağımlı yüklemi içeriğinde kullanılabilir.Özellikle, bu yalnızca köşeli ayraçlar ([]) içinde kullanılabilir.
If $arg is the empty sequence, the zero-length string is returned.
If $arg is an element or attribute node whose expanded-QName is not in a namespace, the function returns the zero-length string
Örnekler
Bu konuda çeşitli içinde depolanan xml örnekleri karşı XQuery örnekler sağlar xml sütunları yazın AdventureWorks2008R2 veritabanı.Bir bakış bu sütunların her biri için bkz: XML veri türü temsili AdventureWorks2008R2 veritabanında.
A.Ad alanı URI belirli bir düğümün almak
Türlenmemiş bir xml örnek karşı belirtilen aşağıdaki sorgu.Sorgu ifade namespace-uri(/ROOT[1]), alır bir ad alanı URI bölümü belirtilen bir düğüm.
set @x='<ROOT><a>111</a></ROOT>'
SELECT @x.query('namespace-uri(/ROOT[1])')
Belirtilen QName ad alanı URI bölümü ancak yalnızca yerel ad parçası olmadığından, sıfır uzunluklu bir dize sonucudur.
Yazılı yönerge karşı belirtilen aşağıdaki sorgu xml sütun.ifade namespace-uri(/AWMI:root[1]/AWMI:Location[1]), işlevi ilk URI ad <Location> öğesinin alt öğesi <root> öğesi.
SELECT Instructions.query('
declare namespace AWMI="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions" ;
namespace-uri(/AWMI:root[1]/AWMI:Location[1])') as Result
FROM Production.ProductModel
WHERE ProductModelID=7;
Bu sonucu verir:
https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions
B.Uri bağımsız değişken olmadan bir koşul kullanma
Aşağıdaki sorgu karşı CatalogDescription yazılı xml sütun belirtilir.Öğe düğümleri, ad alanı URI ifade verir ise https://www.adventure-works.com/schemas/OtherFeatures.Ad -uri() işlev bağımsız değişken belirtilen ve içerik düðümünün kullanır.
SELECT CatalogDescription.query('
declare namespace p1="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
/p1:ProductDescription//*[namespace-uri() = "https://www.adventure-works.com/schemas/OtherFeatures"]
') as Result
FROM Production.ProductModel
WHERE ProductModelID=19l
Bu kısmi bir sonucudur:
<p1:wheel xmlns:p1="https://www.adventure-works.com/schemas/OtherFeatures">High performance wheels.</p1:wheel>
<p2:saddle xmlns:p2="https://www.adventure-works.com/schemas/OtherFeatures">
<p3:i xmlns:p3="http://www.w3.org/1999/xhtml">Anatomic design</p3:i> and made from durable leather for a full-day of riding in comfort.</p2:saddle>
…
Ad alanı URI önceki sorguda değiştirebilirsiniz için https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain.Tüm öğe düğümü alt sonra alırsınız <ProductDescription> öğesi olan Genişletilmiş QName ad alanı URI parçası olan https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain.
Uygulama kısıtlamaları
Sınırlamalar şunlardır:
- The namespace-uri() function returns instances of type xs:string instead of xs:anyURI.