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

Aplica-se a: simSQL Server (todas as versões compatíveis) SimBanco de Dados SQL do Azure

A validação da linguagem de definição de esquema XML (XSD) apresenta 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ções
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 esquema para carregar no servidor. Para obter mais informações, veja Pré-processar um esquema para mesclar esquemas incluídos.
<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> SQL Server não oferece suporte a esse elemento. Para obter informações sobre outra maneira de atualizar esquemas, veja O elemento <xsd:redefine> Element.
Valores <xsd:simpleType> SQL Server dá suporte apenas à 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. SQL Server impõe limitações em todas as enumerações de tipo simples XSD reconhecidas.

O SQL Server não é compatível com a utilização do valor "NaN" em declarações <xsd:simpleType> .

Para obter mais informações, vejaValores para declarações <xsd:simpleType>.
xsi:schemaLocation e xsi:noNamespaceSchemaLocation 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 SQL Server não oferece suporte a tipos derivados de xs:QName que usam um elemento de restrição de Esquema XML.

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

Para obter mais informações, consulte The xs:QName Type.
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 Canonical Forms and Pattern Restrictions.
Aspectos de enumeraçã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 é 2^31.
Atributo ID Cada componente de esquema XML pode ter um atributo de ID. O SQL Server impõe a exclusividade para declarações <xsd:attribute> de tipo de ID, mas não armazena esses valores. O escopo para imposição de exclusividade é a instrução {CREATE | ALTER} XML SCHEMA COLLECTION.
Tipo ID 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 ser especificado explicitamente para o elemento <xsd:any> . SQL Server rejeita esquemas que usam uma cadeia de caracteres vazia ("") como um valor para o atributo de 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 SQL Server não oferece suporte à restrição de tipo misto a conteúdo simples. Para obter mais informações, consulte Mixed Type and Simple Content.
Tipo NOTATION 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, veja Coleções de esquemas XML grandes e condições de memória insuficiente.
Valores repetidos 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 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 e em versões posteriores, há suporte completo a 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 (9.x) , 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 SQL Server não oferece suporte a restrições de tipos de união.
Decimais de precisão variáveis 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. 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.
O elemento <xsd:redefine> Element Explica a limitação da utilização do elemento <xsd:redefine> e descreve uma solução alternativa.
O 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.
Grandes coleções de esquemas XML 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.

Consulte Também

Dados XML (SQL Server)
Comparar XML digitado com XML não digitado
Conceder permissões em uma coleção de esquemas XML
Restrição de atribuição de partícula exclusiva
Coleções de esquemas XML (SQL Server)