Tim Tepaße: Zeichensatz für externe DTD

Beitrag lesen

Hallo Bert,

Kann der Zeichensatz einer externen DTD eingestellt werden oder ist nur
UTF-8 möglich?

Die XML Spezifikation (Dritte Auflage und früher) sagt:

»Although an XML processor is required to read only entities in the UTF-8
  and UTF-16 encodings, it is recognized that other encodings are used around
  the world, and it may be desired for XML processors to read entities that
  use them. In the absence of external character encoding information (such as
  MIME headers), parsed entities which are stored in an encoding other than
  UTF-8 or UTF-16 MUST begin with a text declaration (see 4.3.1 The Text
  Declaration) containing an encoding declaration:«
  (http://www.w3.org/TR/2004/REC-xml-20040204/#charencoding)

Ich lese daß so, daß man die Textkodierung durchaus über die Header von
HTTP mitgeben kann. Das heißt, daß Du durchaus die externe DTD in einem
anderen Zeichensatz als denen, die ein XML-Prozessor lesen muß, speichern
kannst, sofern Du diese Information mitlieferst. In externen DTDs hast
Du aber im Gegensatz zu in XML Dokumenten definierten DTDs keine andere
Möglichkeit, die Kodierung anders mitzuteilen, als über die Header.

Zudem müssen XML Prozessoren nur die beiden Unicode-Kodierungen verstehen.
Ich würde deswegen immer UTF-8 benutzen, schon allein, um auf der sicheren
Seite zu sein. Und ich kann mir auch wirklich keine Gründe vorstellen, die
einen zwingen, auf Unicode zu verzichten zu müssen. Schließlich gibt es
das schon etwas länger, die gängigen Werkzeuge unterstützen es. Wo ist
also das Problem mit Unicode?

Tim