XML注释禁止出现连续“--”,因其会干扰结束标记-->的识别;合法注释需满足正则[^-]*(-[^-])*,可用全角字符或拆分方式安全表达破折号。
XML注释中
不能包含连续的“--”
(两个连字符),这是XML规范明确禁止的。
XML注释的基本语法
XML注释以
结束。例如:
注释内容可以包含字母、数字、空格、标点(除特定限制外),但有两个关键约束:
注释内
不能出现“--”子串
(即两个连续的连字符)
注释不能以
结尾(即不能以
之前的那个
单独存在,实际意味着倒数第二个字符不能是
)
为什么禁止“--”?
因为
是注释结束标记
的前缀。如果注释体内出现
,解析器可能提前误判注释结束位置,导致解析失败或行为未定义。XML 1.0规范(W3C)明确规定:注释内容必须匹配
正则表达式
,即不允许两个连续的
。
例如以下写法是
非法的
:
❌(含
)
Eclipse导入Android或其他的JAVA项目的正确方法 WORD版
本文档主要讲述的是Eclipse导入Android或其他的JAVA项目的正确方法;希望本文档会给有需要的朋友带来帮助;感兴趣的朋友可以过来看看
下载
❌
如何安全地表达连字符或破折号?
如果确实需要在注释中表示“—”(中文破折号)、“–”(en dash)或“-”(短横线),可采用以下方式:
用全角字符替代:如
(U+FF0D)或
(U+2014),它们不属于XML禁止的
拆开书写并加说明:如
使用CDATA块不适用——注释本身不支持嵌套CDATA,CDATA只用于字符数据,不是注释的替代方案
验证与调试建议
大多数XML解析器(如libxml2、Java DOM、Python xml.etree)在遇到含
的注释时会直接报错,例如:
FATAL ERROR: Comment contains '--'
建议在编辑XML时:
启用XML语法高亮/校验的编辑器(如VS Code + XML Tools、Oxygen XML)
提交前用
命令行验证
避免从富文本(如Word、网页)直接复制带自动连字符的文本到注释中
--->------>--[^-]*(-[^-])*----—----xmllint --noout file.xml