XML 1.0 explicitly lists them; everything not permitted is forbidden
XML 1.1:
[4] NameStartChar := ":" | [A-Z] | "_" | [a-z] | [#xC0-#x02FF]
| [#x0370-#x037D] | [#x037F-#x2027]
| [#x202A-#x218F] | [#x2800-#xD7FF]
| [#xE000-#xFDCF] | [#xFDE0-#xFFEF]
| [#x10000-#x10FFFF]
[4a] NameChar := NameStartChar | "-" | "." | [0-9] | #xB7 | [#x0300-#x036F]
Many of these characters aren't defined yet in Unicode
Many of these characters are very surprising; e.g. musical and mathematical sybols