Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Se aplica a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL database in Microsoft Fabric
Los proyectos de base de datos SQL admiten la generación automática de objetos de colección de esquemas XML a partir de archivos XSD (definición de esquema XML). Al incluir un archivo XSD en el proyecto con los metadatos adecuados, el proceso de compilación crea una CREATE XML SCHEMA COLLECTION instrucción que puede usar para aplicar la validación de datos XML en la base de datos.
Las colecciones de esquemas XML proporcionan columnas XML con tipo en SQL Server, lo que permite que el motor de base de datos valide los datos XML con esquemas definidos y optimice el rendimiento de las consultas.
Configuración de archivos XSD en el proyecto
Para generar una colección de esquemas XML a partir de un archivo XSD, agregue un Build elemento al archivo de proyecto (.sqlproj) con dos elementos de metadatos necesarios:
-
RelationalSchema: esquema de base de datos donde se crea la colección de esquemas XML (por ejemplo,
dbo) - XMLSchemaCollectionName: nombre del objeto de colección de esquemas XML resultante en la base de datos
En el ejemplo siguiente se muestra cómo configurar un archivo XSD en un proyecto de 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>
Ejemplo de archivo XSD
El archivo XSD define la estructura que deben seguir los datos XML. En el ejemplo siguiente se define un esquema para un Order elemento que contiene uno o varios 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>
Cuando se compila el proyecto, este archivo XSD genera una CREATE XML SCHEMA COLLECTION instrucción que crea el OrderSchemaCollection objeto en el dbo esquema.
Usar columnas XML tipadas
Una vez definida la colección de esquemas XML, haga referencia a ella en definiciones de tabla para crear columnas XML con tipo. Las columnas XML tipadas validan los datos en el esquema y mejoran el rendimiento de las consultas.
En el ejemplo siguiente se crea una tabla con una columna XML con tipo que usa la colección de esquemas generada:
CREATE TABLE dbo.Orders (
Id INT PRIMARY KEY,
OrderData XML(dbo.OrderSchemaCollection)
);
Al insertar datos en la columna OrderData, SQL Server valida el XML con el esquema OrderSchemaCollection. Xml no válido que no se ajusta al esquema se rechaza.