Вопрос по xml – XML комментарии и «-»
<!-- here is some comment --
^
|
what can be here apart from '>'?
XML, похоже, не нравится "-" внутри комментарии. Я где-то читал, что "-" переключает некоторые режимы внутри<! ... >
вещь, но<!-- -- -- -->
(четное количество--
s) кажется тоже недействительным. Если это какая-то историческая особенность, то что значит "за"? Часть этого? ("Против" часть не может иметь--
в комментариях).
В чем причина усложнения обработки комментариев из-за того, что они не просто "- & gt;" конец комментария и разрешение "-" внутри?
http://www.w3.org/TR/REC-xml/#sec-comments
[Definition: Comments may appear anywhere in a document outside other markup; in addition, they may appear within the document type declaration at places allowed by the grammar. They are not part of the document's character data; an XML processor may, but need not, make it possible for an application to retrieve the text of comments. For compatibility, the string " -- " (double-hyphen) must not occur within comments.] Parameter entity references must not be recognized within comments.
--
не допускается для совместимости с SGML. ОтНа SGML и HTML:
White space is not permitted between the markup declaration open delimiter("<!") and the comment open delimiter ("--"), but is permitted between the comment close delimiter ("--") and the markup declaration close delimiter (">"). A common error is to include a string of hyphens ("---") within a comment. Authors should avoid putting two or more adjacent hyphens inside comments.
Так в SGML<!
а также>
открыть и закрыть «объявления разметки»; а также--
открывает и закрывает комментарии.
это может быть полезно для кого-то. У меня была проблема, я хотел закомментировать параметр командной строки в XML, который начинается с -:
<arg line="-v --line-break 0" />
так естественно нормальный способ, как это
<!-- <arg line="-v --line-break 0" /> -->
не сработало, но я узнал, что если-
заменяется его эквивалентом UTF-8-
это работает и может быть терпимо в комментариях.
Так что в моем случае строка
<arg line="-v --line-break 0" />
анализируется правильно и может быть частью комментариев.
Конечно, это выглядит немного уродливо, но если кто-то захочет сохранить строку - как комментарий в его XML - я думаю, что это все же лучше, чем ничего.