Sintomas
Ao tentar carregar um ficheiro XML guardado como UTF-7 (transferência de uma formato de codificação para Unicode), o analisador de XML no Internet Explorer gera a seguinte mensagem de erro:
Inválido no nível superior do documento.
O mesmo erro também ocorre quando utiliza o analisador MSXML de script do lado do servidor ou do lado do cliente.
Causa
As versões do analisador MSXML antes do MSXML 2.6 não suportam UTF-7.
Resolução
Para resolver este problema, pode guardar documentos XML como UTF-8, o formato de codificação de transferência preferencial para Unicode.MSXML 2.6 ou posterior suporta a codificação UTF-7.
Estado
Este comportamento ocorre por predefinição.
Mais Informações
Embora o Unicode é um conjunto que representa quase todos os idiomas do mundo de caracteres uniforme, existem muitos bytes representações ou formatos de transformação, que pode utilizar um ficheiro Unicode. O formato mais popular é UTF-8, que representa caracteres Unicode como uma sequência de bytes de 8 bits de um a quatro. UTF-7 é um formato de transformação de 7 bits definido para permitir a passar através de gateways de correio que partem do princípio de ASCII e excluir o bit alto de mensagens de texto de texto Unicode. Baseado no padrão XML 1.0, ponto 4.3.3, um ficheiro XML válido tem de ser um dos seguintes:
-
Um ficheiro Unicode no formato UTF-8.
-
Um ficheiro Unicode no formato UTF-16.
-
Um ficheiro de alguns outros codificação de caracteres (por exemplo, ASCII) que tem como número de bytes respectivo primeiro o
UTF-7 não utiliza a marca de ordem de bytes. Além disso, o UTF-7 converte o XML especial de carácter <+ ADw, que termina por ser o primeiro carácter de UTF-7 codificado documento XML. Uma vez que este não é compatível com a norma XML, MSXML recusa a carregar ficheiros desse tipo. Editores de texto e processadores de muitos permitem-lhe guardar ficheiros de texto Unicode, conhecidos como codificado texto no Microsoft Word, várias codificações de transferência diferentes, incluindo UTF-7. Por isso, se guardar um documento do Word como "texto codificado UTF-7", irá recusar MSXML carregá-lo pelas razões acima.
Passos para reproduzir o comportamento
-
Crie um ficheiro XML simples no Word 2000:
<?xml version="1.0"?><MyTag><EmbeddedTag name1="value"/></MyTag>
-
Guarde o ficheiro como texto codificado em. Quando o Word pede-lhe se pretende perder a formatação, clique em Sim. O Word irá pedir-lhe para um formato de codificação a utilizar. Seleccione o UTF-7e, em seguida, guarde o documento como o nome do ficheiro cap TestUTF7.xml.
-
Nome de ficheiro de capacidade de carga TestUTF7.xml no Internet Explorer 5. Receberá a seguinte mensagem de erro:
Inválido no nível superior do documento. Linha 1, posição 1 + ADw-? xml versão + AD0AIg - 1.0 + ACI-? + AD4-.
Referências
Para a mais recente Microsoft Global Software Development http://www.unicode.org/ para a norma Unicode mais recente.Para mais informações sobre como desenvolver soluções baseadas na Web para o Microsoft Internet Explorer, visite os seguintes Web sites da Microsoft:
http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep(c) Microsoft Corporation 2000, todos os direitos reservados. Contribuições Jay Andrew Allen, Microsoft Corporation.