Hallo Andreas,
vielleicht machst du dir zu viele Gedanken. Die Väter von
XML haben es so eingerichtet, dass jeder Parser anhand der ersten Zeichen eines Dokuments schnell erkennen kann welches encoding vorliegt. Zuerst wird das Byte-Order-Mark geprüft. Bei Abwesenheit werden die für UTF-16 typischen zero values gesucht. Fehlen diese, dann liegt kein double-byte encoding vor. Jetzt kann es sich nur noch um UTF-8 (multi-byte) oder ein single-byte encoding aus der CodePage-Ära handeln. Durch die genaue Festlegung des Aufbaus der
XML-Declaration im Standard ist sichergestellt, dass man problemlos das "encoding Attribut" auswerten kann. Für
XML-Dokumente ist die encoding Angabe verpflichtend, wenn es sich nicht um UTF-8 oder UTF-16 handelt. Parser sind aber nicht verpflichtet andere encodings als UTF-8 und UTF-16 zu verstehen. Alleine über diese beiden ist die Interoperabilität sicher gestellt.
Freundliche Grüße