OK, lassen Sie uns die Frage der Zeichen trennen, die:
- sind in keinem XML-Dokument gültig.
- müssen entkommen werden.
Die Antwort von @dolmen in " Was sind ungültige Zeichen in XML ?" Ist weiterhin gültig, muss jedoch mit der XML 1.1-Spezifikation aktualisiert werden.
1. Ungültige Zeichen
Die hier beschriebenen Zeichen sind alle Zeichen, die in ein XML-Dokument eingefügt werden dürfen.
1.1. In XML 1.0
Die globale Liste der zulässigen Zeichen lautet:
[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */
Grundsätzlich sind Steuerzeichen und Zeichen außerhalb der Unicode-Bereiche nicht zulässig. Dies bedeutet auch, dass das Aufrufen beispielsweise der Zeichenentität 
verboten ist.
1.2. In XML 1.1
Die globale Liste der zulässigen Zeichen lautet:
[2] Char ::= [#x1-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */
[2a] RestrictedChar ::= [#x1-#x8] | [#xB-#xC] | [#xE-#x1F] | [#x7F-#x84] | [#x86-#x9F]
Diese Überarbeitung der XML-Empfehlung hat die zulässigen Zeichen erweitert, sodass Steuerzeichen zulässig sind, und berücksichtigt eine neue Überarbeitung des Unicode-Standards. Diese sind jedoch weiterhin nicht zulässig: NUL (x00) , xFFFE , xFFFF ...
Von der Verwendung von Steuerzeichen und undefinierten Unicode-Zeichen wird jedoch abgeraten.
Es kann auch festgestellt werden, dass dies nicht immer von allen Parsern berücksichtigt wird und XML-Dokumente mit Steuerzeichen möglicherweise abgelehnt werden.
2. Zeichen, die maskiert werden müssen (um ein wohlgeformtes Dokument zu erhalten):
Das <
muss mit einer <
Entität maskiert werden, da davon ausgegangen wird, dass es der Anfang eines Tags ist.
Das &
muss mit einer &
Entität maskiert werden, da davon ausgegangen wird, dass es der Anfang einer Entitätsreferenz ist
Das >
sollte mit >
Entität maskiert werden. Es ist nicht obligatorisch - es hängt vom Kontext ab - aber es wird dringend empfohlen, ihm zu entkommen.
Das '
sollte mit einer '
Entität maskiert werden - obligatorisch in Attributen, die in einfachen Anführungszeichen definiert sind. Es wird jedoch dringend empfohlen, diese immer zu maskieren.
Das "
sollte mit einer "
Entität maskiert werden - obligatorisch in Attributen, die in doppelten Anführungszeichen definiert sind. Es wird jedoch dringend empfohlen, diese immer zu maskieren.