2009-08-26 21 views
6

Ho visto alcune informazioni in conflitto che anche un documento XHTML deve dichiararsi come XML.Devo dichiarare XML su una pagina usando il doctype XHTML?

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

Tuttavia, in altri luoghi che sto vedendo (compreso w3.org) che il DOCTYPE deve essere la prima dichiarazione tag .

Dal momento che W3 lo dice, deve essere vero. Tuttavia, probabilmente ho alcune pagine/app che stanno mentendo su questo stanno seguendo il primo metodo. Quali sono i miei rischi?

Modifica: ho appena eseguito una pagina attraverso il W3 Validator con e senza la dichiarazione XML e ha superato entrambi i modi. A questo punto, quindi, immagino che sia solo una cosa di "stile".

risposta

9
<?xml version="1.0" encoding="utf-8"?> 

... è la versione predefinita e la codifica per XML, quindi non è necessario. Se stai servendo XHTML come text/html, probabilmente non dovrebbe esserci affatto.

Tuttavia, in altri luoghi sto vedendo (tra cui w3.org) che il DOCTYPE deve essere il primo tag.

Suona come po 'di confusione ... DOCTYPE non è un tag e nessuno dei due è <? Xml?> (Che si chiama la dichiarazione XML, e si presenta come un'istruzione di elaborazione, ma non è uno di quelli , o).

Se si includono entrambi, la dichiarazione XML deve venire prima. Il trucco è che lo sniffer DOCTYPE di IE6 rileva solo i DOCTYPE in modalità standard, se sono la prima cosa sulla pagina, il che significa che non è possibile utilizzare una dichiarazione XML e si deve rispettare la codifica XML 1.0 e UTF-8 (che non è un granché perdita).

+0

Scusa per l'errata applicazione della parola "tag". Stavo citando una documentazione che stavo leggendo. – ale

2

Non l'ho mai incluso (sempre andato con solo il doctype), e w3c dice che i miei progetti XHTML 1.0 Strict sono "validi".

4

Dal XHTML 1.1 specification:

una dichiarazione XML come quello sopra non è richiesto in tutti i documenti XML. Gli autori di documenti XHTML DOVREBBERO utilizzare le dichiarazioni XML in tutti i loro documenti. XHTML documento autori devono utilizzare una dichiarazione XML quando la codifica dei caratteri del documento è diverso predefinito UTF-8 o UTF-16 e nessuna codifica viene specificato da un protocollo di livello superiore.

http://www.w3.org/TR/xhtml11/conformance.html

4

http://validator.w3.org/ accetta solo la roba > <? Xml prima <! DOCTYPE >. Il contrario (doctype before? Xml) non verrà convalidato.

Problemi correlati