Requisitos e limitações para o uso de Coleções de Esquemas XML no servidor

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de 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 modificar seu esquema XSD para que ele possa funcionar com o SQL Server. Os artigos desta seção fornecem informações adicionais sobre limitações específicas e orientações 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. Esquemas que não estão em conformidade são rejeitados pelo servidor.
<xsd:choice> O SQL Server rejeita esquemas que tenham uma partícula <xsd:choice> sem filhos, a menos que essa partícula seja definida com um valor de atributo minOccurs igual a zero.
<xsd:include> Atualmente, o SQL Server não é compatível com 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 o upload 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 reforçar a exclusividade ou estabelecer chaves e referências de chaves. Os esquemas XML que contêm esses elementos não podem ser registrados.
<xsd:redefine> O SQL Server não é compatível com esse elemento. Para obter informações sobre outra maneira de atualizar esquemas, consulte O elemento <xsd:redefine>.
Valores <xsd:simpleType> O SQL Server oferece suporte apenas à precisão de milissegundos para tipos simples que têm componentes secundários 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 XSD reconhecidas.

O SQL Server não oferece suporte ao uso 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 do 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 The xs:QName Type.
Adicionando membros a um grupo de substituição existente Não é possível adicionar membros a um grupo de substituição existente em uma coleção de esquema XML. Um grupo de substituição em um esquema XML é restrito, pois 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 para seu tipo. Para obter mais informações, consulte Canonical Forms and Pattern Restrictions.
Aspectos de enumeração O SQL Server não oferece suporte a esquemas XML com tipos que tenham facetas de padrão ou enumerações que violem essas facetas.
Comprimento do aspecto Os aspectos length, minLengthe 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> do tipo ID, mas não armazena esses valores. O escopo da aplicação da exclusividade é a instrução {CREATE | ALTER} XML SCHEMA COLLECTION.
Tipo ID O SQL Server não oferece suporte a elementos do 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>. O 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 O SQL Server não dá suporte à restrição de um tipo misto a um conteúdo simples. Para obter mais informações, consulte Mixed Type and Simple Content.
Tipo NOTATION O SQL Server não é compatível com o tipo NOTATION.
Condições de memória insuficiente Ao trabalhar com coleções de esquema XML grandes, pode ocorrer uma condição de falta de memória. Para obter soluções para esse problema, veja Coleções de esquemas XML grandes e condições de memória insuficiente.
Valores repetidos O SQL Server rejeita esquemas nos quais o atributo de bloco ou final tenham valores repetidos, como "restriction restriction" e "extension extension".
Identificadores de componente de esquema O SQL Server limita os identificadores dos componentes do esquema a um comprimento máximo de 1.000 caracteres Unicode. Além disso, não há suporte para pares de caracteres substitutos dentro de identificadores.
Informações sobre fuso horário No SQL Server 2008 (10.0.x) e versões posteriores, informações de fuso horário são totalmente compatíveis com os 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 são sempre normalizadas para o Tempo Universal Coordenado (Horário 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ável. 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).

Próximas etapas

Confira também