Zeichensatz-Metadaten

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

Manche Umgebungen behalten die Übersicht darüber, welche Kodierungen in welchen bestimmten Dokumenten verwendet werden. Webserver beispielsweise, die XML-Dokumente versenden, schicken ihnen einen HTTP-Header voraus, der ungefähr so aussieht:

HTTP/1.1 200 OK
Date: Sun, 28 Oct 2001 11:05:42 GMT
Server: Apache/1.3.19 (Unix) mod_jk mod_perl/1.25 mod_fastcgi/2.2.10 Connection:
close
Transfer-Encoding: chunked
Content-Type: text/xml; charset=iso-8859-1

Das Feld Content-Type des HTTP-Headers enthält den MIME-Medientyp des Dokuments. Der kann – wie hier – den Zeichensatz angeben, in dem das Dokument geschrieben ist. Wenn ein XML-Parser das Dokument von einem Webserver einliest, sollte er von dieser Information Gebrauch machen, um die Zeichenkodierung des Dokuments herauszufinden.

Viele Webserver lassen im MIME-Medientyp den Parameter charset weg. Dann wird, wenn der MIME-Medientyp text/xml ist, angenommen, dass die Zeichenkodierung US-ASCII ist. Ist der MIME-Medientyp application/xml, wird der Parser versuchen, den Zeichensatz zu erraten, indem er die ersten paar Bytes des Dokuments ausliest.

Anmerkung: Da ASCII eigentlich fast nie der geeignete Zeichensatz für ein XML-Dokument ist, wird application/xml der Vorzug gegenüber text/xml gegeben. Leider sind die meisten Webserver inklusive Apache 2.0.36 und älter so konfiguriert, dass sie standardmäßig text/xml verwenden. Wenn Sie mit einer solchen Version arbeiten, sollten Sie sich besser eine neuere verschaffen, bevor Sie XML-Dateien anbieten. Anstatt Apache zu aktualisieren, könnten Sie auch Apaches MIME-Typen korrigieren. Aber eigentlich ist eine Aktualisierung besser. Alle Apache-Versionen, die so alt sind, dass sie den falschen MIME-Typ für XML verwenden, weisen eine Reihe von Sicherheitslücken auf, die mittlerweile behoben worden sind.

Wir haben uns hier auf die MIME-Typen in HTTP-Headern konzentriert, weil das der gängigste Ort ist, an dem Zeichensatz-Metadaten auf XML-Dokumente angewendet werden. MIME-Typen werden aber genauso in manchen Dateisystemem (z. B. im BeOS), in E-Mail- und in anderen Umgebungen verwendet. Andere Systeme stellen Zeichensatz-Metadaten vielleicht wieder in einer ganz anderen Form bereit. Der Parser sollte solche Metadaten jedenfalls immer nutzen, wenn sie verfügbar sind – egal, welche Form sie annehmen. Leider sind in der Praxis nicht alle Parser und Programme so konform, wie sie sein sollten.

  

<< 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