Problem mit Mime-type/Content-type
bearbeitet von
Hallo Gunnar,
die Spec ist da ein bisschen ungenau.
Zum einen schreibt sie, dass ein Dokument mit dem Prolog beginnt und erwähnt nichts von Whitespace.
Zum anderen schreibt sie, dass ein Dokument eine **Entity** ist und dass eine in UTF-8 codierte Entity mit einem BOM beginnen **darf** - nicht muss. Eine in UTF-16 codierte Entity **muss** hingegen mit einem BOM beginnen (§4.3.3).
Das ist dann aber Teil des Encodings und nicht Teil der Entity, insofern ist das BOM nicht in der document Produktion enthalten.
Zum XML-Deklaration schrubst Du noch:
> Wenn man keine braucht (bspw. um eine von UTF-8 abweichende Zeichencodierung anzugeben), kann man sie weglassen.
Genauer: um eine von UTF-8 **oder UTF-16** abweichende Codierung anzugeben, sofern es keine andere Quelle für diese Information gibt.
§4.3.3:
> 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:
und "text declaration" ist `'<?xml' VersionInfo? EncodingDecl S? '?>'`
Ich will jetzt nicht verfechten, dass man die Encoding-Angabe auf Teufelkommraus weglassen sollte. Man weiß ja nie, wann die external character encoding information mal fehlt, deshalb ist es sicherer, sie für Nichtstandardencodings drinzuhaben.
Aber vielleicht verstehe ich diesen Textsalat ja auch miss, Specs wollen hypergenau und redundanzfrei sein, mit der Folge, dass sie write-only werden…
_Rolf_
--
sumpsi - posui - obstruxi