Является ли незаконным наличие неиспользуемых объявлений пространства имен в XML-документе?

StackOverflow https://stackoverflow.com/questions/982745

  •  13-09-2019
  •  | 
  •  

Вопрос

Например, считается ли следующий 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, который не принял бы такой документ (а таких документов очень много).

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top