PRB: XML-Parser kan UTF-7 documenten niet parseren


Symptomen


Tijdens het laden van een XML-bestand opgeslagen als UTF-7 (een transfer indeling voor Unicode-codering), genereert de XML-parser in Internet Explorer het volgende foutbericht weergegeven:
Ongeldig op het hoogste niveau van het document.
Het probleem treedt ook op als u de MSXML-parser van server-side en client-side script.

Oorzaak


Versies van de MSXML-parser voor MSXML 2.6 bieden geen ondersteuning voor UTF-7.

Oplossing


U lost dit probleem, opslaan in XML-documenten als UTF-8, ondersteunt de voorkeur overdracht coderingsindeling voor Unicode.MSXML 2.6 of hoger codering UTF-7.

Status


Dit gedrag is inherent aan het ontwerp van het product.

Meer informatie


Unicode is een uniforme tekenset die bijna alle wereld talen, zijn er veel verklaringen byte of transformatie-indelingen, die een Unicode-bestand kunt gebruiken. De meest populaire indeling is UTF-8, die als een reeks bytes van een tot vier 8-bits Unicode-tekens. UTF-7 is een 7-bits omzettingsindeling gedefinieerd, zodat de Unicode-tekst via gateways voor e-mail die wordt ervan uitgegaan dat ASCII en het verwijderen van de hoge bit van tekstberichten. Op basis van de XML 1.0-standaard punt 4.3.3, een geldig XML-bestand is vereist voor een van de volgende:
  • Een Unicode-bestand in de indeling UTF-8.
  • Een Unicode-bestand in de indeling UTF-16.
  • Een bestand in een andere codering (bijvoorbeeld ASCII) die als de eerste bytes is de
UTF-7 wordt niet gebruikt voor de Byte Order Mark. UTF-7 converteert de XML speciale teken <+ ADw, die uiteindelijk wordt het eerste teken van de UTF-7 gecodeerde ook XML-document. Aangezien dit niet in overeenstemming met de XML-standaard, wordt MSXML weigert om dergelijke bestanden te laden. Veel teksteditors en tekstverwerkingsprogramma's, kunt u Unicode-tekstbestanden, bekend als gecodeerde tekst in Microsoft Word, in veel verschillende overdracht coderingen, met inbegrip van UTF-7 opslaan. Dus als u een document in Word opslaat als "gecodeerde tekst UTF-7", weigert MSXML te laden om deze redenen.

Stappen om het probleem te reproduceren

  1. Een eenvoudige XML-bestand maken in Word 2000:
    <?xml version="1.0"?><MyTag><EmbeddedTag name1="value"/></MyTag>
  2. Het bestand als gecodeerde tekstopslaat. Wanneer wordt gevraagd of u wilt opmaak verloren gaan, klikt u op Ja. Word vervolgens wordt u gevraagd een indeling te gebruiken. Selecteer UTF-7, en het document vervolgens opslaan als bestandsnaam cap TestUTF7.xml.
  3. Cap-bestand de naam TestUTF7.xml in Internet Explorer 5 laden. U ontvangt het volgende foutbericht weergegeven:
    Ongeldig op het hoogste niveau van het document. Regel 1, positie 1 + ADw-? xml version + AD0AIg - 1.0 + ACI-? + AD4-.

Verwijzingen


Voor de meest recente Microsoft Global Software Development http://www.unicode.org/ voor de meest recente Unicode-standaard.
Ga naar de volgende Microsoft-websites voor meer informatie over het ontwerpen van weboplossingen voor Microsoft Internet Explorer:(c) Microsoft Corporation 2000, alle rechten voorbehouden. Bijdragen door Jay Andrew Allen, Microsoft Corporation.