PROBLEMA: Mensagem de erro quando um documento XML contém caracteres de ASCII de ordem baixa

Traduções deste artigo Traduções deste artigo
ID do artigo: 315580 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Sintomas

Quando você tenta usar versões 3.0 ou posterior o MSXML analisador para analisar XML documentos que contêm determinados ordem inferior não-imprimíveis caracteres ASCII (ou seja, caracteres abaixo ASCII 32), a seguinte mensagem de erro:
Um caractere inválido foi encontrado no conteúdo de texto.

Causa

Versões 3.0 e posterior do analisador MSXML estritamente impõem os intervalos de caracteres XML válidos que são definidos pela especificação de linguagem XML do World Wide Web Consortium (W3C). Documentos XML que são analisados usando versões 3.0 ou posteriores do MSXML não podem conter caracteres que estão fora os definido intervalos de caracteres XML válidos. Os caracteres ASCII não imprimíveis de ordem inferior nos intervalos listados na "Mais informações" seção não são caracteres XML válidos. Um documento XML que contém instâncias desses caracteres não está em conformidade com as especificações do W3C e não pode ser analisado com êxito com as versões 3.0 e posterior do MSXML.

Resolução

Para resolver esse problema, remova instâncias dos caracteres ASCII não-imprimíveis de ordem inferior ou substituir os caracteres com um caractere válido alternativo como o caractere de espaço (ASCII 32, hex # x 20). Esta solução torna o documento XML compatível com as especificações do W3C. No entanto, remover ou substituir instâncias desses caracteres pode afetar outros aplicativos que usam os dados e para o qual os caracteres são significativos. Tal impacto adicional somente pode ser identificado testando e precisará ser solucionada Implementando uma correção ou solução alternativa é apropriada para uma situação específica.

Situação

Esse comportamento é por design.

Mais Informações

Versão 2.6 e versões anteriores da permissão do analisador MSXML XML documentos para conter caracteres ASCII não-imprimíveis de ordem inferior que estão fora de intervalos de caracteres W3C XML válidos. No entanto, o design de versões 3.0 e posterior do MSXML analisador foi alterado para impor estritamente XML válido caracteres intervalos definidos na especificação de linguagem XML do W3C. É necessário que essa alteração de design seja capaz de identificar documentos XML de não conformes.

A seguir estão os caracteres XML válidos e intervalos de caracteres (valores hexadecimais) conforme definido pelas especificações de idioma do W3C XML 1.0:
#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
				
a seguir estão os intervalos de caracteres para caracteres ASCII não-imprimíveis de ordem inferior que são rejeitadas por versões do MSXML 3.0 e posterior:
#x0 - #x8 (ASCII 0 - 8)
#xB - #xC (ASCII 11 - 12)
#xE - #x1F (ASCII 14 - 31)
				
essa alteração de design pode afetam os seguintes usuários e aplicativos:
  • usuários do Internet Explorer: Os usuários que têm sido usando versões do Internet Explorer 5.5 e anteriores (e que não instalaram o MSXML 3.0 no modo Replace) para procurar e exibir que documentos XML que contêm um ou mais ocorrências de ordem inferior não-imprimíveis ASCII caracteres especificados encontrar a mensagem de erro após a atualização para o Internet Explorer 6.0 porque o Internet Explorer 6.0 instala o MSXML 3.0 SP2 no modo Replace e o utiliza para analisar documentos XML.
  • usuários MDAC e ADO: Os desenvolvedores e usuários que carregar documentos XML persistentes ADO que contêm um ou mais instâncias do ASCII não-imprimível de ordem inferior especificado caracteres em objetos encontrar a mensagem de erro após a atualização para o MDAC 2.7 porque o MDAC 2.7 instala o MSXML 3.0 SP2, que é a versão do analisador MSXML que usa o objeto Recordset do ADO 2.7 do ADO Recordset.
  • aplicativos que usam o DOM (Document Object Model) do MSXML: Aplicativos que usam versão PROGIDs independentes para instanciar objetos DOM MSXML que são usados para analisar documentos XML geram o erro especificado quando o MSXML 3.0 ou um dos seus service packs é instalado no modo de substituição ou quando o código é modificado para usar o MSXML 3.0 ou versão 4.0 PROGIDs específicos.

Referências

Para obter informações adicionais sobre outras causas conhecidas e soluções alternativas para a mensagem de erro que é especificada na seção 'Sintomas', clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
238833PROBLEMA: XML Parser: caractere inválido foi encontrado no conteúdo de texto
275883INFO: Codificação de XML e métodos de interface do DOM

Propriedades

ID do artigo: 315580 - Última revisão: quinta-feira, 17 de julho de 2003 - Revisão: 1.2
A informação contida neste artigo aplica-se a:
  • Microsoft XML Parser 3.0
  • Microsoft XML Parser 3.0 Service Pack 1
  • Microsoft XML Parser 3.0 Service Pack 2
  • Microsoft XML Core Services 4.0
  • Microsoft Data Access Components 2.8
Palavras-chave: 
kbmt kbprb KB315580 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 315580

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com