OK, séparons la question des personnages qui:
- ne sont pas du tout valides dans aucun document XML.
- doivent être échappés.
La réponse fournie par @dolmen dans " Quels sont les caractères non valides dans XML " est toujours valide mais doit être mise à jour avec la spécification XML 1.1.
1. Caractères non valides
Les caractères décrits ici sont tous les caractères autorisés à être insérés dans un document XML.
1.1. En XML 1.0
La liste globale des caractères autorisés est:
[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */
Fondamentalement, les caractères de contrôle et les caractères hors des plages Unicode ne sont pas autorisés. Cela signifie également que l'appel par exemple de l'entité caractère 
est interdit.
1.2. Dans XML 1.1
La liste globale des caractères autorisés est:
[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]
Cette révision de la recommandation XML a étendu les caractères autorisés afin que les caractères de contrôle soient autorisés, et prend en compte une nouvelle révision de la norme Unicode, mais celles-ci ne sont toujours pas autorisées: NUL (x00) , xFFFE , xFFFF ...
Cependant, l'utilisation de caractères de contrôle et de caractères Unicode non définis est déconseillée.
On peut également remarquer que tous les analyseurs ne prennent pas toujours cela en compte et les documents XML avec des caractères de contrôle peuvent être rejetés.
2. Caractères à échapper (pour obtenir un document bien formé):
Le <
doit être échappé avec une <
entité, car il est supposé être le début d'une balise.
Le &
doit être échappé avec une &
entité, car il est supposé être le début d'une référence d'entité
Le >
doit être échappé avec l' >
entité. Ce n'est pas obligatoire - cela dépend du contexte - mais il est fortement conseillé d'y échapper.
Le '
doit être échappé avec une '
entité - obligatoire dans les attributs définis entre guillemets simples mais il est fortement conseillé de toujours l'échapper.
Le "
devrait être échappé avec une "
entité - obligatoire dans les attributs définis entre guillemets, mais il est fortement conseillé de toujours l'échapper.