Composants génériques et validation de contenuWildcard Components and Content Validation

Les composants génériques sont utilisés pour accroître la flexibilité en termes d'éléments pouvant apparaître dans un modèle de contenu.Wildcard components are used to increase flexibility in what is allowed to appear in a content model. Ils sont pris en charge comme suit dans le langage XSD :These components are supported in the XSD language in the following ways:

  • Composants génériques éléments.Element wildcard components. Ils sont représentés par l’élément <xsd:any>.These are represented by the <xsd:any> element.

  • Composants génériques attributs.Attribute wildcard components. Ils sont représentés par l’élément <xsd:anyAttribute>.These are represented by the <xsd:anyAttribute> element.

    Ces deux éléments de caractère générique,<xsd:any> et <xsd:anyAttribute>, prennent en charge l’utilisation d’un attribut processContents.Both wildcard character elements, <xsd:any> and <xsd:anyAttribute>, support the use of a processContents attribute. Grâce à lui, vous pouvez préciser une valeur indiquant comment les applications XML vont gérer la validation du contenu des documents associé à ces éléments de caractères génériques.This lets you specify a value that indicates how XML applications handle the validation of document content associated with these wildcard character elements. Les valeurs possibles et leurs effets sont décrits ci-dessous :These are the different values and their effect:

  • La valeur strict indique que le contenu est entièrement validé.The strict value specifies that the contents are fully validated.

  • La valeur skip indique que le contenu n'est pas validé.The skip value specifies that the contents are not validated.

  • La valeur lax indique que sont validés uniquement les éléments et les attributs pour lesquels des définitions de schéma sont disponibles.The lax value specifies that only elements and attributes for which schema definitions are available are validated.

Validation de type lax et éléments xs:anyTypeLax Validation and xs:anyType Elements

La spécification de schéma XML utilise la validation de type lax pour les éléments du type anyType .The XML Schema specification uses lax validation for elements of the anyType type. Étant donné que SQL Server 2005SQL Server 2005 ne prenait pas en charge la validation de type lax, la validation de type strict était appliquée aux éléments de type anyType.Because SQL Server 2005SQL Server 2005 did not support lax validation, strict validation was applied for elements of the anyType. À compter de SQL Server 2008SQL Server 2008, la validation de type lax est prise en charge.Beginning with SQL Server 2008SQL Server 2008, lax validation is supported. Le contenu des éléments de type anyType sera validé à l'aide de la validation de type lax.Content of elements of type anyType will be validated using lax validation.

L'exemple suivant illustre la validation de type lax.The following example illustrates the lax validation. L'élément de schéma e est de type anyType .The schema element e is of the anyType type. L'exemple crée des variables xml typées et illustre la validation de type lax de l'élément de type anyType .The example creates typed xml variables and illustrates the lax validation of the element of the anyType type.

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 ci-dessous aboutit, car la validation de <e> réussit.The following example succeeds, because the validation of <e> is successful:

DECLARE @var XML(SC)  
SET @var = '<e xmlns="http://ns"><a>1</a><b>data</b></e>'  
GO  

L'exemple ci-dessous aboutit.The following example succeeds. L'instance est acceptée, bien qu'aucun élément <c> ne soit défini dans le schéma :The instance is accepted, even though no element <c> is defined in the schema:

DECLARE @var XML(SC)  
SET @var = '<e xmlns="http://ns"><a>1</a><c>Wrong</c><b>data</b></e>'  
GO  

L'instance XML dans l'exemple suivant est rejetée car la définition de l'élément <a> n'autorise pas de valeur de chaîne.The XML instance in the following example is rejected, because the definition of the <a> element does not allow a string value.

DECLARE @var XML(SC)  
SET @var = '<e xmlns="http://ns"><a>Wrong</a><b>data</b></e>'  
SELECT @var  
GO  

Voir aussiSee Also

Spécifications et limitations relatives aux collections de schémas XML sur le serveurRequirements and Limitations for XML Schema Collections on the Server