XML ファイルで XML 宣言の前にコメントを入れても問題ありませんか?
<!--
Is this bad to do?
-->
<?xml version="1.0" encoding="utf-8"?>
<someElement />
XML ファイルで XML 宣言の前にコメントを入れても問題ありませんか?
<!--
Is this bad to do?
-->
<?xml version="1.0" encoding="utf-8"?>
<someElement />
いいえ、大丈夫ではありません。
XML 仕様の付録 F には、次のように記載されています。
外部エンコーディング情報を伴わず、UTF-8 または UTF-16 エンコーディングではない各 XML エンティティは、最初の文字が「< ?xml」である必要がある XML エンコーディング宣言で開始する必要があるため、準拠するプロセッサは、入力の 4 オクテットまで、次のケースのどれが適用されますか。
ああ、でも、セクション F は規範的ではない、とあなたは言います。
セクション 2.1では、整形式の XML 文書の生成について説明しています。したがって、次のようになります。
[1] document ::= prolog element Misc*
...そして、セクション 2.8では、「プロローグ」のプロダクションを取得します。
[22] prolog ::= XMLDecl? Misc* (doctypedecl Misc*)?
[23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>'
したがって、 < ?xml 宣言は省略できますが、プレフィックスを付けることはできません。
(ちなみに「その他」はコメントが入るカテゴリです)。
このページによると、これは違法です:
XML コードに参照コメントを追加するときは、ドキュメントの一番上にコメントを追加できないことに注意してください。XML では、XML 宣言のみが最初に来ます。
<?xml version="1.0"?>
XML 宣言は、ドキュメントのエンコーディングを指定します。これは、構造的な XML と同じくらいコメントにとって重要です。したがって、宣言を最初に行う必要があります。多くの XML リーダーがこれに対処できたとしても驚かないでしょうが、それは悪い考えです。
いいえ、これは XML 標準に準拠していませんが、コメントは有効です。