Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Avant SQL Server 2005 Service Pack 1 (SP1), SQL Server a rejeté les schémas XML qui avaient des modèles de contenu non déterministes.
À compter de SQL Server 2005 SP1, toutefois, les modèles de contenu non déterministes sont acceptés si les contraintes d’occurrence sont 0,1 ou non liées.
Exemple : modèle de contenu non déterministe rejeté
L’exemple suivant tente de créer un schéma XML avec un modèle de contenu non déterministe. Le code échoue, car il n’est pas clair si l’élément <root> doit avoir une séquence de deux <a> éléments ou si l’élément <root> doit avoir deux séquences, chacune avec un <a> élément.
CREATE XML SCHEMA COLLECTION MyCollection AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="root">
<complexType>
<sequence minOccurs="1" maxOccurs="2">
<element name="a" type="string" minOccurs="1" maxOccurs="2"/>
</sequence>
</complexType>
</element>
</schema>
'
GO
Le schéma peut être résolu en déplaçant la contrainte d’occurrence vers un emplacement unique. Par exemple, la contrainte peut être déplacée vers la particule de la séquence qui les contient.
<sequence minOccurs="1" maxOccurs="4">
<element name="a" type="string" minOccurs="1" maxOccurs="1"/>
</sequence>
Ou la contrainte peut être déplacée vers l’élément contenu :
<sequence minOccurs="1" maxOccurs="1">
<element name="a" type="string" minOccurs="1" maxOccurs="4"/>
</sequence>
Exemple : modèle de contenu non déterministe accepté
Le schéma suivant est rejeté dans les versions de SQL Server avant SQL Server 2005 SP1.
CREATE XML SCHEMA COLLECTION MyCollection AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema">
<element name="root">
<complexType>
<sequence minOccurs="0" maxOccurs="unbounded">
<element name="a" type="string" minOccurs="0" maxOccurs="1"/>
<element name="b" type="string" minOccurs="1" maxOccurs="unbounded"/>
</sequence>
</complexType>
</element>
</schema>
'
GO
Voir aussi
Conditions requises et limitations pour les collections de schémas XML sur le serveur