PRB: XML-Parser kann UTF-7-Dokumente nicht analysieren.


Problembeschreibung


Beim Versuch, eine XML-Datei als UTF-7 zu laden (ein Übertragungsformat für Unicode) zeigt der XML-Parser in Internet Explorer die folgende Fehlermeldung an:
Ungültig auf der obersten Ebene des Dokuments.
Der gleiche Fehler tritt auf, wenn den MSXML-Parser serverseitige oder clientseitige Skripts verwenden.

Ursache


Versionen des MSXML-Parsers vor MSXML 2.6 unterstützen UTF-7 nicht.

Fehlerbehebung


Zum Beheben dieses Problems speichern Sie die XML-Dokumente als UTF-8 unterstützt die bevorzugte Codierung Übertragungsformat für Unicode.MSXML 2.6 oder höher UTF-7-Codierung.

Status


Es handelt sich hierbei um ein beabsichtigtes Verhalten.

Weitere Informationen


Obwohl Unicode ein einheitlicher Zeichensatz ist, der fast alle Sprachen der Welt darstellt, gibt es viele Byte-Darstellungen oder Transformation-Formate, die in einer Unicode-Datei verwendet werden können. Am weitesten verbreitet ist das Format UTF-8, in dem Unicode-Zeichen als Sequenz von ein bis vier 8-Bit-Bytes dargestellt werden. UTF-7 ist ein 7-Bit-Umwandlungsformat, das definiert wurde, um Unicode-Text über E-Mail-Gateways zu übertragen. Dabei wird die ASCII-Codierung angenommen und das höchste Bit in Textnachrichten entfernt. Gemäß XML 1.0-Standard Abschnitt 4.3.3, muss eine gültige XML-Datei eine der folgenden Voraussetzungen erfüllen:
  • Eine Unicode-Datei im UTF-8-Format.
  • Eine Unicode-Datei im Format UTF-16.
  • Eine Datei in einigen anderen Zeichensatz (z. B. ASCII) aus der ersten Byte ist der
UTF-7 verwendet die Bytereihenfolge-Marke nicht. UTF-7-konvertiert die speziellen Zeichen <+ ADw, was wird das erste Zeichen des UTF-7 codiert auch XML-Dokument. Da dies nicht mit dem XML-standard kompatibel ist, verweigert MSXML um solche Dateien zu laden. Viele Texteditoren und Textverarbeitungsprogramme können Sie Unicode-Textdateien als in Microsoft Word viele unterschiedliche Verschlüsselungen einschließlich UTF-7 -codierten Text speichern. Wenn Sie ein Dokument in Word als "UTF-7 codierten Text" speichern, wird daher MSXML das Laden aus den oben genannten Gründen ablehnen.

Schritte zum Reproduzieren des Verhaltens

  1. Erstellen Sie eine einfache XML-Datei in Word 2000:
    <?xml version="1.0"?><MyTag><EmbeddedTag name1="value"/></MyTag>
  2. Speichern Sie die Datei als codierten Text. Word fragt Formatierung verlieren möchten, klicken Sie auf Ja. Word fordert dann für ein Codierungsformat verwenden. Wählen Sie UTF-7, und speichern Sie das Dokument als Cap Dateiname TestUTF7.xml.
  3. Cap Dateiname laden TestUTF7.xml in Internet Explorer 5. Sie erhalten die folgende Fehlermeldung angezeigt:
    Ungültig auf der obersten Ebene des Dokuments. Zeile 1, Position 1 + ADWS? Xml Version + AD0AIg - 1.0 + ACI-? + AD4.

Informationsquellen


Für die neueste Microsoft Global Software Development http://www.unicode.org/ für aktuelle Unicode-Standard.
Weitere Informationen zum Entwickeln von Web-Lösungen für Microsoft Internet Explorer finden Sie auf folgenden Microsoft-Websites:(c) Microsoft Corporation 2000, alle Rechte vorbehalten. Beiträge von Jay Andrew Allen, Microsoft Corporation.