Conditions requises et limitations pour les 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, Le tableau suivant fournit des détails sur ces limitations et instructions pour modifier votre schéma XSD afin qu’il puisse fonctionner avec SQL Server. Les articles de cette section fournissent des informations supplémentaires sur des limitations et des conseils spécifiques pour les utiliser.

Élément Limitation
minOccurs et maxOccurs Les valeurs des attributs minOccurs et maxOccurs doivent tenir dans des entiers à 4 octets. Les schémas qui ne sont pas conformes sont rejetés par le serveur.
<xsd:choice> SQL Server rejette les schémas qui ont une <particule xsd:choice> sans enfants, sauf si la particule est définie avec une valeur d’attribut minOccurs de zéro.
<xsd:include> Actuellement, SQL Server ne prend 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 incluent la <directive xsd:include> peuvent être prétraités pour copier et fusionner le contenu de tous les schémas inclus dans un schéma unique pour le chargement sur 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 et des références de clés. Les schémas XML qui contiennent ces éléments ne peuvent pas être inscrits.
<xsd:redéfinition> SQL Server ne prend pas en charge cet élément. Pour plus d’informations sur une autre façon de mettre à jour les schémas, consultez l’élément <xsd:redefine>.
<valeurs xsd:simpleType> SQL Server prend uniquement en charge la précision en millisecondes pour les types simples qui ont des composants secondaires autres que xs:time et xs:dateTime, et une précision de 100 nanosecondes pour xs:time et xs:dateTime. SQL Server met des limitations sur toutes les énumérations de type simple XSD reconnues.

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

Pour plus d’informations, consultezValeurs 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 de type de données xml .
xs:QName SQL Server ne prend pas en charge les types dérivés de xs:QName qui utilisent un élément de restriction de schéma XML.

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

Pour plus d’informations, consultez The xs:QName Type.
Ajout de membres à un groupe de substitution existant Vous ne pouvez pas ajouter de membres à un groupe de substitution existant dans une collection de schémas XML. Un groupe de substitution dans un schéma XML est limité dans la mesure où l’élément principal et tous ses éléments membres doivent être définis dans le même {CREATE | INSTRUCTION ALTER} XML SCHEMA COLLECTION.
Formes canoniques et restrictions de modèle La représentation canonique d’une valeur ne peut pas violer 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 qui ont des facettes de modèle ou des énumérations qui violent 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é pour <les déclarations xsd:attribute> du type d’ID , mais ne stocke pas ces valeurs. L’étendue de l’application de l’unicité est {CREATE | INSTRUCTION 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 pour l’attribut d’espace de noms. Au lieu de cela, SQL Server requiert l’utilisation explicite de « ##local » pour indiquer un élément ou un attribut non qualifié comme 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 à un 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 Lorsque vous travaillez avec de grandes collections de schémas XML, une condition de mémoire insuffisante peut se produire. 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 dans lesquels l’attribut bloc ou final a des valeurs répétées telles que « restriction de restriction » et « extension d’extension ».
Identificateurs de composant de schéma SQL Server limite les identificateurs des composants 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 versions ultérieures, les informations de fuseau horaire sont entièrement prises en charge pour les valeurs xs:date, xs:time et xs:dateTime pour la validation du schéma XML. Avec le mode de compatibilité descendante 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 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