31

可以在 XML 文件中的 XML 声明之前放置注释吗?

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

4 回答 4

50

不,这不好。

XML 规范的附录 F说:

因为每个不附带外部编码信息且不采用 UTF-8 或 UTF-16 编码的 XML 实体必须以 XML 编码声明开始,其中第一个字符必须是 '< ?xml',任何符合要求的处理器都可以检测到,在两个到四个八位字节的输入,以下哪种情况适用。

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

好吧,第 2.1 节给出了格式良好的 XML 文档的产生式,因此:

[1]     document       ::=       prolog element Misc*

...在第 2.8 节中,我们得到了“prolog”的产生式:

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

所以,你可以省略< ?xml 声明,但你不能在它前面加上任何东西。

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

于 2009-07-28T20:16:18.147 回答
7

根据此页面,这是非法的:

在向您的 XML 代码添加参考注释时,请记住它们不能出现在文档的最顶部。在 XML 中,只有 XML 声明可以先出现:

<?xml version="1.0"?>
于 2009-07-28T20:16:30.923 回答
5

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

于 2009-07-28T20:18:06.753 回答
1

不,这不符合 XML 标准,但注释很好。

于 2009-07-28T20:34:34.240 回答