Sintomi
Quando si tenta di caricare un file XML salvato come UTF-7 (formato di codifica Unicode trasferimento), il parser XML in Internet Explorer genera il seguente messaggio di errore:
Non valido al livello superiore del documento.
Lo stesso errore si verifica anche quando si utilizza il parser MSXML da uno script lato server o lato client.
Causa
Versioni del parser MSXML prima MSXML 2.6 non supportano UTF-7.
Risoluzione
Per risolvere questo problema, salvare i documenti XML come UTF-8, il formato di codifica di trasferimento migliore per Unicode.MSXML 2.6 o versione successiva supporta la codifica UTF-7.
Stato
Si tratta di un comportamento correlato alla progettazione del prodotto.
Ulteriori informazioni
Sebbene Unicode è un carattere uniforme impostato che rappresenta quasi tutte le lingue del mondo, vi sono molte le rappresentazioni in byte o formati di trasformazione, che è possibile utilizzare un file Unicode. Il formato più diffuso è UTF-8, che rappresenta i caratteri Unicode come una sequenza di uno a quattro byte a 8 bit. UTF-7 è un formato di trasformazione 7 bit definito per consentire di passare attraverso il gateway di posta che si presume che ASCII e rimuove il bit principale dei messaggi di testo di testo Unicode. Basata sullo standard XML 1.0, sezione 4.3.3, un file XML valido è necessario essere uno dei seguenti:
-
Un file Unicode in formato UTF-8.
-
Un file Unicode in formato UTF-16.
-
Un file in alcuni altri la codifica dei caratteri (ad esempio ASCII) che ha come i primo byte di
UTF-7 non utilizza l'ordine dei byte. Inoltre, UTF-7 converte il codice XML speciale carattere <+ ADw, che finisce per essere il primo carattere dell'UTF-7 codifica documento XML. Poiché non è compatibile con lo standard XML, MSXML rifiuta di caricare tali file. Molti editor di testo e i programmi di elaborazione testi consentono di salvare i file di testo Unicode, noti come testo codificato in Microsoft Word, in molte codifiche di trasferimento differenti, tra cui UTF-7. Pertanto se si salva un documento di Word come "testo codificato UTF-7", MSXML rifiuterà di caricarlo per tali motivi.
Procedura per riprodurre il comportamento
-
Creare un semplice file XML in Word 2000:
<?xml version="1.0"?><MyTag><EmbeddedTag name1="value"/></MyTag>
-
Salvare il file come testo codificato. Quando Word viene richiesto se si desidera perdere la formattazione, fare clic su Sì. Verrà quindi chiesto per un formato di codifica da utilizzare. Selezionare UTF-7e quindi salvare il documento come nome file TestUTF7.xml.
-
Caricare il nome di file cap TestUTF7.xml in Internet Explorer 5. Viene visualizzato il seguente messaggio di errore:
Non valido al livello superiore del documento. Riga 1, posizione 1 + ADw-? xml versione + AD0AIg - 1.0 + ACI-? + AD4-.
Riferimenti
Per la versione più recente Microsoft Global Software Development http://www.unicode.org/ per lo Unicode Standard più recente.Per ulteriori informazioni sullo sviluppo di soluzioni basate sul Web per Microsoft Internet Explorer, visitare i seguenti siti Web Microsoft:
http://msdn.microsoft.com/ie/ http://support.microsoft.com/iep(c) 2000, Microsoft Corporation, tutti i diritti riservati. Contributo di Jay Andrew Allen, Microsoft Corporation.