modelli di contenuto non deterministiciNon-Deterministic Content Models

Prima di SQL Server 2005SQL Server 2005 Service Pack 1 (SP1), gli elementi XML Schema che contenevano modelli di contenuto non deterministici venivano rifiutati in SQL ServerSQL Server .Before SQL Server 2005SQL Server 2005 Service Pack 1 (SP1), SQL ServerSQL Server rejected XML schemas that had non-deterministic content models.

A partire da SQL Server 2005SQL Server 2005 SP1, i modelli di contenuto non deterministici vengono accettati se i vincoli di occorrenza sono 0, 1 o senza vincoli.Beginning with SQL Server 2005SQL Server 2005 SP1, however, non-deterministic content models are accepted if the occurrence constraints are 0,1, or unbounded.

Esempio: modello di contenuto non deterministico rifiutatoExample: Non-deterministic content model rejected

Nello schema dell'esempio viene illustrato il tentativo di creare un elemento XML Schema con un modello di contenuto non deterministico.The following example attempts to create an XML schema with a non-deterministic content model. Il codice ha esito negativo poiché non è possibile determinare se l'elemento <root> debba avere una sequenza di due elementi <a> oppure se l'elemento <root> debba averne due, ognuna con un elemento <a> .The code fails because it is not clear whether the <root> element should have a sequence of two <a> elements or if the <root> element should have two sequences, each with an <a> element.

CREATE XML SCHEMA COLLECTION MyCollection AS '  
<schema xmlns="http://www.w3.org/2001/XMLSchema">  
    <element name="root">  
        <complexType>  
            <sequence minOccurs="1" maxOccurs="2">  
                <element name="a" type="string" minOccurs="1" maxOccurs="2"/>  
            </sequence>  
        </complexType>  
    </element>  
</schema>  
'  
GO  

È possibile correggere lo schema spostando il vincolo di occorrenza in una posizione univoca,The schema can be fixed by moving the occurrence constraint to a unique location. ad esempio, il vincolo può essere spostato nella particella contenente la sequenza:For example, the constraint can be moved to the containing sequence particle:

<sequence minOccurs="1" maxOccurs="4">  
    <element name="a" type="string" minOccurs="1" maxOccurs="1"/>  
</sequence>  

In alternativa, il vincolo può essere spostato sull'elemento contenuto:Or the constraint can be moved to the contained element:

<sequence minOccurs="1" maxOccurs="1">  
     <element name="a" type="string" minOccurs="1" maxOccurs="4"/>  
</sequence>  

Esempio: modello di contenuto non deterministico rifiutatoExample: Non-deterministic content model accepted

Lo schema seguente verrebbe rifiutato nelle versioni di SQL ServerSQL Server precedenti a SQL Server 2005SQL Server 2005 SP1.The following schema would be rejected in versions of SQL ServerSQL Server before SQL Server 2005SQL Server 2005 SP1.

CREATE XML SCHEMA COLLECTION MyCollection AS '  
<schema xmlns="http://www.w3.org/2001/XMLSchema">  
    <element name="root">  
        <complexType>  
            <sequence minOccurs="0" maxOccurs="unbounded">  
                <element name="a" type="string" minOccurs="0" maxOccurs="1"/>  
                <element name="b" type="string" minOccurs="1" maxOccurs="unbounded"/>  
            </sequence>  
        </complexType>  
    </element>  
</schema>  
'  
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