Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Dize olarak temsil edilen $arg değerini döndürür.
Sözdizimi
fn:string() as xs:string
fn:string($arg as item()?) as xs:string
Arguments
$arg
Bir düğüm veya atomik değer.
Açıklamalar
$arg boş bir diziyse, sıfır uzunluklu dize döndürülür.
$arg bir düğümse işlev, dize-değer erişimcisi kullanılarak elde edilen düğümün dize değerini döndürür. Bu, W3C XQuery 1.0 ve XPath 2.0 Veri Modeli belirtiminde tanımlanır.
$arg atomik bir değerse işlev, aksi belirtilmediği sürece, ifadesi tarafından $arg olarak
xs:stringdöndürülen dizeyi döndürür.$arg türü ise
xs:anyURI, URI özel karakterlerden kaçmadan bir dizeye dönüştürülür.Bu uygulamada bağımsız
fn:string()değişken olmadan yalnızca bağlama bağımlı koşul bağlamında kullanılabilir. Özellikle, yalnızca köşeli ayraç içinde kullanılabilir ([ ]).
Örnekler
Bu makalede AdventureWorks veritabanındaki çeşitli xml türü sütunlarında depolanan XML örneklerine karşı XQuery örnekleri sağlanmaktadır.
A. Dize işlevini kullanma
Aşağıdaki sorgu öğenin alt öğe düğümünüProductDescription<> alır.<Features>
SELECT CatalogDescription.query('
declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
/PD:ProductDescription/PD:Features
')
FROM Production.ProductModel
WHERE ProductModelID = 19;
Kısmi sonuç aşağıdadır:
<PD:Features xmlns:PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription">
These are the product highlights.
<p1:Warranty xmlns:p1="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelWarrAndMain">
<p1:WarrantyPeriod>3 years</p1:WarrantyPeriod>
<p1:Description>parts and labor</p1:Description>
</p1:Warranty>
...
</PD:Features>
İşlevi string() belirtirseniz, belirtilen düğümün dize değerini alırsınız.
SELECT CatalogDescription.query('
declare namespace PD="https://schemas.microsoft.com/sqlserver/2004/07/adventure-works/ProductModelDescription";
string(/PD:ProductDescription[1]/PD:Features[1])
')
FROM Production.ProductModel
WHERE ProductModelID = 19;
Kısmi sonuç aşağıdadır.
These are the product highlights.
3 yearsparts and labor...
B. Çeşitli düğümlerde dize işlevini kullanma
Aşağıdaki örnekte, xml türü değişkenine bir XML örneği atanır. Çeşitli düğümlere uygulamanın string() sonucunu göstermek için sorgular belirtilir.
DECLARE @x AS XML;
SET @x = '<?xml version="1.0" encoding="UTF-8" ?>
<!-- This is a comment -->
<root>
<a>10</a>
just text
<b attr="x">20</b>
</root>
';
Aşağıdaki sorgu, belge düğümünün dize değerini alır. Bu değer, tüm alt metin düğümlerinin dize değeri birleştirilerek oluşturulur.
SELECT @x.query('string(/)');
Sonuç şu şekildedir:
This is a comment 10
just text
20
Aşağıdaki sorgu, bir işleme yönerge düğümünün dize değerini almaya çalışır. Sonuç, metin düğümü içermediğinden boş bir dizidir.
SELECT @x.query('string(/processing-instruction()[1])');
Aşağıdaki sorgu, açıklama düğümünün dize değerini alır ve metin düğümünü döndürür.
SELECT @x.query('string(/comment()[1])');
Sonuç şu şekildedir:
This is a comment