Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применимо к: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, который не соответствует схеме, отклоняется.