xml元素中的xml注释

时间:2019-01-11 05:35:50

标签: xml xml-parsing openxml xml-validation

我想知道在任何xml元素中包含XML注释是否合法? 例如以下xml注释合法吗?

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<!DOCTYPE MSWord [<!-- multiple
     line
     comment -->] >

W3 org @ http://www.w3.org/TR/REC-xml/#sec-comments说: 注释可能会出现在其他标记之外的文档中的任何位置;另外,他们

  

可能出现在文档类型声明中的以下位置:   语法

我上面的示例也是合法的。如果是,请指导xml注释是否可以存在于任何其他xml元素中。

谢谢

1 个答案:

答案 0 :(得分:0)

我认为您的困惑可能是因为您不了解“ XML元素”一词的确切含义。

是的,在XML元素的内容中的任何地方(即,开始标记和结束标记之间)进行注释是合法的,但不能在开始标记或结束标记中进行注释。

例如,您不能在开始标记的两个属性之间添加注释。例如,以下格式不正确。

<a b="3" <!-- not 4!--> c="5"/>

您所引用的文本说,在DTD中,仅在语法明确允许的地方才允许注释。

您的示例的语法是

[28]    doctypedecl    ::= '<!DOCTYPE' S Name (S ExternalID)? S?
                           ('[' intSubset ']' S?)? '>'    
[28b]   intSubset      ::= (markupdecl | DeclSep)*
[29]    markupdecl     ::= elementdecl | AttlistDecl | EntityDecl
                           | NotationDecl | PI | Comment

这告诉我们,方括号之间出现的必须是intSubset,而Comment是合法的intSubset,因为它是合法的markupDecl。 / p>