Kommentar
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Applies to:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Microsoft Fabric
SQL-databasprojekt stöder automatisk generering av XML-schemasamlingsobjekt från XSD-filer (XML-schemadefinition). När du inkluderar en XSD-fil i projektet med lämpliga metadata skapar byggprocessen en CREATE XML SCHEMA COLLECTION instruktion som du kan använda för att framtvinga XML-dataverifiering i databasen.
XML-schemasamlingar tillhandahåller inskrivna XML-kolumner i SQL Server, vilket gör att databasmotorn kan verifiera XML-data mot definierade scheman och optimera frågeprestanda.
Konfigurera XSD-filer i projektet
Om du vill generera en XML-schemasamling från en XSD-fil lägger du till ett Build objekt i projektfilen (.sqlproj) med två nödvändiga metadataelement:
-
RelationalSchema: Databasschemat där XML-schemasamlingen skapas (till exempel
dbo) - XMLSchemaCollectionName: Namnet på det resulterande XML-schemasamlingsobjektet i databasen
I följande exempel visas hur du konfigurerar en XSD-fil i ett SQL-projekt:
<?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>
Exempel på XSD-fil
XSD-filen definierar strukturen som XML-data måste följa. I följande exempel definieras ett schema för ett Order element som innehåller ett eller flera Item element:
<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>
När projektet byggs genererar den här XSD-filen en CREATE XML SCHEMA COLLECTION instruktion som skapar OrderSchemaCollection objektet i dbo schemat.
Använda inskrivna XML-kolumner
När XML-schemasamlingen har definierats refererar du till den i tabelldefinitioner för att skapa inskrivna XML-kolumner. Inskrivna XML-kolumner validerar data mot schemat och förbättrar frågeprestanda.
I följande exempel skapas en tabell med en skriven XML-kolumn som använder den genererade schemasamlingen:
CREATE TABLE dbo.Orders (
Id INT PRIMARY KEY,
OrderData XML(dbo.OrderSchemaCollection)
);
När du infogar data i kolumnen OrderData verifierar SQL Server XML mot schemat OrderSchemaCollection. Ogiltig XML som inte överensstämmer med schemat avvisas.