Aracılığıyla paylaş


SQL projelerinde XML şema koleksiyonları

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrnekMicrosoft Fabric'teki SQL Veritabanı

SQL veritabanı projeleri, XSD (XML Şema Tanımı) dosyalarından XML şema koleksiyonu nesnelerinin otomatik olarak oluşturulmasını destekler. Projenize uygun meta verileri içeren bir XSD dosyası eklediğinizde, derleme işlemi veritabanınızda XML veri doğrulamasını zorunlu kılmak için kullanabileceğiniz bir CREATE XML SCHEMA COLLECTION deyim oluşturur.

XML şema koleksiyonları, SQL Server yazılan XML sütunları sağlayarak veritabanı altyapısının XML verilerini tanımlı şemalara göre doğrulamasını ve sorgu performansını iyileştirmesini sağlar.

Projede XSD dosyalarını yapılandırma

XSD dosyasından XML şema koleksiyonu oluşturmak için proje dosyanıza (Build) iki gerekli meta veri öğesi içeren bir .sqlproj öğe ekleyin:

  • RelationalSchema: XML şema koleksiyonunun oluşturulduğu veritabanı şeması (örneğin, dbo)
  • XMLSchemaCollectionName: Veritabanında elde edilen XML şema koleksiyonu nesnesinin adı

Aşağıdaki örnekte, BIR SQL projesinde XSD dosyasının nasıl yapılandırıldığı gösterilmektedir:

<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build">
  <Sdk Name="Microsoft.Build.Sql" Version="2.1.0" />
  <PropertyGroup>
    <Name>MyDatabase</Name>
    <DSP>Microsoft.Data.Tools.Schema.Sql.Sql170DatabaseSchemaProvider</DSP>
    <ModelCollation>1033, CI</ModelCollation>
  </PropertyGroup>
  <ItemGroup>
    <Build Include="OrderSchema.xsd">
      <RelationalSchema>dbo</RelationalSchema>
      <XMLSchemaCollectionName>OrderSchemaCollection</XMLSchemaCollectionName>
    </Build>
  </ItemGroup>
</Project>

XSD dosya örneği

XSD dosyası, XML verilerinin izlemesi gereken yapıyı tanımlar. Aşağıdaki örnek, bir veya daha fazla Order öğe içeren bir Item öğenin şemasını tanımlar:

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="Order">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="Item" type="xs:string" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Proje oluşturulduğunda, bu XSD dosyası OrderSchemaCollection nesnesini dbo şemasında oluşturan bir CREATE XML SCHEMA COLLECTION deyimi üretir.

Yazılan XML sütunlarını kullanma

XML şema koleksiyonu tanımlandıktan sonra, yazılan XML sütunları oluşturmak için tablo tanımlarında buna başvurun. Yazılan XML sütunları verileri şemaya göre doğrular ve sorgu performansını geliştirir.

Aşağıdaki örnek, oluşturulan şema koleksiyonunu kullanan, türü yazılan XML sütununa sahip bir tablo oluşturur:

CREATE TABLE dbo.Orders (
    Id INT PRIMARY KEY,
    OrderData XML(dbo.OrderSchemaCollection)
);

OrderData sütununa veri eklediğinizde SQL Server XML'yi OrderSchemaCollection şemasına göre doğrular. Şemaya uymayan geçersiz XML reddedilir.