ad alanı-uri işlev (XQuery)
Belirtilen QName, URI ad alanını döndürür $arg xs:dize.
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ı URı'SI bölümü alınır.
Açıklamalar
Bağımsız değişken belirtilmezse, varsayılan içerik düğümdür.
SQL Server'da fn:namespace-URI() bir bağımsız değişken olmadan, yalnızca bir içerik bağımlı yüklemi içeriğinde kullanılabilir.Özellikle, yalnızca köşeli ayraçlar ([]) içinde kullanılabilir.
If $arg boş sırası, sıfır uzunluklu dize döndürdü.
If $arg bir öğe veya öznitelik düğümü olan Genişletilmiş-QName işlev yerine ad boşluğunda değil, sıfır uzunluklu dize döndürüyor
Örnekler
Bu konu, çeşitli içinde depolanan XML örnekleri karşı XQuery örnekler sağlar. XML türü sütunlarındaki AdventureWorks veritabanındaki.Konusuna genel bir bakış bu sütunların her biri için bkz: XML veri türü temsili AdventureWorks veritabanındaki.
C.Ad alanı URı'SI belirli bir düğümün alma
Aşağıdaki sorgu karşı türlenmemiş XML örnek belirtildi.Sorgu ifade, namespace-uri(/ROOT[1]), belirtilen düğüm ad alanı URı'SI parçası alır.
set @x='<ROOT><a>111</a></ROOT>'
SELECT @x.query('namespace-uri(/ROOT[1])')
QName belirtilen ad alanı URı'SI bölümü, ancak yalnızca yerel ad parçası olmadığından, sıfır uzunluklu bir dize sonucudur.
Aşağıdaki sorgu yazdınız yönergeleri karşı belirtildi XML sütun.ifade namespace-uri(/AWMI:root[1]/AWMI:Location[1]), ilk URI ad alanını döndürür <Location> öğe alt <root> öğe.
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 oluşur:
https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelManuInstructions
b.Içinde bir yüklemi namespace-URI() bağımsız değişken olmadan kullanma
Aşağıdaki sorgu karşı CatalogDescription yazılı xml sütun belirtildi.Ifade, ad alanı URı'SI öğe düğümleri döndürür olan https://www.adventure-works.com/schemas/OtherFeatures. Ad-URI() işlev, bağımsız değişken belirtilen ve içerik düğümü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=19
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>
…
Değiştirebileceğiniz önceki sorguda ad alanı URı'SI için https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain. Tüm öğe düğümü alt sonra alırsınız <ProductDescription> öğe, ad alanı URı'SI genişletilmiş QName parçasıdır https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain.
Uygulama kısıtlamaları
Sınırlamaları şunlardır:
- The namespace-uri() işlev returns instances of type xs:dize instead of xs:anyURI.