下面的代码是否是有效的XML?
<sometag
attribute1="value1"
<!-- attribute2="value2" -->
attribute3="value3">
</sometag>
Run Code Online (Sandbox Code Playgroud)
通过参考相关规范可以最好地回答这样的问题.在这种情况下,扩展标记语言(XML)1.1规范.
这说:
注释可能出现在其他标记之外的文档中的任何位置; 此外,它们可能出现在语法允许的位置的文档类型声明中.
元素开始标记的语法是:
[40] STag ::= '<' Name (S Attribute)* S? '>'
[41] Attribute ::= Name Eq AttValue
Run Code Online (Sandbox Code Playgroud)
其中非末端符号S Name Eq和AttValue在别处定义.这两个产品(以及我未包括在内的其他产品)Comment在此上下文中不允许使用非终端符号.
所以这是一个明确的NO.