可以在XML声明之前放置注释吗?

时间:2009-07-28 20:13:16

标签: xml xml-declaration

在XML文件中将注释放在XML文件之前可以吗?

<!--
Is this bad to do?
-->
<?xml version="1.0" encoding="utf-8"?>
<someElement />

4 个答案:

答案 0 :(得分:45)

不,不行。

Appendix F of the XML spec说:

  

因为每个XML实体都没有   伴随着外部编码   信息,而不是UTF-8或UTF-16   编码必须以XML开头   编码声明,其中   第一个字符必须是'&lt; ?xml',任何   符合处理器后可以检测到   两到四个八位字节的输入,其中的   以下情况适用。

啊,但是,F部分是非规范性的,你说。

嗯,section 2.1为格式良好的XML文档提供了生成,因此:

[1]     document       ::=       prolog element Misc*

...在section 2.8我们得到了“prolog”的作品:

[22]    prolog     ::=       XMLDecl? Misc* (doctypedecl Misc*)?
[23]    XMLDecl    ::=      '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'

所以,你可以省略&lt; ?xml声明,但你不能用任何东西作为前缀。

(顺便说一句,“杂项”是评论所属的类别。)

答案 1 :(得分:7)

根据this page,这是非法的。

答案 2 :(得分:5)

XML声明指定文档编码,这对于结构XML的注释同样重要。因此,宣言应该先行。如果许多XML读者能够处理这个问题,我不会感到惊讶,但这是一个坏主意。

答案 3 :(得分:1)

不,这不符合XML标准,但评论很好。