在XML文件中将注释放在XML文件之前可以吗?
<!--
Is this bad to do?
-->
<?xml version="1.0" encoding="utf-8"?>
<someElement />
答案 0 :(得分:45)
不,不行。
因为每个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标准,但评论很好。