La notion de langue est partie intégrante de la spécification XML [ recommandation Extensible Markup Language (XML) 1.1 (Second Edition)]. Elle permet de définir, de manière commune à tous les documents du Web, dans quelle langue a été écrit le contenu d'un document ou d'un élément (sous-arbre) XML.
L'objectif de cette partie de la recommandation est de standardiser la façon de décrire une langue. Les processus de traitement (ceux des vérificateurs orthographiques, mais surtout des afficheurs) pourront alors déclencher les traitements appropriés à une langue donnée. Par exemple, il devient possible, grâce à cette partie de la recommandation de juxtaposer un texte en arabe et un texte en français : l'afficheur pourra, grâce à la langue, savoir que certaines informations doivent être affichées de gauche à droite (le français) tandis que d'autres s'afficheront de droite à gauche (l'arabe).
La recommandation utilise, pour identifier de façon non ambiguë les codes pays et langues, une spécification de l'IETF [ recommandation Tags for the Identification of Languages], qui, elle-même, se repose sur les codifications de l'ISO.
Dans les documents XML eux-mêmes, tout élément est susceptible d'avoir un attribut réservé : xml:lang. Poser cet attribut sur un élément définit la langue utilisé pour tout le contenu du sous-arbre. L'utilisation de cet attribut fonctionne donc par propagation... tant qu'un nouvel élément ne vient pas contredire l'effet propagé.
Exemple
<article xml:lang="fr">
<!-- tout le contenu de l'article est par défaut en français -->
<titre>De la bonne utilisation des langues avec XML</titre>
<titre xml:lang="en">
<!-- l'effet de propagation de xml:lang="fr" s'arrête, le contenu est maintenant en anglais -->
Best use of language with XML
</titre>
</article>