Componentes comodín y validación del contenidoWildcard Components and Content Validation

SE APLICA A: síSQL Server noAzure SQL Database noAzure SQL Data Warehouse noAlmacenamiento de datos paralelos APPLIES TO: yesSQL Server noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Los componentes comodín se utilizan para aumentar la flexibilidad en cuanto a lo que se permite que aparezca en un modelo de contenido.Wildcard components are used to increase flexibility in what is allowed to appear in a content model. El lenguaje XSD admite estos componentes de las formas siguientes:These components are supported in the XSD language in the following ways:

  • Componentes de carácter comodín de elementos.Element wildcard components. Se representan mediante el elemento <xsd:any> .These are represented by the <xsd:any> element.

  • Componentes de carácter comodín de atributos.Attribute wildcard components. Se representan mediante el elemento <xsd:anyAttribute> .These are represented by the <xsd:anyAttribute> element.

Ambos elementos de carácter comodín, <xsd:any> y <xsd:anyAttribute> , admiten el uso de un atributo processContents.Both wildcard character elements, <xsd:any> and <xsd:anyAttribute>, support the use of a processContents attribute. Esto permite especificar un valor que indica el modo en que las aplicaciones XML controlan la validación del contenido de los documentos asociado a estos elementos de caracteres comodín.This lets you specify a value that indicates how XML applications handle the validation of document content associated with these wildcard character elements. A continuación se exponen los distintos valores y su efecto:These are the different values and their effect:

  • El valor strict especifica que se valida totalmente el contenido.The strict value specifies that the contents are fully validated.

  • El valor skip especifica que no se valida totalmente el contenidoThe skip value specifies that the contents are not validated.

  • El valor lax especifica que solo se validan los elementos y atributos para los que hay disponibles definiciones de esquema.The lax value specifies that only elements and attributes for which schema definitions are available are validated.

La validación lax y los elementos xs:anyTypeLax Validation and xs:anyType Elements

La especificación de esquemas XML utiliza la validación lax para los elementos del tipo anyType .The XML Schema specification uses lax validation for elements of the anyType type. Puesto que SQL Server 2005 (9.x)SQL Server 2005 (9.x) no admitía la validación lax, se aplicaba la validación estricta a los elementos anyType.Because SQL Server 2005 (9.x)SQL Server 2005 (9.x) did not support lax validation, strict validation was applied for elements of the anyType. A partir de SQL Server 2008SQL Server 2008, se admite la validación lax.Beginning with SQL Server 2008SQL Server 2008, lax validation is supported. El contenido de los elementos de tipo anyType se validará utilizando la validación lax.Content of elements of type anyType will be validated using lax validation.

En el ejemplo siguiente se ilustra la validación lax:The following example illustrates the lax validation. el elemento de esquema e es de tipo anyType .The schema element e is of the anyType type. El ejemplo crea variables xml con tipo e ilustra la validación lax del elemento de tipo 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  

El ejemplo siguiente funciona correctamente porque la validación de <e> es correcta: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  

El ejemplo siguiente funciona correctamente:The following example succeeds. se acepta la instancia, aunque no se haya definido ningún elemento <c> en el esquema: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  

La instancia XML del ejemplo siguiente se rechaza, porque la definición del elemento <a> no permite un valor de cadena.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  

Consulte tambiénSee Also

Requisitos y limitaciones de las colecciones de esquemas XML en el servidorRequirements and Limitations for XML Schema Collections on the Server