2009-08-26 4 views
6

J'ai vu des informations contradictoires qu'un document XHTML doit également se déclarer comme XML.Dois-je déclarer XML sur une page en utilisant le 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"> 

Cependant, dans d'autres endroits que je vois (y compris w3.org) que le DOCTYPE doit être la première balise déclaration.

Puisque W3 le dit, cela doit être vrai. Cependant, j'ai probablement quelques pages/apps mensonges qui suivent la première méthode. Quels sont mes risques?

Modifier: Je viens d'exécuter une page à travers le W3 Validator avec et sans la déclaration XML et il est passé dans les deux sens. À ce stade, alors, je devine que c'est juste une chose «style».

Répondre

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

0 est la version par défaut et l'encodage pour XML, donc vous n'en avez pas besoin du tout. Si vous diffusez XHTML en tant que text/html, il ne devrait probablement pas y être du tout.

Cependant, dans d'autres endroits, je vois (y compris w3.org) que le DOCTYPE doit être le premier tag.

sons comme une certaine confusion ... DOCTYPE est pas une balise et n'est <? Xml?> (Que l'on appelle la déclaration XML, et ressemble à une instruction de traitement, mais il ne fait pas partie de ceux , non plus).

Si vous incluez les deux, la déclaration XML doit être prioritaire. L'astuce est que le sniffer DOCTYPE de IE6 ne détecte les DOCTYPE en mode standard que s'ils sont la première chose sur la page, ce qui signifie que vous ne pouvez pas utiliser une déclaration XML et vous devez utiliser l'encodage XML 1.0 et UTF-8. perte).

+0

Pardon pour la mauvaise application du mot "tag". Je citais quelques documents que je lisais. – ale

2

Je ne l'ai jamais inclus (toujours parti avec seulement le doctype), et w3c dit que mes projets XHTML 1.0 Strict sont "valides".

4

De l'XHTML 1.1 specification:

Une déclaration XML comme celle-ci n'est pas nécessaire dans tous les documents XML. Les auteurs de documents XHTML DEVRAIENT utiliser les déclarations XML dans tous leurs documents. XHTML auteurs du document doivent utiliser une déclaration XML lorsque le caractère encodage du document est autre que l'UTF-8 ou UTF-16 et par défaut ne le codage est spécifié par un protocole de niveau supérieur .

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

4

http://validator.w3.org/ accepte seulement les <? Xml > choses avant <! DOCTYPE >. L'inverse (doctype before? Xml) ne sera pas validé.

Questions connexes