Aracılığıyla paylaş


xml verileri alma

SQL Server içeriği xml örnek korur ancak xml Veri modelindeki önemli olarak kabul edilir değil xml örnek yönlerini korumaz.Yani alınan bir xml örneği aynı sunucuda depolanan örnek olmayabilir, ancak aynı bilgileri içerir.

Bu konuda veritabanlarında depolandığında korunmaz xml örnekleri bölümlerini açıklar.

xml bildirimi

xml bildirim bir örneği örnek veritabanında depolandığında korunmaz.Örneğin:

CREATE TABLE T1 (Col1 int primary key, Col2 xml)
GO
INSERT INTO T1 values (1, '<?xml version="1.0" encoding="windows-1252" ?><doc></doc>')
GO
SELECT Col2
FROM T1

Sonuç <doc/>.

xml bildirim gibi <?xml version='1.0'?>, xml verileri saklarken korunur bir xml veri türü örnek.Bu, tasarım gereğidir.xml bildirim (<?... xml?>) özniteliklerini (sürüm/kodlama/stand-alone) veri yazmak için dönüştürüldükten sonra kaybolur ve xml.xml bildirim xml Ayrıştırıcı için bir yönerge olarak kabul edilir.xml verileri dahili olarak ucs-2 depolanır.XML diğer PI'ler örnek korunur.

Özniteliklerin sırası

Bir xml örnek öznitelikler sipariş korunur.Depolanan xml örnek sorguladığınızda xml türü sütun sırası, sonuç xml öznitelikleri olabilir farklı özgün xml örnek.

Öznitelik değerleri tırnak işareti

Tek tırnak ve çift tırnak işareti içine öznitelik değerleri etrafında korunmaz.Öznitelik değerleri, bir ad ve değer çifti olarak veritabanında depolanır.Tırnak işaretleri saklanır.Bir xml örnek karşı bir XQuery yürütüldüğünde, sonuç xml öznitelik değerleri çift tırnak işaretleri ile sıralanmış.

DECLARE @x xml
-- Use double quotation marks.
SET @x = '<root a="1" />'
SELECT @x
GO
DECLARE @x xml
-- Use single quotation marks.
SET @x = '<root a=''1'' />'
SELECT @x
GO

Her iki sorguları döndürür = <root a="1" />.

Ad alaný önekleri

Ad alaný önekleri korunur.Ne zaman belirttiğiniz XQuery karşı bir xml türü sütun, farklı bir ad alaný önekleri. serileştirilmiş xml sonuç döndürebileceği

DECLARE @x xml
SET @x = '<ns1:root xmlns:ns1="abc" xmlns:ns2="abc">
            <ns2:SomeElement/>
          </ns1:root>'
SELECT @x
SELECT @x.query('/*')
GO

Ad alaný öneki sonuç farklı olabilir.Örneğin:

<p1:root xmlns:p1="abc"><p1:SomeElement/></p1:root>

Ayrıca bkz.

Kavramlar