PRB : Analyseur XML ne peut pas analyser les Documents UTF-7


Symptômes


Lorsque vous tentez de charger un fichier XML enregistré en tant que UTF-7 (un transfert de format de codage Unicode), l’analyseur XML dans Internet Explorer génère le message d’erreur suivant :
Non valide au niveau supérieur du document.
La même erreur se produit également lors de l’utilisation de l’analyseur MSXML à partir du script côté serveur ou côté client.

Cause


Versions de l’analyseur MSXML avant MSXML 2.6 ne sont pas compatibles UTF-7.

Résolution


Pour résoudre ce problème, enregistrez vos documents XML en tant que UTF-8, le format de codage de transfert par défaut pour Unicode.MSXML 2.6 ou version ultérieure prend en charge le codage UTF-7.

Statut


Ce comportement est inhérent au produit.

Informations supplémentaires


Bien qu’Unicode soit un uniforme jeu de caractères représentant presque toutes les langues du monde, il y a plusieurs représentations d’octets, ou formats de transformation, un fichier Unicode peut utiliser. Le format le plus répandu est UTF-8, qui représente les caractères Unicode sous la forme d’une séquence d’un à quatre octets de 8 bits. UTF-7 est un format de transformation de 7 bits défini pour autoriser le texte Unicode à traverser les passerelles de messagerie qui supposent ASCII et enlever le bit élevé de messages de texte. Basé sur la norme XML 1.0, chapitre 4.3.3, un fichier XML valide est nécessaire pour être une des manières suivantes :
  • Un fichier Unicode au format UTF-8.
  • Un fichier Unicode en format UTF-16.
  • Un fichier dans un autre codage de caractère (par exemple, ASCII) qui a comme son tout premiers octets la
UTF-7 n’utilise pas la marque d’ordre d’octet. En outre, convertit UTF-7 < de caractères XML spéciaux à + ADw, qui finit par être le premier caractère de l’UTF-7 codée en document XML. Dans la mesure où cela n’est pas conforme à la norme XML, MSXML refuse de charger ces fichiers. De nombreux éditeurs de texte et de traitement de texte permettent d’enregistrer des fichiers de texte Unicode, appelés le texte codé dans Microsoft Word, de nombreux codages de transfert différents, y compris UTF-7. Ainsi, si vous enregistrez un document dans Word sous la forme « texte codé UTF-7 », MSXML refuse de charger pour les raisons susmentionnées.

Procédure pour reproduire le comportement

  1. Créer un simple fichier XML dans Word 2000 :
    <?xml version="1.0"?><MyTag><EmbeddedTag name1="value"/></MyTag>
  2. Enregistrez le fichier sous forme de texte codé. Lorsque Word vous demande si vous souhaitez perdre la mise en forme, cliquez sur Oui. Word vous invitera ensuite pour un format de codage à utiliser. Sélectionnez UTF-7et puis enregistrez le document sous le nom de fichier cap TestUTF7.xml.
  3. Charger le nom de fichier cap TestUTF7.xml dans Internet Explorer 5. Vous recevrez le message d’erreur suivant :
    Non valide au niveau supérieur du document. La ligne 1, Position 1 + ADw- ? xml version + AD0AIg - 1.0 + ACI- ? + AD4-.

Références


Pour le dernier Microsoft Global Software Development http://www.unicode.org/ pour le dernier Unicode Standard.
Pour plus d’informations sur le développement de solutions Web pour Microsoft Internet Explorer, visitez les sites Web de Microsoft à l’adresse suivante :(c) Microsoft Corporation 2000, tous droits réservés. Contributions par Jay Andrew Allen, Microsoft Corporation.