Megosztás a következőn keresztül:


XML-sémagyűjtemények SQL-projektekben

A következőre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL-adatbázis a Microsoft Fabric

Az SQL-adatbázisprojektek támogatják az XML-sémagyűjtemény-objektumok automatikus létrehozását XSD -fájlokból (XML-sémadefiníciókból). Ha a projektben egy XSD-fájlt ad meg a megfelelő metaadatokkal, a létrehozási folyamat létrehoz egy utasítást CREATE XML SCHEMA COLLECTION , amellyel érvényesítheti az XML-adatok érvényesítését az adatbázisban.

Az XML-sémagyűjtemények beírt XML-oszlopokat biztosítanak a SQL Server, így az adatbázismotor képes az XML-adatok meghatározott sémákon való érvényesítésére és a lekérdezési teljesítmény optimalizálására.

XSD-fájlok konfigurálása a projektben

Ha XML-sémagyűjteményt szeretne létrehozni egy XSD-fájlból, adjon hozzá egy Build elemet a projektfájlhoz (.sqlproj) két szükséges metaadat-elemmel:

  • RelationalSchema: Az az adatbázisséma, dboamelyben az XML-sémagyűjtemény létrejön (például )
  • XMLSchemaCollectionName: Az eredményül kapott XML-sémagyűjtemény-objektum neve az adatbázisban

Az alábbi példa bemutatja, hogyan konfigurálhat XSD-fájlokat egy SQL-projektben:

<?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>

Példa XSD-fájlra

Az XSD-fájl határozza meg az XML-adatok által követendő struktúrát. Az alábbi példa meghatározza egy olyan Order elem sémáját, amely egy vagy több Item elemet tartalmaz.

<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>

A projekt létrehozásakor ez az XSD-fájl létrehoz egy utasítást CREATE XML SCHEMA COLLECTION , amely létrehozza az OrderSchemaCollection objektumot a dbo sémában.

Beírt XML-oszlopok használata

Az XML-sémagyűjtemény definiálása után hivatkozzon rá a tábladefiníciókban a beírt XML-oszlopok létrehozásához. A beírt XML-oszlopok ellenőrzik az adatokat a sémán, és javítják a lekérdezés teljesítményét.

Az alábbi példa egy olyan táblát hoz létre, amely egy beírt XML-oszlopot tartalmaz, amely a létrehozott sémagyűjteményt használja:

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

Amikor adatokat szúr be a OrderData oszlopba, SQL Server ellenőrzi az XML-t a OrderSchemaCollection sémán. A rendszer elutasítja az érvénytelen XML-t, amely nem felel meg a sémának.