DTD et <?xml version="1.0" encoding="UTF-8"?>


dorian53
WRInaute passionné
WRInaute passionné
 
Messages: 2215
Inscription: 10 Avr 2005

DTD et <?xml version="1.0" encoding="UTF-8"?>

Message le Sam Mai 22, 2010 11:16

Bonjour,

J'utilise actuellement la DTD suivante :
Code: Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">


Quelle est l'utilité de cette ligne en en-tête de page.
Code: Tout sélectionner
<?xml version="1.0" encoding="UTF-8"?>


J'ai remarqué que cela modifiait l'interprétation de IE 6 (notamment les margin).

Merci,
Dorian


Eric 2A
WRInaute discret
WRInaute discret
 
Messages: 194
Inscription: 26 Fév 2006

Re: DTD et <?xml version="1.0" encoding="UTF-8"?>

Message le Sam Mai 22, 2010 22:53

Salut,

Le prologue XML permet de préciser qu'il s'agit d'un document XML et d'identifier le jeu de caractères utilisé.

Il est obligatoire pour les pages XML ou XHTML servies en "application/xhtml+xml".

Il est facultatif pour les pages XHTML 1.0 servies en "text/html" si le jeu de caractères est bien déclaré :

à l'aide de l'entête HTTP

Code: Tout sélectionner
<?php
header('Content-Type: text/html; charset=UTF-8');
?>


et à l'aide de la balise META

Code: Tout sélectionner
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />


Il fait fait basculer IE6 en "quirks mode"... voir A propos du Modèle de boîte Microsoft (ou "quirks")

jcaron
WRInaute accro
WRInaute accro
 
Messages: 2685
Inscription: 13 Fév 2004

Re: DTD et <?xml version="1.0" encoding="UTF-8"?>

Message le Dim Mai 23, 2010 0:51

Rappels:

1. Un vrai fichier XHTML, c'est servi avec un content-type application/xhtml+xml

2. La plupart des browsers (la dernière fois que j'ai regardé, tous sauf FF, ça a peut-être changé depuis, mais ça inclut à coup sûr IE6) ne reconnaissent pas le content-type application/xhtml+xml

3. Donc les fichiers XHTML sont envoyés dans la plupart des cas avec un content-type text/html

4. Tous les browsers qui reçoivent un fichier avec un content-type text/html interprètent le fichier comme du HTML, et pas comme du XHTML. S'ils reçoivent du XHTML, ils trouvent que c'est du HTML bizarrement formaté. En particulier un prologue <?xml...> c'est du bruit.

5. 99% des fichiers soi-disant en XHTML ne sont pas en XML valide, et s'ils étaient servis avec le bon content-type et interprétés comme du XHTML par le browser, ne seraient même pas affichés.

6. IE se base sur le doctype pour décider s'il est en "quirks mode" (i.e. à la sauce IE pas standard) ou en mode standard. Pour ça, le doctype doit être au tout début. Si tu mets un prologue, il ne "voit" pas le doctype, et donc il passe en quirks mode.

Conclusion:
- arrêtez de faire du XHTML bidon, faites plutôt du HTML 4.01 valide.
- ne mettez pas de prologue XML
- mettez un doctype HTML décent.

Jacques.

Rod la Kox
WRInaute accro
WRInaute accro
 
Messages: 3253
Inscription: 24 Juin 2008

Re: DTD et <?xml version="1.0" encoding="UTF-8"?>

Message le Dim Mai 23, 2010 11:08

jcaron a écrit:1. Un vrai fichier XHTML, c'est servi avec un content-type application/xhtml+xml

Oui et non
C'est conseillé en version 1.0, mais aucunement obligatoire, à la différence du 1.1
Mais il est vrai que pour faire du html, mieux vaut utiliser le HTML 4.01 que le XHTML 1.0.


anemone-clown
WRInaute passionné
WRInaute passionné
 
Messages: 1277
Inscription: 11 Nov 2007

Re: DTD et <?xml version="1.0" encoding="UTF-8"?>

Message le Dim Mai 23, 2010 12:22

jcaron a écrit:Conclusion:
- arrêtez de faire du XHTML bidon, faites plutôt du HTML 4.01 valide.
...
- mettez un doctype HTML décent.

Alors là, je dis bravo! Enfin quelqu'un de réaliste (mais je n'en doutais pas de la part de l'auteur. :wink: ).

A noter qu'avec HTML5, XHTML 2 est enterré... et HTML5 ne demande aucune précision du doctype. On écrit le plus simplement du monde :
Code: Tout sélectionner
<!DOCTYPE HTML>

Et si tu veux utiliser un peu de XML (les CDATA par exemple), il suffit de le déclarer dans la balise html :
Code: Tout sélectionner
<html xmlns="http://www.w3.org/1999/xhtml" lang="fr">


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité