Spécifications et limitations relatives aux collections de schémas XML sur le serveur

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed Instance

La validation XSD (XML Schema Definition Language) des colonnes SQL utilisant le type de données xml est soumise à certaines limitations, lesquelles sont exposées dans le tableau suivant. Les recommandations à suivre pour modifier un schéma XSD afin qu’il soit compatible avec SQL Server y sont abordées. Les articles de cette section fournissent des informations supplémentaires concernant les limitations spécifiques, ainsi qu’une assistance pour leur utilisation.

Article Limitation
minOccurs et maxOccurs Les valeurs des attributs minOccurs et maxOccurs doivent tenir dans des entiers à 4 octets. Les schémas non conformes sont rejetés par le serveur.
<xsd:choice> SQL Server refuse les schémas comportant une particule <xsd:choice>> sans enfant, sauf si cette particule est définie avec une valeur d’attribut minOccurs de zéro.
<xsd:include> SQL Server ne prend actuellement pas en charge cet élément. Les schémas XML incluant cet élément seront rejetés par le serveur.

En guise de solution, les schémas XML qui comportent la directive <xsd:include> peuvent être prétraités de façon à copier et fusionner le contenu de tous les schémas inclus dans un seul et unique schéma à charger vers le serveur. Pour plus d’informations, consultez Prétraiter un schéma pour fusionner des schémas inclus.
<xsd:key>, <xsd:keyref> et <xsd:unique> Actuellement, SQL Server ne prend pas en charge ces contraintes basées sur XSD pour appliquer l’unicité ou établir des clés ou des références de clés. Les schémas XML contenant ces éléments ne peuvent pas être inscrits.
<xsd:redefine> SQL Server ne prend pas en charge cet élément. Pour obtenir des informations sur une autre façon de mettre à jour des schémas, consultez Élément <xsd:redefine>.
Valeurs <xsd:simpleType> SQL Server prend uniquement en charge la précision à la milliseconde pour les types simples comportant un composant seconde autre que xs:time et xs:dateTime, et une précision de 100 nanosecondes pour xs:time et xs:dateTime. SQL Server impose des limites à toutes les énumérations de types simples XSD reconnus.

SQL Server ne prend pas en charge l’utilisation de la valeur « NaN » dans les déclarations <xsd:simpleType>.

Pour plus d’informations, consultez Valeurs pour les déclarations< xsd:simpleType>.
xsi:schemaLocation et xsi:noNamespaceSchemaLocation SQL Server ignore ces attributs s’ils sont présents dans les données d’instance XML insérées dans une colonne ou une variable dont le type de données est xml.
xs:QName SQL Server ne prend pas en charge les types dérivés de xs:QName utilisant un élément de restriction de schéma XML.

SQL Server ne prend pas en charge les types union avec xs:QName en tant qu’élément de membre.

Pour plus d’informations, consultez The xs:QName Type.
Ajout de membres à un groupe de substitution existant Vous ne pouvez pas ajouter des membres à un groupe de substitution existant dans une collection de schémas XML. Un groupe de substitution dans un schéma XML est restreint en cela que l’élément de tête et tous les éléments membres doivent être définis dans la même instruction {CREATE | ALTER} XML SCHEMA COLLECTION.
Formes canoniques et restrictions de modèle La représentation canonique d’une valeur ne peut enfreindre la restriction de modèle pour son type. Pour plus d’informations, consultez Canonical Forms and Pattern Restrictions.
Facettes d'énumération SQL Server ne prend pas en charge les schémas XML avec des types présentant des facettes de modèles ou des énumérations enfreignant ces facettes.
Longueur de facette Les facettes length, minLengthet maxLength sont stockées sous la forme d'un type long , type codé sur 32 bits. Par conséquent, la plage de valeurs acceptables pour ces valeurs est 2^31.
Attribut d'ID Chaque composant de schéma XML peut avoir un attribut d'ID. SQL Server applique l’unicité des déclarations <xsd:attribute> de type ID, mais il ne stocke pas ces valeurs. L’étendue pour l’application de l’unicité est l’instruction {CREATE | ALTER} XML SCHEMA COLLECTION.
Type ID SQL Server ne prend pas en charge les éléments de type xs:ID, xs:IDREF ou xs:IDREFS. Un schéma peut ne pas déclarer les éléments de ce type, ou les éléments dérivés par restriction ou par extension de ce type.
Espace de noms local L’espace de noms local doit être spécifié explicitement pour l’élément <xsd:any>. SQL Server rejette les schémas qui utilisent une chaîne vide ("") comme valeur de l’attribut d’espace de noms. SQL Server nécessite en lieu et place l’utilisation explicite de « ##local » pour indiquer qu’un élément ou un attribut non qualifié sera utilisé en tant qu’instance du caractère générique.
Type mixte et contenu simple SQL Server ne prend pas en charge la restriction d’un type mixte à du contenu simple. Pour plus d’informations, consultez Mixed Type and Simple Content.
Type NOTATION SQL Server ne prend pas en charge le type NOTATION.
Conditions de mémoire insuffisante Lors de l’utilisation de collections de schémas XML volumineuses, des conditions de mémoire insuffisante peuvent survenir. Pour trouver des solutions à ces problèmes, consultez Collections de schémas XML volumineuses et conditions de mémoire insuffisante.
Valeurs répétées SQL Server rejette les schémas où l’attribut block ou final comporte des valeurs répétées comme « restriction restriction » et « extension extension ».
Identificateurs de composant de schéma SQL Server limite les identificateurs de composant de schéma à une longueur maximale de 1 000 caractères Unicode. De plus, l'emploi de paires de caractères de substitution au sein des identificateurs n'est pas pris en charge.
Informations sur le fuseau horaire Dans SQL Server 2008 (10.0.x) et les versions ultérieures, les informations de fuseau horaire sont totalement prises en charge pour les valeurs xs:date, xs:time et xs:dateTime pour la validation de schéma XML. Avec le mode de compatibilité descendante de SQL Server 2005 (9.x), les informations de fuseau horaire sont toujours normalisées en Temps universel coordonné (heure de Greenwich). Pour les éléments de type dateTime , le serveur convertit l’heure fournie en heure GMT en se basant sur la valeur de décalage horaire (« -05:00 ») et en retournant l’heure GMT correspondante.
Types union SQL Server ne prend pas en charge les restrictions des types union.
Décimales de précision de variable SQL Server ne prend pas en charge les décimales de précision de variable. Le type xs:decimal représente des nombres de décimales de précision arbitraire. Les processeurs XML conformes minimaux doivent prendre en charge les nombres décimaux avec un minimum de totalDigits=18. SQL Server prend en charge totalDigits=38,, mais limite les chiffres fractionnels à 10. Toutes les valeurs instanciées de xs:decimal sont représentées en interne par le serveur en utilisant le type numeric SQL (38, 10).

Étapes suivantes

Voir aussi