Документация / XML

Пространства имён

Пространства имён (Namespaces in XML) позволяют смешивать в одном документе элементы из разных форматов без конфликтов имён. Например, table в XHTML — таблица, а в формате мебельного каталога — стол. Пространство имён идентифицируется URI — обычно адресом, который принадлежит автору формата. Это просто уникальная строка: по ней ничего не скачивается.

Префиксы

Пространство имён привязывается к префиксу атрибутом xmlns:префикс. Префикс действует в элементе, где объявлен, и во всех вложенных; имя с префиксом (inv:total) называется квалифицированным.

<?xml version="1.0" encoding="UTF-8"?>
<inv:invoice xmlns:inv="http://example.com/invoice"
             xmlns:addr="http://example.com/address">
  <inv:number>INV-15</inv:number>
  <addr:address>
    <addr:city>Москва</addr:city>
  </addr:address>
  <inv:total>15000.00</inv:total>
</inv:invoice>

Для программы важен не префикс, а пространство имён: inv:number и i:number при xmlns:i, указывающем на тот же URI, — одно и то же имя.

Пространство имён по умолчанию

xmlns="URI" задаёт пространство имён для элементов без префикса — в этом элементе и вложенных. Так документы выглядят проще:

<?xml version="1.0" encoding="UTF-8"?>
<invoice xmlns="http://example.com/invoice">
  <number>INV-15</number>
  <total>15000.00</total>
</invoice>

Объявление xmlns="" отменяет пространство по умолчанию для вложенных элементов.

Атрибуты и пространства имён

Атрибуты без префикса не попадают в пространство имён по умолчанию: они принадлежат своему элементу. Атрибуты с префиксом (xsi:schemaLocation, xml:lang) относятся к пространству своего префикса — это «глобальные» атрибуты, которые можно добавлять к элементам любых форматов.

Зарезервированные префиксы

  • xml всегда связан с http://www.w3.org/XML/1998/namespace, объявлять его не нужно.
  • xmlns используется только для объявлений.

Частые пространства имён

ПрефиксURIФормат
xs / xsdhttp://www.w3.org/2001/XMLSchemaXML Schema
xsihttp://www.w3.org/2001/XMLSchema-instanceАтрибуты связи документа со схемой
wsdlhttp://schemas.xmlsoap.org/wsdl/WSDL 1.1
soaphttp://schemas.xmlsoap.org/wsdl/soap/Привязка SOAP 1.1 в WSDL
soapenvhttp://schemas.xmlsoap.org/soap/envelope/Конверт SOAP 1.1
bpmnhttp://www.omg.org/spec/BPMN/20100524/MODELBPMN 2.0

Советы

  • Объявляйте все пространства имён в корневом элементе — так документ легче читать.
  • Не полагайтесь на конкретные префиксы при обработке XML: сравнивайте URI.
  • Используйте в качестве URI адрес, который вы контролируете, и включайте в него версию формата: https://example.com/schemas/order/v2.

Обновлено: 30 сентября 2026 г.