2009-07-28 12 views
25

È corretto inserire commenti prima della dichiarazione XML in un file XML?OK per inserire commenti prima della dichiarazione XML?

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

Quando l'hai provato, cosa è successo? –

+1

Ehi! Non chiamarmi per la brutta abitudine di chiedere prima e sperimentare dopo ...^_^ –

+4

La sperimentazione ti permetterebbe solo di dire "bene, funziona su * mio * computer", il che non è molto utile. Alcuni processori XML possono consentirlo, altri no. Ma se segui le specifiche, allora c'è una maggiore possibilità che TUTTI i processori XML (presenti e futuri) saranno in grado di elaborare i tuoi file. –

risposta

41

No, non è OK.

Appendix F of the XML spec dice:

Poiché ogni entità XML non accompagnato da esterno codifica informazioni e non in UTF-8 o UTF-16 codifica deve iniziare con una dichiarazione di codifica XML , in cui il i primi caratteri devono essere '<? xml', qualsiasi processore conforme allo in grado di rilevare, dopo da due a quattro ottetti di input, a cui si applicano i seguenti casi di .

Ah, ma la sezione F non è normativa, si dice.

Beh, section 2.1 dà la produzione di un documento XML ben formato, in tal modo:

[1]  document  ::=  prolog element Misc* 

... e in section 2.8 otteniamo la produzione per il "prologo":

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

Così , è possibile omettere la dichiarazione ? xml, ma non è possibile il prefisso con qualsiasi cosa.

(incidentalmente, "Varie" è la categoria in cui rientrano i commenti).

+1

+ 1 per la risposta più completa e ufficiale – rmeador

+1

Bella risposta, ottima ricerca esattamente ciò di cui avevo bisogno. +1. – Josh

8

in base a this page, questo è illegale.

+10

Puoi essere arrestato? –

+10

Sono stato picchiato e messo in una cella di prigione di Singapore per questo! – Chap

5

La dichiarazione XML specifica la codifica del documento, che è importante per i commenti come per XML strutturale. Pertanto, la dichiarazione dovrebbe andare prima. Non sarei sorpreso se molti lettori XML fossero in grado di gestirlo, ma è una cattiva idea.

+1

bene, sono d'accordo con te. infatti il ​​parser deve avere un'idea di come leggere il documento in quanto non sarebbe in grado di leggere né la codifica né. pertanto, inserire solo caratteri multi-byte in questo commento non dovrebbe essere consentito ... – Atmocreations

1

No, questo non è conforme agli standard XML, ma i commenti sono buoni.