Diretrizes e limitações de uso de coleções de esquema XML no servidor

A validação da linguagem XSD tem algumas limitações em relação a colunas SQL que usam o tipo de dados xml. A tabela a seguir fornece detalhes sobre essas limitações e diretrizes para modificação de seu esquema XSD para que ele possa funcionar com o SQL Server. Os tópicos nesta seção fornecem informações adicionais sobre limitações específicas e diretrizes para trabalhar com elas.

Item

Limitação

minOccurs e maxOccurs

Os valores dos atributos minOccurs e maxOccurs devem ser ajustados em inteiros de 4 bytes. Os esquemas que não estiverem de acordo serão rejeitados pelo servidor.

<<xsd:choice>>

O SQL Server rejeita esquemas que têm uma partícula <xsd:choice> sem filhos, a menos que a partícula seja definida com um valor do atributo minOccurs igual a zero.

<<xsd:include>>

Atualmente, o SQL Server não oferece suporte a esse elemento. Os esquemas XML que incluem esse elemento são rejeitados pelo servidor.

Como uma solução, os esquemas XML que incluem a diretiva <xsd:include> podem ser pré-processados para copiar e mesclar o conteúdo de qualquer esquema incluído em um único esquema para carregamento no servidor. Para obter mais informações, consulte Ferramenta de pré-processador para esquemas XML.

<xsd:key>, <xsd:keyref> e <xsd:unique>

Atualmente, o SQL Server não oferece suporte a essas restrições baseadas em XSD para impor exclusividade ou estabelecer chaves e referências a chaves. Os esquemas XML que contêm esses elementos não podem ser registrados.

<<xsd:redefine>>

O SQL Server não oferece suporte a esse elemento. Para obter mais informações sobre outra maneira de atualizar esquemas, consulte Elemento <xsd:redefine>.

Valores <xsd:simpleType>

O SQL Server oferece suporte apenas a precisão de milissegundos para tipos simples que têm componentes de segundos diferentes de xs:time e xs:dateTime e precisão de 100 nanossegundos para xs:time e xs:dateTime. O SQL Server impõe limitações a todas as enumerações de tipo simples de XSD reconhecidas.

O SQL Server não oferece suporte a utilização do valor "NaN" em declarações <xsd:simpleType>.

Para obter mais informações, consulte Valores para declarações <xsd:simpleType>.

xsi:schemaLocation e xsi:noNamespaceSchemaLocation

O SQL Server ignorará esses atributos se eles estiverem presentes nos dados da instância XML inseridos em uma coluna ou variável de tipo de dados xml.

xs:QName

O SQL Server não oferece suporte a tipos derivados de xs:QName que usam um elemento de restrição de Esquema XML.

O SQL Server não oferece suporte a tipos de união com xs:QName como um elemento membro.

Para obter mais informações, consulte Tipo xs:QName.

Adicionando membros a um grupo de substituição existente

Não é possível adicionar membros a um grupo de substituições existente em uma coleção de esquema XML. Um grupo de substituição em um esquema XML é restrito no sentido de que o elemento principal e todos os seus elementos membros devem ser definidos na mesma instrução {CREATE | ALTER} XML SCHEMA COLLECTION.

Formas canônicas e restrições de padrões

A representação canônica de um valor não pode violar a restrição de padrão de seu tipo. Para obter mais informações, consulte Formas canônicas e restrições de padrões.

Aspectos de enumeração

O SQL Server não oferece suporte a esquemas XML com tipos que têm aspectos padrão ou enumerações que violam essas facetas.

Comprimento do aspecto

Os aspectos length, minLength e maxLength são armazenados como um tipo long. Esse é um tipo de 32 bits. Portanto, o intervalo de valores aceitos para esses valores é de 2^31.

Atributo ID

Cada componente de esquema XML pode conter um atributo ID. O SQL Server impõe exclusividade para declarações <xsd:attribute> de tipo ID, mas não armazena esses valores. O escopo para imposição de exclusividade é a instrução {CREATE | ALTER} XML SCHEMA COLLECTION.

Tipo ID

O SQL Server não oferece suporte a elementos de tipo xs:ID, xs:IDREF ou xs:IDREFS. Um esquema pode não declarar elementos desse tipo ou elementos derivados pela restrição ou extensão desse tipo.

Namespace local

O namespace local precisa se especificado explicitamente para o elemento <xsd:any>. O SQL Server rejeita esquemas que usam uma cadeia de caracteres vazia ("") como valor do atributo namespace. Em vez disso, o SQL Server exige o uso explícito de "##local" para indicar um elemento ou atributo não qualificado, como a instância do caractere curinga.

Tipo misto e conteúdo simples

O SQL Server não oferece suporte à restrição de tipo misto a conteúdo simples. Para obter mais informações, consulte Tipo misto e conteúdo simples.

Tipo NOTATION

O SQL Server não oferece suporte ao tipo NOTATION.

Condições de memória insuficiente

Ao trabalhar com grandes coleções de esquema XML, pode ocorrer uma condição de memória insuficiente. Para obter soluções para esse problema, consulte Coleções de esquema XML grandes e condições de memória insuficiente.

Valores repetidos

O SQL Server rejeita esquemas nos quais o bloco ou o atributo final repetiu valores como "restriction restriction" e "extension extension".

Identificadores de componente de esquema

O SQL Server limita identificadores de componentes de esquema a um comprimento máximo de 1000 caracteres Unicode. Além disso, não há suporte para pares de caracteres substitutos dentro de identificadores.

Informações de fuso horário

No SQL Server 2008, há suporte completo para informações de fuso horário para valores xs:date, xs:time e xs:dateTime para validação de Esquema XML. Com o modo de compatibilidade com versões anteriores do SQL Server 2005, as informações de fuso horário sempre são normalizadas para o Tempo Universal Coordenado (Hora de Greenwich). Para elementos de tipo dateTime, o servidor converte a hora fornecida para GMT usando o valor de deslocamento ("-05:00") e retornando a hora GMT correspondente.

Tipos de união

O SQL Server não oferece suporte a restrições de tipos de união.

Decimais de precisão variáveis

O SQL Server não oferece suporte a decimais de precisão variáveis. O tipo xs:decimal representa números decimais de precisão arbitrária. Processadores XML com conformidade mínima devem oferecer suporte a números decimais com um mínimo de totalDigits=18. O SQL Server oferece suporte a totalDigits=38,, mas limita os dígitos fracionários a 10. Todos os valores xs:decimal de instância são representados internamente pelo servidor usando o tipo numérico SQL (38, 10).

Nesta seção

Tópico

Descrição

Formas canônicas e restrições de padrões

Explica formas canônicas e restrições de padrões.

Componentes curinga e validação de conteúdo

Descreve as limitações da utilização de caracteres curingas, a validação incerta e quaisquer Elementos anyType com coleções de esquema XML.

Elemento <xsd:redefine>

Explica a limitação da utilização do elemento <xsd:redefine> e descreve uma solução alternativa.

Tipo xs:QName

Descreve a limitação relativa ao tipo xs:QName.

Valores para declarações <xsd:simpleType>

Descreve as restrições aplicadas a declarações <xsd:simpleType>.

Facetas de enumeração

Descreve a limitação relativa a aspectos de enumeração.

Tipo misto e conteúdo simples

Descreve a limitação de restringir um tipo misto a um conteúdo simples.

Coleções de esquema XML grandes e condições de memória insuficiente

Fornece soluções para a condição de memória insuficiente que às vezes acontece com grandes coleções de esquema.

Modelos de conteúdo não determinístico

Descreve as limitações relativas a modelos de conteúdo não determinístico.