Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Применимо к:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL в базе данных Microsoft Fabric
Проекты базы данных SQL поддерживают автоматическое создание объектов коллекции схем XML из файлов XSD (определение схемы XML). При включении XSD-файла в проект с соответствующими метаданными процесс сборки создает CREATE XML SCHEMA COLLECTION инструкцию, которую можно использовать для принудительной проверки XML-данных в базе данных.
Коллекции схем XML предоставляют типизированные XML-столбцы в SQL Server, что позволяет ядру СУБД проверять XML-данные на основе определенных схем и оптимизировать производительность запросов.
Настройка XSD-файлов в проекте
Чтобы создать коллекцию XML-схем из XSD-файла, добавьте Build элемент в файл проекта (.sqlproj) с двумя обязательными элементами метаданных:
-
RelationalSchema: схема базы данных, в которой создается коллекция схем XML (например,
dbo) - XMLSchemaCollectionName: имя результирующего объекта коллекции схем XML в базе данных
В следующем примере показано, как настроить XSD-файл в проекте 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>
Пример XSD-файла
XSD-файл определяет структуру, которую должны следовать XML-данные. В следующем примере определяется схема для Order элемента, содержащего один или несколько Item элементов:
<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>
При сборке проекта этот XSD-файл генерирует инструкцию, которая создает объект OrderSchemaCollection в схеме dbo.
Использование типизированных XML-столбцов
После определения коллекции схем XML сослаться на нее в определениях таблиц, чтобы создать типизированные XML-столбцы. Типизированные XML-столбцы проверяют данные в схеме и повышают производительность запросов.
В следующем примере создается таблица с типизированным XML-столбцом, использующим созданную коллекцию схем:
CREATE TABLE dbo.Orders (
Id INT PRIMARY KEY,
OrderData XML(dbo.OrderSchemaCollection)
);
При вставке данных в столбец OrderData SQL Server проверяет XML на соответствие схеме OrderSchemaCollection. Недопустимый XML, который не соответствует схеме, отклоняется.