Kolekce schémat XML v projektech SQL

Platí pro:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceSQL databáze v Microsoft Fabric

Projekty databáze SQL podporují automatické generování objektů kolekce schémat XML ze souborů XSD (definice schématu XML). Když do projektu zahrnete soubor XSD s příslušnými metadaty, proces sestavení vytvoří CREATE XML SCHEMA COLLECTION příkaz, který můžete použít k vynucení ověření dat XML v databázi.

Kolekce schémat XML poskytují v SQL Server sloupce typu XML, které umožňují databázovému stroji ověřovat data XML na definovaných schématech a optimalizovat výkon dotazů.

Konfigurace souborů XSD v projektu

Pokud chcete vygenerovat kolekci schémat XML ze souboru XSD, přidejte Build do souboru projektu položku (.sqlproj) se dvěma požadovanými prvky metadat:

  • RelationalSchema: Schéma databáze, ve kterém je vytvořena kolekce schématu XML (například dbo)
  • XMLSchemaCollectionName: Název výsledného objektu kolekce schématu XML v databázi

Následující příklad ukazuje, jak nakonfigurovat soubor XSD v projektu SQL:

<?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říklad souboru XSD

Soubor XSD definuje strukturu, kterou musí následovat data XML. Následující příklad definuje schéma pro Order prvek obsahující jeden nebo více Item prvků:

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

Když se projekt sestaví, tento soubor XSD vygeneruje CREATE XML SCHEMA COLLECTION příkaz, který vytvoří OrderSchemaCollection objekt ve schématu dbo .

Použití zadaných sloupců XML

Po definování kolekce schématu XML na ni odkazujte v definicích tabulky a vytvořte sloupce XML typu. Typové XML sloupce ověřují data podle schématu a zvyšují výkon dotazů.

Následující příklad vytvoří tabulku se sloupcem XML typu, který používá vygenerovanou kolekci schématu:

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

Když vložíte data do sloupce OrderData, SQL Server ověří XML ve schématu OrderSchemaCollection. Neplatný kód XML, který neodpovídá schématu, je odmítnut.