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

Astuce par Raphael (Eleveur de kiwiz, Strasbourg)
Mis à jour le 02 Février 2009. 4568 lectures.
Tags : xhtml, validation, xml, validateur, prologue, déclaration, encodage

<?xml version="1.0"?>

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

Petit rappel sur le mode Quirks

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 (comme 90% des gens), 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 IE et de l'affichage brut de la déclaration dans d'autres navigateurs plus anciens

NOTE : la déclaration XML pose également des conflits avec PHP car sa syntaxe est comprise comme étant du langage PHP.

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

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

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

Ressources