Можно помещать комментарии перед декларацией XML?

Можно ли помещать комментарии перед объявлением XML в файле XML?

<!--
Is this bad to do?
-->
<?xml version="1.0" encoding="utf-8"?>
<someElement />

person M. Dudley    schedule 28.07.2009    source источник
comment
Когда вы попробовали, что произошло?   -  person S.Lott    schedule 29.07.2009
comment
Привет! Не называйте меня плохой привычкой сначала спрашивать, а потом экспериментировать ... ^ _ ^   -  person M. Dudley    schedule 29.07.2009
comment
Экспериментирование позволит вам только сказать, что это работает на моем компьютере, что не очень помогает. Некоторые процессоры XML могут это допускать, некоторые - нет. Но если вы будете следовать спецификации, то есть больше шансов, что ВСЕ процессоры XML (нынешние и будущие) смогут обрабатывать ваши файлы.   -  person Gary McGill    schedule 29.07.2009
comment
в любом случае, думаю, ясно, что это запрещено - по какой-то причине: D, и если ваш синтаксический анализатор отмечает это как правильное (что нехорошо, но возможно), эксперименты в любом случае действительно не помогают ....   -  person Atmocreations    schedule 29.07.2009


Ответы (4)


Нет, это не нормально.

Приложение F спецификации XML говорит:

Поскольку каждый объект XML, не сопровождаемый внешней информацией о кодировке и не в кодировке UTF-8 или UTF-16, должен начинаться с объявления кодировки XML, в котором первые символы должны быть '‹? Xml', любой соответствующий процессор может обнаружить, после двух до четырех октетов ввода, что применимо из следующих случаев.

А, но, скажете вы, раздел F не является нормативным.

Итак, в разделе 2.1 приведена продукция для правильно сформированный XML-документ, таким образом:

[1]     document       ::=       prolog element Misc*

... и в разделе 2.8 мы получить продукцию для «пролога»:

[22]    prolog     ::=       XMLDecl? Misc* (doctypedecl Misc*)?
[23]    XMLDecl    ::=      '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'

Итак, вы можете опустить объявление ‹? Xml, но вы не можете использовать его в качестве префикса.

(Кстати, «Разное» - это категория, в которую попадают комментарии).

person Gary McGill    schedule 28.07.2009
comment
Прекрасный ответ, отличное исследование, именно то, что мне нужно. +1. - person Josh; 21.09.2014

согласно этой странице, это незаконно:

Добавляя ссылочные комментарии к вашему XML-коду, помните, что они не могут находиться в самом верху вашего документа. В XML сначала может идти только объявление XML:

<?xml version="1.0"?>
person Atmocreations    schedule 28.07.2009

Объявление XML определяет кодировку документа, которая так же важна для комментариев, как и для структурного XML. Следовательно, декларация должна идти первой. Я не удивлюсь, если многие читатели XML смогут справиться с этим, но это плохая идея.

person jlew    schedule 28.07.2009
comment
хорошо, я согласен с тобой. Фактически, синтаксический анализатор должен иметь представление о том, как читать документ, поскольку он также не сможет прочитать кодировку. поэтому следует запретить добавление в этот комментарий только многобайтовых символов ... - person Atmocreations; 29.07.2009

Нет, это не соответствует стандартам XML, но комментарии хороши.

person Joshua Louden    schedule 28.07.2009