Partilhar via


Requisitos e limitações para coleções de esquemas XML no servidor

Aplica-se a:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBase de dados SQL no Microsoft Fabric

A validação da linguagem XML de definição de esquema (XSD) tem algumas limitações relativamente às colunas SQL que utilizam o tipo de dado xml . A tabela seguinte fornece detalhes sobre essas limitações e orientações para modificar o seu esquema XSD para que possa funcionar com SQL Server. Os artigos desta secçã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 caber em inteiros de 4 bytes. Os esquemas que não conformam são rejeitados pelo servidor.
<XSD:escolha> O SQL Server rejeita esquemas que tenham uma <partícula xsd:choice> sem elementos, a menos que a partícula esteja definida com o valor do atributo minOccurs igual a zero.
<xsd:include> Atualmente, o SQL Server não suporta este elemento. Os esquemas XML que incluem este elemento são rejeitados pelo servidor.

Como solução, esquemas XML que incluem a <diretiva xsd:include> podem ser pré-processados para copiar e fundir o conteúdo de quaisquer esquemas incluídos num único esquema para upload para o servidor. Para mais informações, veja Pré-processar um Esquema para Fusão de Esquemas Incluídos.
<xsd:key>, <xsd:keyref> e <xsd:unique> Atualmente, o SQL Server não suporta estas restrições baseadas em XSD para impor a unicidade ou estabelecer chaves e referências de chaves. Os esquemas XML que contêm estes elementos não podem ser registados.
<xsd:redefinir> O SQL Server não suporta este elemento. Para informações sobre outra forma de atualizar esquemas, veja The <xsd:redefine> Element.
<valores xsd:simpleType> O SQL Server só suporta precisão de milissegundos para tipos simples que tenham componentes secundários diferentes de xs:hora e xs:dataTempo, e precisão de 100 nanossegundos para xs:hora e xs:dataTempo. O SQL Server impõe limitações a todas as enumerações simples de tipos XSD reconhecidas.

O SQL Server não suporta o uso do valor "NaN" nas <declarações xsd:simpleType> .

Para mais informações, consulte Valores para xsd:simpleType Declarações.
xsi:schemaLocalização e xsi:noNamespaceSchemaLocalização O SQL Server ignora estes atributos se estiverem presentes nos dados da instância XML inseridos numa coluna ou variável do tipo de dado xml .
xs:QName O SQL Server não suporta tipos derivados de xs:QName que usem um elemento de restrição de XML Schema.

O SQL Server não suporta tipos de união com xs:QName como elemento membro.

Para mais informações, consulte O Tipo xs:QName.
Adição de membros a um grupo de substituição existente Não podes adicionar membros a um grupo de substituição existente numa coleção de esquemas XML. Um grupo de substituição num esquema XML é limitado, pois o elemento principal e todos os seus elementos membros devem estar definidos na mesma instrução de {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 do padrão para o seu tipo. Para mais informações, consulte Formas Canónicas e Restrições de Padrões.
Facetas da enumeração O SQL Server não suporta esquemas XML com tipos que tenham facetas de padrão ou enumerações que violem essas facetas.
Comprimento das facetas As facetas de comprimento, minComprimento e maxComprimento são armazenadas como um tipo long. Este tipo é de 32 bits. Portanto, o intervalo de valores aceitáveis para estes valores é 2^31.
Atributo ID Cada componente do esquema XML pode ter um atributo ID. O SQL Server impõe a unicidade para <>declarações xsd:attribute do tipo ID, mas não armazena esses valores. O âmbito para a aplicação da unicidade é a instrução {CREATE | ALTER} XML SCHEMA COLLECTION.
Tipo de ID O SQL Server não suporta elementos do tipo xs:ID,xs:IDREF ou xs:IDREFS. Um esquema não pode declarar elementos deste tipo, nem elementos derivados por restrição ou extensão deste tipo.
Espaço de nomes local O namespace local tem de ser explicitamente especificado para o <elemento xsd:any> . O SQL Server rejeita esquemas que usam uma cadeia vazia ("") como valor para o atributo do namespace. Em vez disso, o SQL Server requer o uso explícito de "##local" para indicar um elemento ou atributo não qualificado como a instância do carácter coringa.
Tipo misto e conteúdo simples O SQL Server não suporta restringir um tipo misto a um conteúdo simples. Para mais informações, consulte Tipo Misto e Conteúdo Simples.
Tipo de NOTAÇÃO O SQL Server não suporta o tipo NOTATION.
Situações de falta de memória Ao trabalhar com grandes coleções de esquemas XML, pode ocorrer uma condição de falta de memória. Para soluções para este problema, veja Grandes Coleções de Esquemas XML e Condições de Falta de Memória.
Valores repetidos O SQL Server rejeita esquemas em que o bloco ou atributo final têm valores repetidos como "restrição restrição" e "extensão extensão".
Identificadores de componentes do esquema O SQL Server limita os identificadores dos componentes do esquema a um comprimento máximo de 1000 caracteres Unicode. Além disso, pares de caracteres substitutos dentro dos identificadores não são suportados.
Informação do fuso horário No SQL Server 2008 (10.0.x) e versões posteriores, a informação de fusos horários é totalmente suportada para os valores xs:data, xs:hora e xs:dataHora para validação do Esquema XML. Com o modo de retrocompatibilidade SQL Server 2005 (9.x), a informação dos fusos horários é sempre normalizada para Hora Universal Coordenada (Hora Média de Greenwich). Para elementos do tipo dateTime , o servidor converte a hora fornecida em GMT usando o valor de deslocamento ("-05:00") e devolvendo a correspondente hora GMT.
Tipos da União O SQL Server não suporta restrições de tipos de união.
Decimais de precisão variável O SQL Server não suporta decimais de precisão variável. O tipo xs:decimal representa números decimais de precisão arbitrária. Processadores XML minimamente conformes devem suportar números decimais com um mínimo de totalDigits=18. O SQL Server suporta totalDigits=38, , mas limita os dígitos fracionários a 10. Todos os valores instanciados xs:decimal são representados internamente pelo servidor usando o tipo SQL numérico (38, 10).

Próximos passos

Consulte também