Componentes curinga e validação de conteúdoWildcard Components and Content Validation

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure nãoAzure Synapse Analytics (SQL DW) nãoParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database noAzure Synapse Analytics (SQL DW) noParallel Data Warehouse

Componentes curinga são usados para aumentar a flexibilidade do que é permitido aparecer em um modelo de conteúdo.Wildcard components are used to increase flexibility in what is allowed to appear in a content model. Esses componentes têm suporte na linguagem XSD das seguintes maneiras:These components are supported in the XSD language in the following ways:

  • Componentes curinga de elemento.Element wildcard components. Eles são representados pelo elemento <xsd:any> .These are represented by the <xsd:any> element.

  • Componentes curinga de atributo.Attribute wildcard components. Eles são representados pelo elemento <xsd:anyAttribute> .These are represented by the <xsd:anyAttribute> element.

Ambos os elementos de caractere curinga, <xsd:any> e <xsd:anyAttribute> , dão suporte ao uso de um atributo processContents.Both wildcard character elements, <xsd:any> and <xsd:anyAttribute>, support the use of a processContents attribute. Isso permite especificar um valor que indica como aplicativos XML tratam a validação do conteúdo do documento associado a esses elementos de caracteres curinga.This lets you specify a value that indicates how XML applications handle the validation of document content associated with these wildcard character elements. Estes são os diferentes valores e seus efeitos:These are the different values and their effect:

  • O valor strict especifica que o conteúdo é completamente validado.The strict value specifies that the contents are fully validated.

  • O valor skip especifica que o conteúdo não é validado.The skip value specifies that the contents are not validated.

  • O valor lax especifica que apenas elementos e atributos para os quais definições de esquema estão disponíveis são validados.The lax value specifies that only elements and attributes for which schema definitions are available are validated.

Validação incerta e elementos xs:anyTypeLax Validation and xs:anyType Elements

A especificação do Esquema XML usa validação lax para elementos do tipo anyType .The XML Schema specification uses lax validation for elements of the anyType type. Como o SQL Server 2005 (9.x)SQL Server 2005 (9.x) não dá suporte à validação incerta, a validação estrita foi aplicada para elementos do 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 do SQL Server 2008SQL Server 2008, há suporte para a validação incerta.Beginning with SQL Server 2008SQL Server 2008, lax validation is supported. Conteúdo de elementos do tipo anyType serão validados usando a validação incerta.Content of elements of type anyType will be validated using lax validation.

O exemplo a seguir ilustra a validação incerta.The following example illustrates the lax validation. O elemento do esquema e é do tipo anyType .The schema element e is of the anyType type. O exemplo cria variáveis xml com tipo e ilustra a validação incerta do elemento do 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  

O exemplo a seguir tem êxito, porque a validação de <e> tem êxito: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  

O seguinte exemplo tem êxito.The following example succeeds. A instância é aceita, embora nenhum elemento <c> esteja definido no 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  

A instância XML no exemplo a seguir é rejeitada, porque a definição do elemento <a> não permite um valor de cadeia de caracteres.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 TambémSee Also

Requisitos e limitações de uso de coleções de esquema XML no servidorRequirements and Limitations for XML Schema Collections on the Server