Незаконно ли иметь неиспользуемые объявления пространства имен в документе XML? - PullRequest
1 голос
/ 11 июня 2009

Например, считается ли следующий XML-документ действительным в соответствии с рекомендацией W3C XML 1.0? Обратите внимание, что на пространство имен 'future' нет ссылок нигде в документе.

Хотя это не может считаться хорошим стилем, я считаю, что документ по-прежнему действителен независимо от неиспользуемого пространства имен. Кто-нибудь может подтвердить или опровергнуть это предположение?

Спасибо, Мэтт

<?xml version="1.0" encoding="UTF-8" ?>
<root xmlns='http://foo.org/v1'  xmlns:future='http://bar.org/v1'>
    <child>1</child>
</root>

Ответы [ 4 ]

3 голосов
/ 11 июня 2009

Стандарт , похоже, не указывает на иное. Раздел 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>
3 голосов
/ 11 июня 2009

Нет, не запрещается иметь неиспользуемые объявления пространства имен в документе XML.

1 голос
/ 11 июня 2009

W3C фактически имеет службу проверки . Это подтверждается двумя предупреждениями, кодированием и отсутствием типа документа.

0 голосов
/ 11 июня 2009

Хотя большинство инструментов очистки удаляют неиспользуемые пространства имен, я ничего не помню в спецификации XML, в которой говорится, что хранить их незаконно. И я не знаю ни одного парсера XML, который бы не принимал такой документ (а таких документов много).

...