Просторуімен XML

Оскільки у різних мовах розміток — реалізаціях XML — можуть зустрітися одні й самі імена тегів та його атрибутів, мають зовсім різний зміст, треба мати можливість їх якось розрізняти. Для цього імена тегів та атрибутів забезпечують коротким префіксом, який відокремлюється від імені двокрапкою. Префікс імені зв'язується з ідентифікатором, що визначає місце імен (namespace). Усі імена тегів і атрибутів, префікси яких пов'язані з тим самим ідентифікатором, утворюють одне простір імен, у якому імена мають бути унікальні. Префікс та ідентифікатор простору імен визначаються атрибутом xmlns наступним чином:

Префікс ntb щойно визначено, але його можна використовувати у імені ntb: notebook.

Ім'я разом із префіксом, наприклад ntb:notebook чи ntb:city, називається розширеним чи уточненим ім'ям (QName, Qualified Name). Частина імені, записана після двокрапки, називається локальною частиною (local part) імені.

Атрибут xmlns може з'явитися у будь-якому елементі XML, а не лише у кореневому. Визначений ним префікс можна застосовувати в тому елементі, в якому записано атрибут xmlns, і у всіх вкладених у нього елементах. Більше того, в одному елементі можна визначити кілька просторів імен:

У вкладених елементах простір імен можна перевизначити, зв'язавши префікс з іншим ідентифікатором.

Поява імені тега без префікса в документі, що використовує простір імен, означає, що ім'я належить простору стандартних імен (default namespace). Наприклад, мова XHTML допускає застосування тегів HTML та тегів XML в одному документі. Допустимо, ми визначили тег з ім'ям title. Щоб не прийняти його за один з тегів HTML, чинимо так: