<!-- here is some comment --
^
|
what can be here apart from '>'?
Run Code Online (Sandbox Code Playgroud)
XML似乎不喜欢评论中的" - ".我在某处读到' - '切换内部<! ... >的一些模式,但是<!-- -- -- -->(甚至数量的--s)似乎也是无效的.如果它是一个历史性的特征,它的"专业"部分是什么?("反对"部分无法--发表评论).
是什么原因导致评论处理变得复杂,因为不仅仅是" - >"结束评论并允许" - "在内部?
asa*_*yer 47
从标准文件:
http://www.w3.org/TR/REC-xml/#sec-comments
[定义:注释可能出现在其他标记之外的文档中; 此外,它们可能出现在语法允许的位置的文档类型声明中.它们不是文档字符数据的一部分; XML处理器可以但不必使应用程序能够检索注释文本.为了 兼容性,字符串" - "(双连字符)不得出现在注释中.]不能在注释中识别参数实体引用.
Dan*_*iel 40
也许它对某人有帮助.我有一个问题,我想在XML中注释掉一个以 - 开头的命令行参数:
<arg line="-v --line-break 0" />
Run Code Online (Sandbox Code Playgroud)
所以这种自然正常的方式
<!-- <arg line="-v --line-break 0" /> -->
Run Code Online (Sandbox Code Playgroud)
没有用,但我发现,如果-用它的UTF-8等效替换它-可以工作,并且可以在评论中容忍.
所以在我的情况下,字符串
<arg line="-v --line-break 0" />
Run Code Online (Sandbox Code Playgroud)
被正确解析,可以成为评论的一部分.
当然它看起来有点难看,但如果有人想要保留一个字符串 - 作为他的XML中的评论 - 我认为它仍然比没有好.
Ric*_*ers 23
--不允许与SGML兼容.从On SGML和HTML:
标记声明打开分隔符("<!")和注释打开分隔符(" - ")之间不允许有空格,但允许在注释关闭分隔符(" - ")和标记声明关闭分隔符之间使用空格( ">").常见错误是在注释中包含一串连字符("---").作者应避免在注释中放置两个或多个相邻的连字符.
因此,在SGML <!和>开闭"标记声明",并--打开和关闭评论.