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 |
---|---|
Explica formas canônicas e restrições de padrões. |
|
Descreve as limitações da utilização de caracteres curingas, a validação incerta e quaisquer Elementos anyType com coleções de esquema XML. |
|
Explica a limitação da utilização do elemento <xsd:redefine> e descreve uma solução alternativa. |
|
Descreve a limitação relativa ao tipo xs:QName. |
|
Descreve as restrições aplicadas a declarações <xsd:simpleType>. |
|
Descreve a limitação relativa a aspectos de enumeração. |
|
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. |
Descreve as limitações relativas a modelos de conteúdo não determinístico. |