2010-08-02 47 views
3

下面的代码是否为有效的XML?这是一个有效的XML评论吗?

<sometag 
    attribute1="value1" 
    <!-- attribute2="value2" --> 
    attribute3="value3"> 

</sometag> 
+0

当我在xmlspy中尝试这个或试图在IE中打开xml时,它会给出错误。所以我认为这是无效的 – Raghuram 2010-08-03 05:02:24

回答

6

类似这样的问题最好通过参考相关规范回答。在这种情况下,Extended Markup Language (XML) 1.1规范。

这是说:

注释可以在其他标记之外的文档中的任何位置出现。另外,它们可能出现在语法允许的地方的文档类型声明中。

和用于元素的语法开始标记是:

[40] STag  ::=  '<' Name (S Attribute)* S? '>' 
[41] Attribute ::=  Name Eq AttValue 

其中非末端符号SNameEqAttValue被别处定义。这两部作品(以及我未在此列出的其他作品)在此情况下不允许使用非终端符号。

所以这是一个明确的NO。

+0

感谢您的链接,并感谢明确引用语法。 – aioobe 2010-08-02 22:42:52

+0

我尊重您的回答是正确的,但我不同意通过参考规范来回答这些问题 - 您是否会要求某人参考C语言规范中的评论是否有效? – Justin 2010-08-02 23:43:16

+1

@Kragen - 1)根据谁问,是的,我会的。 2)这是OP **实际需要的**。我认为不应该像对待初学者那样对待具有12k点声誉点的人。一位优秀的软件工程师根据相关规范执行。如果他不这样做,他不是专业的,海事组织。 – 2010-08-03 00:09:18

1

否评论不能出现在标签的中间。