Der vorgegebene Zeichensatz für XML-Dokumente

(Auszug aus "XML in a Nutshell" von Elliotte Rusty Harold & W. Scott Means)

Bevor ein XML-Parser ein Dokument lesen kann, muss er wissen, welchen Zeichensatz und welche Kodierung das Dokument benutzt. Manchmal teilen externe Metainformationen dem Parser mit, welche Kodierung zum Einsatz kommt. Zum Beispiel könnte ein HTTP-Header einen Content-type-Header enthalten, wie im Folgenden zu sehen ist:

Content-type: text/html; charset=ISO-8859-1

Jedoch können sich XML-Parser im Allgemeinen nicht auf das Vorhandensein solcher Informationen verlassen. Und selbst wenn sie es könnten, dürfen sie nicht unbedingt davon ausgehen, dass sie auch richtig sind. Ein XML-Parser wird deshalb versuchen, den Zeichensatz auf der Grundlage der ersten Zeichen des Dokuments zu erraten. Zu den Haupttests, die der Parser durchführt, gehören die folgenden:

  • Falls die ersten zwei Bytes des Dokuments #xFEFF lauten, erkennt der Parser die Bytes als Unicode-Byte-Order-Markierung. Er geht dann davon aus, dass das Dokument in der MSB-, UTF-16-Kodierung von Unicode vorliegt. Mit diesem Wissen kann er den Rest des Dokuments lesen.
  • Falls die ersten zwei Bytes des Dokuments #xFFFE sind, erkennt der Parser die LSB-Form der Unicode-Byte-Order-Markierung. Er weiß dann, dass das Dokument in der LSB-, UCS-2-Kodierung von Unicode geschrieben wurde, und kann mit diesen Informationen den Rest des Dokuments lesen.

  • Wenn die ersten vier Bytes des Dokuments #x3C3F786D sind, das heißt die ASCII-Zeichen <?xm darstellen, nimmt der Parser an, dass die Datei in einer Obermenge von ASCII geschrieben wurde. Der Parser geht insbesondere davon aus, dass die Datei in der UTF-8-Kodierung von Unicode vorliegt. Selbst wenn diese Annahme falsch sein sollte, reicht die Information aus, um das Dokument weiter bis zur Kodierungsdeklaration zu lesen und festzustellen, um welchen Zeichensatz es sich wirklich handelt.

Parser, die EBCDIC oder UCS-4 verstehen, könnten ähnliche Heuristiken anwenden, um diese Kodierungen zu erkennen. Allerdings wird UCS-4 eigentlich noch gar nicht eingesetzt und ist vor allem von theoretischem Interesse, und EBCDIC ist eine alte Familie von Zeichensätzen, die in neuen Dokumenten nicht benutzt werden sollten. Keiner dieser Zeichensätze ist in der Praxis von Bedeutung.

  

<< zurück vor >>

 

 

 

Tipp der data2type-Redaktion:
Zum Thema XML bieten wir auch folgende Schulungen zur Vertiefung und professionellen Fortbildung an:

  


Copyright © 2005 O'Reilly Verlag GmbH & Co. KG
Für Ihren privaten Gebrauch dürfen Sie die Online-Version ausdrucken.
Ansonsten unterliegt dieses Kapitel aus dem Buch "XML in a Nutshell" denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.

O’Reilly Verlag GmbH & Co. KG, Balthasarstraße 81, 50670 Köln, kommentar(at)oreilly.de