Является ли незаконным наличие неиспользуемых объявлений пространства имен в XML-документе?
Вопрос
Например, считается ли следующий XML-документ действительным в соответствии с рекомендацией W3C XML 1.0?Обратите внимание, что пространство имен «будущее» нигде в документе не упоминается.
Хотя это нельзя назвать хорошим стилем, я считаю, что документ по-прежнему действителен независимо от неиспользуемого пространства имен.Может ли кто-нибудь подтвердить или опровергнуть это предположение?
Спасибо, Мэтт
<?xml version="1.0" encoding="UTF-8" ?>
<root xmlns='http://foo.org/v1' xmlns:future='http://bar.org/v1'>
<child>1</child>
</root>
Решение
А стандартный похоже, не указывает на иное.Раздел 7, «Соответствие документов», дает несколько требований для того, чтобы называть документ «правильно сформированным пространством имен» и «действительным пространством имен», но ничто не говорит о том, что у вас не может быть неиспользуемого объявления пространства имен.
В разделе 3 приведен пример, который содержит неиспользуемое пространство имен:
<x xmlns:edi='http://ecommerce.example.org/schema'>
<!-- the "edi" prefix is bound to http://ecommerce.example.org/schema
for the "x" element and contents -->
</x>
Другие советы
Нет, наличие неиспользуемых объявлений пространства имен в XML-документе не является противозаконным.
У W3C на самом деле есть сервис валидатора.Это подтверждается двумя предупреждениями: кодировкой и отсутствием типа документа.
Хотя большинство инструментов очистки удаляют неиспользуемые пространства имен, я не помню, чтобы в спецификации XML говорилось, что их сохранение незаконно.И я не знаю ни одного синтаксического анализатора XML, который не принял бы такой документ (а таких документов очень много).