Requisitos y limitaciones de las colecciones de esquemas XML en el servidor
Se aplica a: SQL Server Azure SQL Database Azure SQL Managed Instance
La validación del lenguaje de definición de esquemas XML (XSD) tiene algunas limitaciones relativas a las columnas SQL que usan el tipo de datos xml . En la tabla siguiente se proporcionan detalles acerca de estas limitaciones, así como directrices para modificar el esquema XSD para que funcione con SQL Server. Los temas de este artículo proporcionan información adicional sobre limitaciones específicas y orientación para trabajar con ellas.
Elemento | Limitación |
---|---|
minOccurs y maxOccurs | Los valores de los atributos minOccurs y maxOccurs deben caber en enteros de 4 bytes. El servidor rechazará los esquemas que no cumplan esta restricción. |
<xsd:choice> | SQL Server rechaza los esquemas que tienen una partícula <xsd:choice> sin elementos secundarios, a menos que la partícula se defina con un valor de atributo minOccurs igual a cero. |
<xsd:include> | Actualmente, SQL Server no admite este elemento. El servidor rechaza los esquemas XML que incluyen este elemento. Para solucionar este problema, los esquemas XML que incluyen la directiva <xsd:include> se pueden procesar previamente para copiar y combinar el contenido de todos los esquemas incluidos en un solo esquema para cargar en el servidor. Para obtener más información, vea Preprocesar un esquema para combinar esquemas incluidos. |
<xsd:key>, <xsd:keyref> y <xsd:unique> | Actualmente, SQL Server no admite estas restricciones basadas en XSD para exigir la unicidad o establecer claves y referencias de claves. Los esquemas XML que contienen estos elementos no se pueden registrar. |
<xsd:redefine> | SQL Server no admite este elemento. Para obtener más información sobre otra manera de actualizar esquemas, vea El elemento <xsd:redefine>. |
Valores <xsd:simpleType> | SQL Server solo admite una precisión de milisegundos para los tipos simples que tienen componentes de segundos distintos de xs:time y xs:dateTime, y una precisión de 100 nanosegundos para xs:time y xs:dateTime. SQL Server aplica limitaciones a todas las enumeraciones de tipo simple XSD reconocidas. SQL Server no admite el uso del valor "NaN" en declaraciones <xsd:simpleType>. Para obtener más información, vea Valores de las declaraciones <xsd:simpleType>. |
xsi:schemaLocation y xsi:noNamespaceSchemaLocation | SQL Server no tiene en cuenta estos atributos si están presentes en los datos de instancias XML insertados en una columna o variable del tipo de datos xml . |
xs:QName | SQL Server no admite los tipos derivados de xs:QName que usan un elemento de restricción de esquema XML. SQL Server no admite tipos de unión con xs:QName como elemento del miembro. Para obtener más información, consulte The xs:QName Type. |
Agregar miembros a un grupo de sustitución existente | No puede agregar miembros a un grupo de sustitución existente en una colección de esquemas XML. Un grupo de sustitución de un esquema XML está restringido en el sentido de que el elemento de encabezado y todos sus elementos miembros se deben definir en la misma instrucción {CREATE | ALTER} XML SCHEMA COLLECTION. |
Formas canónicas y restricciones de patrón | La representación canónica de un valor no puede infringir la restricción de patrón de su tipo. Para obtener más información, consulte Canonical Forms and Pattern Restrictions. |
Facetas de enumeración | SQL Server no admite los esquemas XML con tipos que tienen facetas de patrón o enumeraciones que infringen estas facetas. |
Longitud de faceta | Las facetas length, minLengthy maxLength se almacenan como tipo long . Este tipo es de 32 bits. Por tanto, el intervalo de valores aceptables para estos valores es 2^31. |
Atributo de Id. | Cada componente de esquema XML puede tener un atributo de Id. en él. SQL Server exige la unicidad de las declaraciones <xsd:attribute> de tipo ID pero no almacena estos valores. El ámbito de aplicación de la unicidad es la instrucción {CREATE | ALTER} XML SCHEMA COLLECTION. |
Tipo de Id. | SQL Server no admite elementos de tipo xs:ID, xs:IDREF o xs:IDREFS. Un esquema no puede declarar elementos de este tipo, ni elementos derivados de este tipo por restricción o extensión. |
Espacio de nombres local | El espacio de nombres local tiene que especificarse explícitamente para el elemento <xsd:any>. SQL Server rechaza esquemas que usan una cadena vacía ("") como valor para el atributo de espacio de nombres. En su lugar, SQL Server requiere el uso explícito de "##local" para indicar un elemento o atributo no calificado como instancia del carácter comodín. |
Contenido simple y de tipo mixto | SQL Server no admite la restricción de un tipo mixto a un contenido simple. Para obtener más información, consulte Mixed Type and Simple Content. |
Tipo NOTATION | SQL Server no admite el tipo NOTATION. |
Condiciones de memoria insuficiente | Cuando se trabaja con colecciones de esquemas XML de gran tamaño, puede que se produzca una condición de memoria insuficiente. Para conocer soluciones para este problema, vea Las condiciones de memoria insuficiente y las grandes colecciones de esquemas XML. |
Valores repetidos | SQL Server rechaza los esquemas en los que el atributo de bloqueo o final tiene valores repetidos como "restriction restriction" y "extension extension". |
Identificadores de componentes de esquema | SQL Server limita los identificadores de los componentes de esquema a una longitud máxima de 1000 caracteres Unicode. Tampoco se admiten los pares de caracteres complementarios en identificadores. |
Información de zona horaria | En SQL Server 2008 (10.0.x) y versiones posteriores, la información de zona horaria es completamente compatible con los valores xs:date, xs:time y xs:dateTime para la validación de esquemas XML. Con el modo de compatibilidad con versiones anteriores de SQL Server 2005 (9.x), la información de zona horaria siempre se normaliza a la hora universal coordinada (hora del meridiano de Greenwich). En el caso de los elementos de tipo dateTime , el servidor convierte la hora especificada a la hora GMT mediante el valor de desplazamiento ("-05:00") y devuelve la hora GMT correspondiente. |
Tipos de unión | SQL Server no admite las restricciones de tipos de unión. |
Decimales de precisión variable | SQL Server no admite los decimales de precisión variable. El tipo xs:decimal representa los números decimales de precisión arbitraria. Los procesadores que mínimamente cumplan con XML deben admitir números decimales con un mínimo de totalDigits=18 . SQL Server admite totalDigits=38, , pero limita a 10 los dígitos de la fracción. El servidor representa internamente todos los valores con instancias xs:decimal mediante el tipo numeric (38, 10) de SQL. |
Pasos siguientes
Formas canónicas y restricciones de patrón
Explica las formas canónicas y las restricciones de patrón.Componentes comodín y validación del contenido
Describe las limitaciones de utilizar caracteres comodín, validación lax y elementos de tipo anyType con colecciones de esquemas XML.El elemento <xsd:redefine>
Explica la limitación de usar el elemento <xsd:redefine> y describe una solución alternativa.Tipo xs:QName
Describe la limitación relacionada con el tipoxs:QName
.Valores para las declaraciones <xsd:simpleType> Describe las restricciones que se aplican a las declaraciones
<xsd:simpleType>
.Facetas de enumeración
Describe la limitación relacionada con las facetas de enumeración.Tipo mixto y contenido simple Describe la limitación que se produce al restringir un tipo mixto a un contenido simple.
Las condiciones de memoria insuficiente y las grandes colecciones de esquemas XML
Proporciona soluciones para la condición de falta de memoria que se produce en ocasiones con colecciones de esquemas de gran tamaño.Modelos de contenidos no deterministas Describe las limitaciones relacionadas con los modelos de contenido no deterministas.