Синтаксический анализатор XML 1.0 может или не может принимать документы, которые имеют номер версии, отличный от 1.0
.Поведение вашего синтаксического анализатора XML зависит от того, какой редакции рекомендации XML 1.0 он соответствует.
Первые издания
W3C XML-рекомендации изданий 1 и 2 сказали:
Номер версии "1.0" должен использоваться для указания соответствия этой версии данной спецификации;для документа является ошибкой использование значения «1.0», если оно не соответствует этой версии данной спецификации.
...
Процессоры могут сигнализировать об ошибке, если они получают документыпомечены версиями, которые они не поддерживают.
и допустимые значения для version
в декларации XML были
[26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')+
ref: http://www.w3.org/TR/1998/REC-xml-19980210#sec-prolog-dtd
Третийиздание
Это было изменено для 3-го издания.Абзац, который я цитировал выше, был удален, а значение version
было установлено на 1.0
[26] VersionNum ::= '1.0'
Это фактически означало, что анализатор XML 1.0 должен видеть другие номера версий как ошибки.
ref: http://www.w3.org/XML/xml-V10-2e-errata#E38
Пятое издание
Разбор других версий был снова разрешен в 5-м издании, когда новое изменение практически полностью изменило предыдущее изменение.Были добавлены два новых абзаца
Несмотря на то, что производство VersionNum соответствует любому номеру версии в форме «1.x», документам XML 1.0 НЕ СЛЕДУЕТ указывать номер версии, отличный от «1.0».
Примечание. Когда процессор XML 1.0 встречает документ, в котором указан номер версии 1.x, отличный от 1.0, он обрабатывает его как документ 1.0.Это означает, что процессор XML 1.0 будет принимать документы 1.x при условии, что они не используют никаких функций, отличных от 1.0.
Допустимые значения для version
теперь имеют форму 1.x
[26] VersionNum ::= '1.' [0-9]+
ref: http://www.w3.org/XML/xml-V10-4e-errata#E10
Сводка
Рискованно использовать номер версии, отличный от 1.0
(также для документов XML 1.0), поскольку анализатор может отказаться от обработкиЭто.Если вы сделаете такое изменение, вам нужно знать, что документ будет обрабатываться только с помощью инструментов, совместимых с XML 1.1 (или инструментов, совместимых с XML 1.0 5th Ed., Но тогда вы не сможете использовать какие-либо функции XML 1.1).