Aracılığıyla paylaş


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.

Ayrıca bkz.

Başvuru

Kavramlar