Örnek: XMLTEXT yönergeyi belirtme
Taşması sütundaki verileri kullanarak nasıl ele alınan bu örnek gösterirXMLTEXT bir deyim kullanarak açık modunu. yönergesi
Göz önündeKişi tablo.Bu tablonun birTaşma sütun depolayan XML. unconsumed bölümü
CREATE TABLE Person(PersonID varchar(5), PersonName varchar(20), Overflow nvarchar(200))
INSERT INTO Person VALUES ('P1','Joe',N'<SomeTag attr1="data">content</SomeTag>')
INSERT INTO Person VALUES ('P2','Joe',N'<SomeTag attr2="data"/>')
INSERT INTO Person VALUES ('P3','Joe',N'<SomeTag attr3="data" PersonID="P">content</SomeTag>')
Bu sorgu sütun alırKişi tablo.For the Overflow column, AttributeName is not specified, but directive is set to XMLTEXT as part of providing a universal table column name.
SELECT 1 as Tag, NULL as parent,
PersonID as [Parent!1!PersonID],
PersonName as [Parent!1!PersonName],
Overflow as [Parent!1!!XMLTEST] -- No AttributeName; XMLTEXT directive
FROM Person
FOR XML EXPLICIT
Ortaya çıkan XML Belge:
ÇünküÖznitelikAdıtaşması sütun için belirtilen ve xmltext yönergede belirtilen, için öznitelik listesi kapsayan <overflow> öğesi. <Parent> öğesinde özniteliklere eklenen
İçinPersonID <xmltext> öğe çakışmalar özniteliğinde aynı öğe düzeyinde, öğesinde öznitelik alındı PersonID <xmltext> özniteliği dikkate alınmaz olsa da, PersonID NULL. Genellikle, bir öznitelik Taşma alanındaki aynı adlı özniteliği geçersiz kılar.
Bu sonucu oluşur:
<Parent PersonID="P1" PersonName="Joe" attr1="data">content</Parent>
<Parent PersonID="P2" PersonName="Joe" attr2="data"></Parent>
<Parent PersonID="P3" PersonName="Joe" attr3="data">content</Parent>
Alt taşma verileri içeren ve aynı sorguyu belirtilen alt öğeler'deTaşma sütun, kapsayan <Parent> öğesi. alt öğeleri eklenen
Örneğin, verileri değiştirmeKişitaşması sütun artık sahip olacak şekilde alt öğeleri. tablo
TRUNCATE TABLE Person
INSERT INTO Person VALUES ('P1','Joe',N'<SomeTag attr1="data">content</SomeTag>')
INSERT INTO Person VALUES ('P2','Joe',N'<SomeTag attr2="data"/>')
INSERT INTO Person VALUES ('P3','Joe',N'<SomeTag attr3="data" PersonID="P"><name>PersonName</name></SomeTag>')
Aynı sorgu yürütüldüğünde, içindeki alt<xmltext>içine, alt öğeler olarak öğesi eklenir<Parent>öğesi:
SELECT 1 as Tag, NULL as parent,
PersonID as [Parent!1!PersonID],
PersonName as [Parent!1!PersonName],
Overflow as [Parent!1!!XMLTEXT] -- no AttributeName, XMLTEXT directive
FROM Person
FOR XML EXPLICIT
Bu sonucu oluşur:
<Parent PersonID="P1" PersonName="Joe" attr1="data">content</Parent>
<Parent PersonID="P2" PersonName="Joe" attr2="data"></Parent>
<Parent PersonID="P3" PersonName="Joe" attr3="data">
<name>PersonName</name>
</Parent>
IfÖznitelikAdıxmltext yönergesi ile belirtilen, <overflow> öğesinin özniteliklerini kapsayan <Parent> öğesi. alt niteliklerini eklenir Belirtilen adıÖznitelikAdı alt öğesi adı haline gelir.
Bu sorguÖznitelikAdı <overflow>, xmltext yönergesi ile birlikte belirtilen :
SELECT 1 as Tag, NULL as parent,
PersonID as [Parent!1!PersonID],
PersonName as [Parent!1!PersonName],
Overflow as [Parent!1!overflow!XMLTEXT] -- Overflow is AttributeName
-- XMLTEXT is a directive
FROM Person
FOR XML EXPLICIT
Bu sonucu oluşur:
<Parent PersonID="P1" PersonName="Joe">
<overflow attr1="data">content</overflow>
</Parent>
<Parent PersonID="P2" PersonName="Joe">
<overflow attr2="data" />
</Parent>
<Parent PersonID="P3" PersonName="Joe">
<overflow attr3="data" PersonID="P">
<name>PersonName</name>
</overflow>
</Parent>
Bu sorgu öğesindeyönergesi belirtilen için PersonName özniteliği.Bunun sonucundaPersonName kapsayan <Parent> öğesi. alt öğesi eklenen Özniteliklerinin<xmltext>yine de eklenmiş kapsayan için<Parent>öğe.İçeriğini<overflow>öğe alt öğeleri, e kapsayan, diğer alt öğeleri için<Parent>öğeleri.
SELECT 1 as Tag, NULL as parent,
PersonID as [Parent!1!PersonID],
PersonName as [Parent!1!PersonName!element], -- element directive
Overflow as [Parent!1!!XMLTEXT]
FROM Person
FOR XML EXPLICIT
Bu sonucu oluşur:
<Parent PersonID="P1" attr1="data">content<PersonName>Joe</PersonName>
</Parent>
<Parent PersonID="P2" attr2="data">
<PersonName>Joe</PersonName>
</Parent>
<Parent PersonID="P3" attr3="data">
<name>PersonName</name>
<PersonName>Joe</PersonName>
</Parent>
,XMLTEXT sütun veri kök öğenin özniteliklerini içerir, bu öznitelikler XML verileri şemasında gösterilen ve MSXML ayrıştırıcısının doğrulamaz sonuç XML belge parçası.Örneğin:
SELECT 1 as Tag,
0 as Parent,
N'<overflow a="1"/>' as 'overflow!1!!xmltext'
FOR XML EXPLICIT, xmldata
Bu kaynaklanır.Unutmayın, verilen şemada, taşma özniteliğia şemadan eksik:
<Schema name="Schema2"
xmlns="urn:schemas-microsoft-com:xml-data"
xmlns:dt="urn:schemas-microsoft-com:datatypes">
<ElementType name="overflow" content="mixed" model="open">
</ElementType>
</Schema>
<overflow xmlns="x-schema:#Schema2" a="1">
</overflow>