Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Os projetos de bases de dados SQL suportam a geração automática de objetos de coleção de esquemas XML a partir de ficheiros XSD (XML Schema Definition). Quando inclui um ficheiro XSD no seu projeto com os metadados apropriados, o processo de compilação cria uma CREATE XML SCHEMA COLLECTION instrução que pode usar para impor validação de dados XML na sua base de dados.
Coleções de esquemas XML fornecem colunas XML tipadas no SQL Server, permitindo ao motor de base de dados validar dados XML contra esquemas definidos e otimizar o desempenho das consultas.
Configurar ficheiros XSD no projeto
Para gerar uma coleção de esquemas XML a partir de um ficheiro XSD, adicione um Build item ao seu ficheiro de projeto (.sqlproj) com dois elementos de metadados obrigatórios:
-
RelationalSchema: O esquema da base de dados onde a coleção de esquemas XML é criada (por exemplo,
dbo) - XMLSchemaCollectionName: O nome do objeto de coleção de esquemas XML resultante na base de dados
O exemplo seguinte mostra como configurar um ficheiro XSD num projeto 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>
Exemplo de ficheiro XSD
O ficheiro XSD define a estrutura que os dados XML devem seguir. O exemplo seguinte define um esquema para um Order elemento que contém um ou mais Item elementos:
<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>
Quando o projeto é construído, este ficheiro XSD gera uma CREATE XML SCHEMA COLLECTION instrução que cria o OrderSchemaCollection objeto no dbo esquema.
Utilizar colunas XML tipadas
Depois de definida a coleção de esquemas XML, referencia-a nas definições de tabelas para criar colunas XML tipadas. Colunas XML digitadas validam os dados contra o esquema e melhoram o desempenho das consultas.
O exemplo seguinte cria uma tabela com uma coluna XML tipada que utiliza a coleção de esquemas gerados:
CREATE TABLE dbo.Orders (
Id INT PRIMARY KEY,
OrderData XML(dbo.OrderSchemaCollection)
);
Quando inseres dados na coluna OrderData, SQL Server valida o XML contra o esquema OrderSchemaCollection. XML inválido que não cumpre o esquema é rejeitado.