Пространства имён XML: почему одинаковые теги различаются
XSDHub · 4 ноября 2026 года
Причина и контекст
Пространство имён связывает имя элемента с URI. Записи a:order и b:order обозначают один элемент, если оба префикса указывают на одинаковый URI. Сам префикс служит сокращением; принимающая система сравнивает пространство имён и локальную часть имени. Поэтому замена префикса обычно безопасна, а изменение URI меняет смысл документа.
Что проверить в документе
Объявление xmlns задаёт пространство имён по умолчанию для элементов внутри своей области действия. Непрефиксные атрибуты оно не затрагивает. Если схема ожидает корень из urn:orders, документ с корнем order без объявления xmlns не соответствует этому ожиданию. Внешне имена похожи, но для валидатора это разные элементы.
Разбор примера
В приведённой схеме targetNamespace описывает словарь заказа. Значение elementFormDefault="qualified" требует, чтобы вложенный quantity тоже принадлежал этому словарю. Правильный пример распространяет пространство имён по умолчанию на оба элемента. Ошибочный вариант снимает его у quantity через xmlns=""; синтаксис остаётся допустимым, но проверка структуры завершается отказом.
Как найти источник ошибки
При сообщении «No matching global declaration» сначала сравните URI корня с targetNamespace. Скопируйте обе строки целиком: регистр, завершающий слеш и протокол имеют значение. URI здесь является идентификатором и не обязан открываться как веб-страница. Не пытайтесь исправить ошибку скачиванием адреса пространства имён.
Особые случаи
Для воспроизведения используйте режим XML + XSD и вставляйте схему отдельно от документа. Затем меняйте только объявление пространства имён и запускайте повторную проверку. Атрибут xsi:schemaLocation не исправляет принадлежность элементов к словарю и не заставляет эту страницу загружать файлы из сети. Если получатель публикует несколько версий словаря, выберите URI именно нужной версии.
Воспроизведите результат
Открыть инструмент для этих примеров. Сначала проверьте вариант с ошибкой, затем исправленный документ. Вставьте приведённую XSD в поле схемы.
Полная учебная схема XSD 1.0
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:orders" elementFormDefault="qualified"><xs:element name="order"><xs:complexType><xs:sequence><xs:element name="quantity" type="xs:positiveInteger"/></xs:sequence></xs:complexType></xs:element></xs:schema>XML с ошибкой — ожидается отказ
<order xmlns="urn:orders"><quantity xmlns="">3</quantity></order>Исправленный XML — ожидается успех
<order xmlns="urn:orders"><quantity>3</quantity></order>