OK to put comments before the XML declaration?
Asked Answered
A

4

32

Is it OK to put comments before the XML declaration in an XML file?

<!--
Is this bad to do?
-->
<?xml version="1.0" encoding="utf-8"?>
<someElement />
Amaro answered 28/7, 2009 at 20:13 Comment(4)
When you tried it, what happened?Garygarza
Hey! Don't call me out on my bad habit of asking first and experimenting later... ^_^Amaro
Experimenting would only allow you to say "well, it works on my computer", which isn't that helpful. Some XML processors may allow it, some may not. But if you follow the spec, then there's a greater chance that ALL XML processors (present and future) will be able to process your files.Chao
anyway, guess it's clear that this is not allowed - for reason whysoever :D and if your parser marks this as correct (which isn't good but possible), experimenting doesn't really help anyway....Lunnete
C
54

No, it's not OK.

Appendix F of the XML spec says:

Because each XML entity not accompanied by external encoding information and not in UTF-8 or UTF-16 encoding must begin with an XML encoding declaration, in which the first characters must be '< ?xml', any conforming processor can detect, after two to four octets of input, which of the following cases apply.

Ah, but, section F is non-normative, you say.

Well, section 2.1 gives the production for a well-formed XML document, thus:

[1]     document       ::=       prolog element Misc*

...and in section 2.8 we get the production for "prolog":

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

So, you can omit the < ?xml declaration, but you can't prefix it with anything.

(Incidentally, "Misc" is the category that comments fall into).

Chao answered 28/7, 2009 at 20:16 Comment(1)
Beautiful answer, great research exactly what I needed. +1.Grouty
L
7

according to this page, this is illegal:

When adding reference comments to your XML code, remember that they cannot come at the very top of your document. In XML, only the XML declaration can come first:

<?xml version="1.0"?>
Lunnete answered 28/7, 2009 at 20:16 Comment(0)
C
5

The XML declaration specifies the document encoding, which is as important for comments as for structural XML. Therefore, the declaration should go first. I wouldn't be surprised if many XML readers were able to deal with this, but it's a bad idea.

Cerate answered 28/7, 2009 at 20:18 Comment(1)
well, i agree with you. in fact the parser must have an idea how to read the document as he wouldn't be able to read the encoding neither. therefore only putting multi-byte characters into this comment should be disallowed...Lunnete
A
0

No, this does not comply with XML standards, but comments are good.

Acerose answered 28/7, 2009 at 20:34 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.