Compatibilidad con tipos de datos xml en SQLXML 4.0

Se aplica a:SQL ServerAzure SQL Database

A partir de SQL Server 2005 (9.x), SQL Server admite datos con tipo XML mediante el tipo de datos xml. En este tema se proporciona información sobre cómo SQLXML 4.0 reconoce las instancias del tipo de datos xml e implementa la compatibilidad con ellas.

Trabajar con tipos de datos xml

Para obtener más información sobre cómo trabajar con tablas SQL que implementan columnas de tipo de datos xml , se proporcionan los ejemplos siguientes:

Tarea Ejemplo Tema
Asignación e inclusión de una columna xml en una vista XML "Asignar un elemento XML a una columna de tipo de datos XML" Asignación predeterminada de elementos y atributos XSD a tablas y columnas (SQLXML 4.0)
Cómo insertar datos en una columna xml con diagramas de actualización "Insertar datos en una columna de tipo de datos XML" Insertar datos con diagramas de actualización XML (SQLXML 4.0)
Carga masiva de datos XML en una columna xml "Cargar datos de forma masiva en columnas de tipo de datos xml" Ejemplos de carga masiva XML (SQLXML 4.0)

Instrucciones y limitaciones

  • <xsd:any> no se puede asignar a una columna, incluido un tipo de datos xml . La compatibilidad con SQLXML para este escenario se proporciona a través de la anotación sql:overflow-field . Otra solución alternativa consiste en asignar un campo de tipo de datos xml como un elemento de xsd:anyType. Esta solución alternativa se muestra en el ejemplo "Asignar un elemento XML a una columna de tipo de datos XML", al que se hacía referencia en la tabla anterior.

  • No se admite la consulta XPath en el contenido de columnas de tipo de datos xml .

  • El uso de una columna de tipo de datos xml en anotaciones en las que no se admite (por ejemplo, sql:relationship y sql:key-fields) o permitido producirá errores SQL Server que los componentes de nivel intermedio no detectarán la implementación de SQLXML 4.0. Esto ocurre porque SQLXML no requiere información de tipos SQL. Es similar al comportamiento de SQLXML con otros tipos de datos, como los tipos BLOB y binario.

  • La asignación de columnas xml solo se admite para esquemas XSD. Los esquemas XDR no admiten la asignación de columnas xml .

  • SQLXML 4.0 se basa en la compatibilidad con el análisis XML que se proporciona en SQL Server. Una columna xml se puede asignar como XML con tipo o XML sin tipo. En ambos casos, SQLXML 4.0 no valida el XML de entrada. Si el XML de entrada no es válido o está bien formado, SQL Server lo notifica a SQLXML y propaga cualquier información de error pertinente que devuelva el servidor al usuario.

  • SQLXML 4.0 se basa en la compatibilidad limitada con DTD proporcionada en SQL Server. SQL Server permite un DTD interno en datos de tipo de datos xml, que se pueden usar para proporcionar valores predeterminados y reemplazar las referencias de entidad por su contenido expandido. SQLXML pasa los datos XML "tal cual" al servidor (incluida la DTD interna). Puede convertir las DTD en documentos de esquema XML (XSD) mediante herramientas de otros fabricantes y cargar los datos con esquemas XML insertados en la base de datos.

  • SQLXML 4.0 no conserva las instrucciones de procesamiento de declaraciones XML (por ejemplo, ) en función del comportamiento de SQL Server. En su lugar, la declaración XML se trata como una directiva para el analizador XML SQL Server y sus atributos (versión, codificación e independiente) se pierden después de convertir los datos en el tipo de datos xml. Los datos XML se almacenan internamente como UCS-2. Se conservan todas las demás instrucciones de procesamiento de la instancia XML; se permiten en la columna xml y pueden ser compatibles con SQLXML.

Consulte también

Datos XML (SQL Server)