2009-07-28 57 views
25

將XML聲明之前的註釋放入XML文件中可以嗎?確定在XML聲明之前放置註釋嗎?

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

當你嘗試它時發生了什麼? – 2009-07-28 20:24:44

+1

嘿!不要打電話給我,因爲我習慣先詢問和試驗以後的壞習慣......^_^ – 2009-07-28 21:44:22

+4

實驗只會讓你說「好吧,它可以在我的電腦上工作」,這並沒有什麼幫助。一些XML處理器可能允許它,有些則可能不允許。但如果遵循規範,那麼所有XML處理器(現在和未來)都有可能處理您的文件的可能性更大。 – 2009-07-28 21:54:30

回答

41

不,不是。

Appendix F of the XML spec說:

因爲每個XML實體不 伴隨外部編碼 信息,而不是在UTF-8或UTF-16 編碼必須以XML 編碼聲明開始,其中,所述 第一個字符必須是'<?xml',任何 符合的處理器都可以檢測到,經過 二到四個八位字節的輸入,其中 以下情況適用。

啊,但是,F部分是非規範的,你說。

好,section 2.1給生產一個良好的XML文檔,即:

[1]  document  ::=  prolog element Misc* 

...在section 2.8我們得到 「序言」 的製作:

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

所以,你可以省略 <?xml聲明,但不能用任何前綴。

(順便說一下,「雜項」是評論所屬的類別)。

5

XML聲明指定文檔編碼,對於註釋和結構XML一樣重要。因此,該聲明應該先行。如果許多XML讀者能夠處理這個問題,我不會感到驚訝,但這不是一個好主意。

1

不,這不符合XML標準,但評論是好的。