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.
Les composants génériques sont utilisés pour augmenter la flexibilité de ce qui est autorisé à apparaître dans un modèle de contenu. Ces composants sont pris en charge dans le langage XSD de la manière suivante :
Composants génériques d’élément. Ceux-ci sont représentés par l’élément <xsd :any> .
Composants génériques d’attribut. Elles sont représentées par l’élément <xsd :anyAttribute> .
Les éléments caractères génériques suivants, <xsd :any> et <xsd :anyAttribute>, prennent en charge l’utilisation d’un attribut processContents . Cela vous permet de spécifier une valeur qui indique comment les applications XML gèrent la validation du contenu du document associé à ces éléments de caractères génériques. Il s’agit des différentes valeurs et de leur effet :
La valeur stricte spécifie que le contenu est entièrement validé.
La valeur skip spécifie que le contenu n’est pas validé.
La valeur lax spécifie que seuls les éléments et attributs pour lesquels les définitions de schéma sont disponibles sont validés.
Validation lax et éléments xs:anyType
La spécification du schéma XML utilise la validation lax pour les éléments du type anyType . Étant donné que SQL Server 2005 n’a pas pris en charge la validation lax, la validation stricte a été appliquée pour les éléments de anyType. À compter de SQL Server 2008, la validation souple est prise en charge. Le contenu des éléments de type anyType sera validé à l’aide de la validation lax.
L’exemple suivant illustre la validation lax. L’élément e de schéma est de type anyType . L’exemple crée des variables xml typées et illustre la validation laxiste de l’élément du type anyType.
CREATE XML SCHEMA COLLECTION SC AS '
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://ns">
<element name="e" type="anyType"/>
<element name="a" type="byte"/>
<element name="b" type="string"/>
</schema>'
GO
L’exemple suivant est concluant, car la validation de <e> est réussie.
DECLARE @var XML(SC)
SET @var = '<e xmlns="http://ns"><a>1</a><b>data</b></e>'
GO
L’exemple suivant réussit. L’instance est acceptée, même si aucun élément <c> n’est défini dans le schéma :
DECLARE @var XML(SC)
SET @var = '<e xmlns="http://ns"><a>1</a><c>Wrong</c><b>data</b></e>'
GO
L’instance XML de l’exemple suivant est rejetée, car la définition de l’élément <a> n’autorise pas une valeur de chaîne.
DECLARE @var XML(SC)
SET @var = '<e xmlns="http://ns"><a>Wrong</a><b>data</b></e>'
SELECT @var
GO
Voir aussi
Conditions requises et limitations pour les collections de schémas XML sur le serveur