OK, mari kita pisahkan pertanyaan dari karakter yang:
- sama sekali tidak valid dalam dokumen XML apa pun.
- perlu melarikan diri.
Jawaban yang diberikan oleh @dolmen dalam " Apa karakter yang tidak valid dalam XML " masih valid tetapi perlu diperbarui dengan spesifikasi XML 1.1.
1. Karakter tidak valid
Karakter yang dijelaskan di sini adalah semua karakter yang diizinkan untuk dimasukkan dalam dokumen XML.
1.1. Dalam XML 1.0
Daftar global dari karakter yang diperbolehkan adalah:
[2] Char ::= #x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF] /* any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */
Pada dasarnya, karakter kontrol dan karakter di luar rentang Unicode tidak diperbolehkan. Ini juga berarti bahwa memanggil misalnya entitas karakter 
dilarang.
1.2. Dalam XML 1.1
Daftar global dari karakter yang diperbolehkan adalah:
[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]
Revisi rekomendasi XML ini telah memperluas karakter yang diizinkan sehingga karakter kontrol diizinkan, dan memperhitungkan revisi baru standar Unicode, tetapi yang ini masih tidak diizinkan: NUL (x00) , xFFFE , xFFFF ...
Namun, penggunaan karakter kontrol dan karakter Unicode yang tidak ditentukan tidak disarankan.
Dapat juga diperhatikan bahwa semua parser tidak selalu mempertimbangkan hal ini dan dokumen XML dengan karakter kontrol dapat ditolak.
2. Karakter yang perlu melarikan diri (untuk mendapatkan dokumen yang terbentuk dengan baik):
The <
harus melarikan diri dengan <
entitas, karena diasumsikan awal tag.
The &
harus melarikan diri dengan &
entitas, karena diasumsikan awal referensi entitas
The >
harus melarikan diri dengan >
entitas. Itu tidak wajib - tergantung pada konteksnya - tetapi sangat disarankan untuk menghindarinya.
The '
harus melarikan diri dengan '
entitas - wajib di atribut yang didefinisikan dalam tanda kutip tunggal tetapi sangat disarankan untuk selalu menghindarinya.
The "
harus melarikan diri dengan "
entitas - wajib di atribut yang didefinisikan dalam tanda kutip ganda tapi sangat disarankan untuk selalu menghindarinya.