Aracılığıyla paylaş


Örnek: Şemalar xmldata ve xmlschema seçenekleri kullanarak sonuçları isteme

Belge yapısını tanımlayan xml verileri şema aşağıdaki sorgu döndürür.

Örnek

USE AdventureWorks2008R2;
GO
SELECT ProductModelID, Name
FROM Production.ProductModel
WHERE ProductModelID=122 or ProductModelID=119
FOR XML RAW, XMLDATA ;
GO

Bu sonucu verir:

<Schema name="Schema1" xmlns="urn:schemas-microsoft-com:xml-data"

xmlns:dt="urn:schemas-microsoft-com:datatypes">

<ElementType name="row" content="empty" model="closed">

<AttributeType name="ProductModelID" dt:type="i4" />

<AttributeType name="Name" dt:type="string" />

<attribute type="ProductModelID" />

<attribute type="Name" />

</ElementType>

</Schema>

<row xmlns="x-schema:#Schema1" ProductModelID="122" Name="All-Purpose Bike Stand" />

<row xmlns="x-schema:#Schema1" ProductModelID="119" Name="Bike Wash" />

Not

The <Schema> is declared as a namespace.Birden çok veri xml şemaları farklı for xml sorguları, ad tanımlayıcısını istendiğinde ad çakışmaları önlemek için Schema1 Bu örnekte, değişikliklerle her sorgu yürütme.Ad tanımlayıcısını oluşur şeman burada n bir tamsayıdır.

Belirterek XMLSCHEMA seçeneği, xsd şeması için sonuç talep edebilirsiniz

USE AdventureWorks2008R2;
GO
SELECT ProductModelID, Name
FROM Production.ProductModel
WHERE ProductModelID=122 or ProductModelID=119
FOR XML RAW, XMLSCHEMA ;
GO

Bu sonucu verir:

<xsd:schema targetNamespace="urn:schemas-microsoft-com:sql:SqlRowSet1" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="https://schemas.microsoft.com/sqlserver/2004/sqltypes" elementFormDefault="qualified">

<xsd:import namespace="https://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="https://schemas.microsoft.com/sqlserver/2004/sqltypes/sqltypes.xsd" />

<xsd:element name="row">

<xsd:complexType>

<xsd:attribute name="ProductModelID" type="sqltypes:int" use="required" />

<xsd:attribute name="Name" use="required">

<xsd:simpleType sqltypes:sqlTypeAlias="[AdventureWorks2008R2].[dbo].[Name]">

<xsd:restriction base="sqltypes:nvarchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth" sqltypes:sqlSortId="52">

<xsd:maxLength value="50" />

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:complexType>

</xsd:element>

</xsd:schema>

<row xmlns="urn:schemas-microsoft-com:sql:SqlRowSet1" ProductModelID="122" Name="All-Purpose Bike Stand" />

<row xmlns="urn:schemas-microsoft-com:sql:SqlRowSet1" ProductModelID="119" Name="Bike Wash" />

Hedef ad alanı URI, xmlschema XML için isteğe bağlı bağımsız değişkeni olarak belirtebilirsiniz.Belirtilen hedef ad alanı bu şemada döndürür.Bu hedef ad alanı her saat aynı kalır, yürütmek sorgu.Örneğin, ad alanı URI, önceki sorgu aşağıdaki değiştirilmiş sürüm içerir 'urn:example.com', gibi bir bağımsız değişken.

USE AdventureWorks2008R2;
GO
SELECT ProductModelID, Name
FROM Production.ProductModel
WHERE ProductModelID=122 or ProductModelID=119
FOR XML RAW, XMLSCHEMA ('urn:example.com') ;
GO

Bu sonucu verir:

<xsd:schema targetNamespace="urn:example.com" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sqltypes="https://schemas.microsoft.com/sqlserver/2004/sqltypes" elementFormDefault="qualified">

<xsd:import namespace="https://schemas.microsoft.com/sqlserver/2004/sqltypes" schemaLocation="https://schemas.microsoft.com/sqlserver/2004/sqltypes/sqltypes.xsd" />

<xsd:element name="row">

<xsd:complexType>

<xsd:attribute name="ProductModelID" type="sqltypes:int" use="required" />

<xsd:attribute name="Name" use="required">

<xsd:simpleType sqltypes:sqlTypeAlias="[AdventureWorks2008R2].[dbo].[Name]">

<xsd:restriction base="sqltypes:nvarchar" sqltypes:localeId="1033" sqltypes:sqlCompareOptions="IgnoreCase IgnoreKanaType IgnoreWidth" sqltypes:sqlSortId="52">

<xsd:maxLength value="50" />

</xsd:restriction>

</xsd:simpleType>

</xsd:attribute>

</xsd:complexType>

</xsd:element>

</xsd:schema>

<row xmlns="urn:example.com" ProductModelID="122" Name="All-Purpose Bike Stand" />

<row xmlns="urn:example.com" ProductModelID="119" Name="Bike Wash" />

Ayrıca bkz.

Başvuru