Share via


Suporte ao tipo de dados xml no SQLXML 4.0

A partir do SQL Server 2005, o SQL Server oferece suporte aos dados do tipo XML que usem o tipo de dados xml. Este tópico fornece informações sobre como o SQLXML 4.0 reconhece instâncias do tipo de dados xml e implementa o suporte para elas.

Trabalhando com tipos de dados xml

Para compreender melhor como trabalhar com tabelas SQL que implementam colunas de tipo de dados xml, os seguintes exemplos são fornecidos:

Tarefa

Exemplo

Tópico

Como mapear e incluir uma coluna xml em uma exibição XML

"Mapeando um elemento XML para uma coluna de tipo de dados XML"

Mapeamento padrão de atributos e elementos XSD para tabelas e colunas (SQLXML 4.0)

Como inserir dados em uma coluna xml com diagramas de atualização

"Inserindo dados em uma coluna de tipo de dados XML"

Inserindo dados usando diagramas de atualização XML (SQLXML 4.0)

Carregando em massa dados XML em uma coluna xml

"Carregamento em massa em colunas de tipo de dados xml"

Exemplos do XML Bulk Load (SQLXML 4.0)

Diretrizes e limitações

  • <xsd:any> não pode ser mapeado para uma coluna que inclui um tipo de dados xml. O suporte no SQLXML para este cenário é fornecido pela anotação sql:overflow-field. Outra solução alternativa é mapear um campo de tipo de dados xml como um elemento de xsd:anyType. Essa solução alternativa é demonstrada no exemplo "Mapeando um elemento XML para uma coluna de tipo de dados XML" mencionado na tabela acima.

  • Não há suporte para a consulta XPath no conteúdo das colunas de tipo de dados xml.

  • O uso de uma coluna de tipo de dados xml em anotações em que ela não seja aceita (como sql:relationship e sql:key-fields) ou permitida resultará em erros do SQL Server que não serão capturados por componentes de camada intermediária que implementam o SQLXML 4.0. Isto ocorre porque o SQLXML não exige informações do tipo SQL. Isto é semelhante ao comportamento do SQLXML para outros tipos de dados, como o BLOB e tipos binários.

  • O mapeamento de colunas xml é aceito apenas para esquemas XSD. Os esquemas XDR não têm suporte para o mapeamento de colunas xml.

  • O SQLXML 4.0 conta com o suporte de análise de XML fornecido no SQL Server. Uma coluna xml pode ser mapeada como XML digitado ou não digitado. Em qualquer um desses casos, o SQLXML 4.0 não valida o XML de entrada. Se o XML de entrada não for válido nem bem formado, o SQL Server o informará para o SQLXML e propagará todas as informações de erro relevantes retornadas pelo servidor para o usuário.

  • O SQLXML 4.0 conta com o suporte limitado para DTDs fornecido no SQL Server. O SQL Server permite um DTD interno nos dados do tipo de dados xml, os quais podem ser usados para fornecer valores padrão e para substituir referências de entidades pelo conteúdo expandido correspondente. SQLXML transmite os dados de XML "como estão" (incluindo o DTD interno) para o servidor. É possível converter documentos DTDs em Esquema XML (XSD) usando ferramentas de terceiros e carregar os dados com esquemas XSD embutidos no banco de dados.

  • O SQLXML 4.0 não preserva instruções de processamento de declaração XML (por exemplo, <?xml version='1.0'?>) com base no comportamento do SQL Server. Em vez disso, a declaração XML é tratada como uma diretiva para o analisador XML do SQL Server e seus atributos (version, encoding e standalone) são perdidos depois que os dados são convertidos no tipo de dados xml. Os dados XML são armazenados internamente como UCS-2. Todas as outras instruções de processamento na instância de XML são preservadas; elas são permitidas na coluna xml e podem ser aceitas por SQLXML.

Consulte também

Conceitos