Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL Database in Microsoft Fabric
SQL-databaseprojecten ondersteunen het automatisch genereren van XML-schemaverzamelingsobjecten uit XSD-bestanden (XML Schema Definition). Wanneer u een XSD-bestand in uw project opneemt met de juiste metagegevens, maakt het buildproces een CREATE XML SCHEMA COLLECTION instructie die u kunt gebruiken om XML-gegevensvalidatie in uw database af te dwingen.
XML-schemaverzamelingen bieden getypte XML-kolommen in SQL Server, waardoor de database-engine XML-gegevens kan valideren op basis van gedefinieerde schema's en queryprestaties optimaliseert.
XSD-bestanden in het project configureren
Als u een XML-schemaverzameling wilt genereren op basis van een XSD-bestand, voegt u een Build item toe aan uw projectbestand (.sqlproj) met twee vereiste metagegevenselementen:
-
RelationalSchema: het databaseschema waarin de XML-schemaverzameling wordt gemaakt (bijvoorbeeld
dbo) - XMLSchemaCollectionName: de naam van het resulterende XML-schemaverzamelingsobject in de database
In het volgende voorbeeld ziet u hoe u een XSD-bestand configureert in een SQL-project:
<?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>
Voorbeeld van XSD-bestand
Het XSD-bestand definieert de structuur die XML-gegevens moeten volgen. In het volgende voorbeeld wordt een schema gedefinieerd voor een Order element dat een of meer Item elementen bevat:
<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>
Wanneer het project wordt gebouwd, genereert dit XSD-bestand een CREATE XML SCHEMA COLLECTION instructie waarmee het OrderSchemaCollection object in het dbo schema wordt gemaakt.
Getypte XML-kolommen gebruiken
Nadat de XML-schemaverzameling is gedefinieerd, kunt u ernaar verwijzen in tabeldefinities om getypte XML-kolommen te maken. Getypte XML-kolommen valideren gegevens op basis van het schema en verbeteren de queryprestaties.
In het volgende voorbeeld wordt een tabel gemaakt met een getypte XML-kolom die gebruikmaakt van de gegenereerde schemaverzameling:
CREATE TABLE dbo.Orders (
Id INT PRIMARY KEY,
OrderData XML(dbo.OrderSchemaCollection)
);
Wanneer u gegevens invoegt in de kolom OrderData, valideert SQL Server de XML op basis van het schema OrderSchemaCollection. Ongeldige XML die niet aan het schema voldoet, wordt geweigerd.