Простір імен (XML)

Простір імен в XML - це стандарт, що описує іменовану сукупність імен елементів і атрибутів, що служить для забезпечення їх унікальності в XML -документі.

У грудні 2009 року третя редакція стандарту отримала статус рекомендації.

Всі імена елементів в межах простору імен повинні бути унікальні.

XML-документ може містити імена елементів і атрибутів з декількох словників XML. У кожному словнику задано свій простір імен - так вирішується проблема неоднозначності імен елементів і атрибутів.

Візьмемо, наприклад, простий XML, який містить посилання на покупця і на замовлений продукт. І елементи покупця, і елементи продукту можуть містити дочірній елемент "ID_number". Посилання на елемент ID_number будуть, таким чином, неоднозначні, у нас будуть два однакових імені елемента несучих різне смислове навантаження і так буде, поки ми не введемо простору імен для їх розрізнення.


Оголошення простору імен

Простори імен оголошуються за допомогою XML атрибуту xmlns, значення якого повинно бути посиланням URI.

Наприклад:

 xmlns = "http://www.w3.org/1999/xhtml" 

Однак слід звернути увагу, що URL в дійсності не читається як адреса в мережі, він обробляється XML парсером як проста рядок. Наприклад, за адресою http://www.w3.org/1999/xhtml насправді немає ніякого коду, там знаходиться просто довідник по простору імен xhtml. Використання URL (таких як "http://www.w3.org/1999/xhtml") для ідентифікації простору імен замість простої рядки (такий як "xhtml") зменшує можливість збігу ідентифікаторів у різних просторів імен. Ідентифікатори просторів імен не зобов'язані бути правильними веб-адресами, хоча найчастіше вони ними є.

В оголошення можна також включити короткий префікс, яким буде однозначно ідентифікуватися простір імен кожного елемента, наприклад:

 xmlns: xhtml = "http://www.w3.org/1999/xhtml" 

Простір імен XML не вимагає, щоб був визначений його словник, хоча існує усталена практика поміщати DTD або XML Schema, що визначають точну структуру даних в контексті конкретного простору імен.