Avec l’adoption par XML de l’Unicode, c’est-à-dire l'ensemble des caractères devant être utilisés dans tous les documents, la plupart des problèmes qui se posaient précédemment pour représenter la diversité des langues et des systèmes d’écriture ont été grandement réduits. Pour ceux qui travaillent avec les formes standards des langues européennes notamment, il n’y a presque rien à faire : tout éditeur XML permet de saisir directement des caractères accentués ou d’autres caractères « non ASCII ». Ces caractères doivent être stockés dans le fichier final de manière à ce qu’ils soient directement transférables entre des systèmes différents.
Dans un document XML, il y a deux exceptions importantes : les caractères & et < ne peuvent être saisis directement, car ils ont une signification particulière, celle de balise de début. Ils doivent toujours être représentés comme des références d’entité : & ou <.