Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Modelos de conteúdo não determinísticos são aceites no SQL Server se as restrições de ocorrência forem 0, 1 ou ilimitadas.
Antes do SQL Server 2005 (9.x) Service Pack 1 (SP1), o SQL Server rejeitava esquemas XML que tinham modelos de conteúdo não determinísticos.
Exemplo: Modelo de conteúdo não determinístico rejeitado
O exemplo seguinte tenta criar um esquema XML com um modelo de conteúdo não determinístico. O código falha porque não é claro se o <root> elemento deve ter uma sequência de dois <a> elementos ou se <root> deve ter duas sequências, cada uma com um <a> elemento.
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
O esquema pode ser corrigido movendo a restrição de ocorrência para um local único. Por exemplo, a restrição pode ser movida para a partícula que contém a sequência.
<sequence minOccurs="1" maxOccurs="4">
<element name="a" type="string" minOccurs="1" maxOccurs="1"/>
</sequence>
Ou a restrição pode ser movida para o elemento contido:
<sequence minOccurs="1" maxOccurs="1">
<element name="a" type="string" minOccurs="1" maxOccurs="4"/>
</sequence>
Exemplo: Modelo de conteúdo não determinístico aceite
O seguinte esquema seria rejeitado nas versões anteriores ao SQL Server 2005 (9.x) 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