Componenti jolly e convalida del contenutoWildcard Components and Content Validation

I componenti jolly vengono utilizzati per consentire una maggiore flessibilità riguardo agli elementi che è possibile includere in un modello di contenuto.Wildcard components are used to increase flexibility in what is allowed to appear in a content model. Tali componenti vengono supportati nel linguaggio XSD nei modi seguenti:These components are supported in the XSD language in the following ways:

  • Elemento componenti jolly.Element wildcard components. Sono rappresentati dall'elemento <xsd:any>.These are represented by the <xsd:any> element.

  • Attributo componenti jolly.Attribute wildcard components. Sono rappresentati dall'elemento <xsd:anyAttribute>.These are represented by the <xsd:anyAttribute> element.

    Entrambi gli elementi dei caratteri jolly, <xsd:any> e <xsd:anyAttribute>, supportano l'uso di un attributo processContents.Both wildcard character elements, <xsd:any> and <xsd:anyAttribute>, support the use of a processContents attribute. Questo attributo consente di specificare un valore che indica il modo in cui le applicazioni XML gestiscono la convalida del contenuto di documenti associato a tali elementi dei caratteri jolly.This lets you specify a value that indicates how XML applications handle the validation of document content associated with these wildcard character elements. Valori diversi e relativo effetto:These are the different values and their effect:

  • Il valore strict specifica che viene eseguita la convalida completa del contenuto.The strict value specifies that the contents are fully validated.

  • Il valore skip specifica che non viene eseguita la convalida del contenuto.The skip value specifies that the contents are not validated.

  • Il valore lax specifica che viene eseguita solo la convalida di elementi e attributi per i quali sono disponibili definizioni di schemi.The lax value specifies that only elements and attributes for which schema definitions are available are validated.

Elementi della convalida lax e del tipo xs:anyTypeLax Validation and xs:anyType Elements

La specifica di XML Schema utilizza la convalida lax per elementi del tipo anyType .The XML Schema specification uses lax validation for elements of the anyType type. Poiché SQL Server 2005SQL Server 2005 non supportava la convalida di tipo lax, per gli elementi di tipo anyTypeveniva applicata la convalida di tipo strict.Because SQL Server 2005SQL Server 2005 did not support lax validation, strict validation was applied for elements of the anyType. A partire da SQL Server 2008SQL Server 2008, la convalida lax è supportata.Beginning with SQL Server 2008SQL Server 2008, lax validation is supported. Il contenuto degli elementi del tipo anyType sarà convalidato utilizzando la convalida lax.Content of elements of type anyType will be validated using lax validation.

L'esempio seguente illustra la convalida lax.The following example illustrates the lax validation. L'elemento schema e è del tipo anyType .The schema element e is of the anyType type. L'esempio crea variabili xml tipizzate e illustra la convalida lax dell'elemento di 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  

L'esempio seguente è corretto in quanto la convalida di <e> ha esito positivo: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'esempio seguente ha esito positivo.The following example succeeds. L'istanza è accettata, anche se non è definito alcun elemento <c> nello schema: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'istanza XML nell'esempio seguente è rifiutata, perché la definizione dell'elemento <a> non consente un valore della stringa.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  

Vedere ancheSee Also

Requisiti e limitazioni per l'utilizzo di raccolte di XML Schema nel serverRequirements and Limitations for XML Schema Collections on the Server