Faut-il utiliser la déclaration XML dans ma page web  ?

Astuce par (Intégrateur du Dimanche, Strasbourg)
Créé le , mis à jour le (21453 lectures)
Tags : xhtml, validation, xml, validateur, prologue, déclaration, encodage

La déclaration XML, à placer avant le doctype, fait basculer certains anciens navigateurs dans le modèle de boite (erroné) de Microsoft (mode Quirks).

<?xml version="1.0"?>

La déclaration XML ne devrait apparaître que sur les document web au format XML ou XHTML traités en tant que XML (c'est à dire avec un content="application/xhtml+xml", voir l'astuce sur XHTML 1.1).

Une déclaration XML n'a pas sa place dans un document HTML ou un document XHTML servi avec un content="text/html".

En résumé, la déclaration XML n'est pas obligatoire selon les usages que l'on fait du XHTML :

  • Si on utilise XHTML pour faire du HTML (dans la plupart des cas), la déclaration n'est pas nécessaire.
  • Par contre, si XHTML est utilisé comme du XML ou du MathML, la déclaration est obligatoire.
  • De même, il est obligatoire si l'encodage du document est autre que UTF-8 ou UTF-16 (dans le cas de pages servies en XML ou XHTML/XML)

En évitant d'ajouter la déclaration sur les pages HTML ou XHTML servies comme HTML, que ce soit en strict, en transitional ou en frameset :

  • on respecte les règles de compatibilité XHTML - HTML
  • on évacue le problème du doctype switching dans Internet Explorer et de l'affichage brut de la déclaration dans d'autres navigateurs plus anciens

Attention : la déclaration XML peut parfois poser quelques problèmes avec PHP car sa syntaxe est comprise comme étant une introduction à du code PHP.

Pour cela, il faut réécrire la déclaration de cette manière :

<?php echo '<?xml version="1.0" ?'.'>'; ?>

À lire en complément : Choix d'une DTD: le doctype switching n'est pas pour nous.