2010-06-22 4 views
0

Wikipédia L'exemple de XHTML-MP:Pourquoi ce code XHTML-MP ne passe-t-il pas la validation W3C?

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.1//EN" 
    "http://www.openmobilealliance.org/tech/DTD/xhtml-mobile11.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"> 
    <head> 
    <title>Hello</title> 
    </head> 
    <body> 
    <p>Hello <a href="http://example.org/">world</a>.</p> 
    </body> 
</html> 

Cela échoue W3C validation avec l'erreur entrée n'est pas correcte UTF-8, indique le codage! Octets: 0xA9 0x20 0x32 0x30

Même si vous ajoutez <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> et dites au validateur que c'est UTF8, cela donne cette erreur.

Si le DOCTYPE XHTML-MP est supprimé, cela fonctionne correctement. Quel est le deal?

Répondre

1

Le problème provient de la DTD externe. Si vous modifiez le DOCTYPE à cela, il valide:

<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" 
"http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> 
+0

Cela valide, mais c'est une version différente de XHTML-MP. J'ai malheureusement besoin de XHTML-MP 1.2 sur le site que j'essaie de valider, ce qui donne la même erreur que l'exemple de Wikipedia. La version 1.0 ne supporte pas les includes Javascript. Ces nouvelles versions (1.1, 1.2) ne sont-elles pas officiellement supportées ou quoi? – realworldcoder

+0

On dirait que la DTD 1.1 est codée comme iso-8859-1 plutôt que comme utf-8. –

0

http://mobiready.com/launch.jsp?locale=en_EN validation bien. Wierd

De même, vous n'avez pas besoin d'utiliser 1.1 pour utiliser JavaScript. Bien qu'il ne validerait pas sur le vérificateur de W3,

<?xml version="1.0" encoding="utf-8"?> 
<!DOCTYPE html PUBLIC "-//WAPFORUM//DTD XHTML Mobile 1.0//EN" "http://www.wapforum.org/DTD/xhtml-mobile10.dtd"> 

fonctionne très bien avec presque tous les téléphones pris en charge JavaScript.

Questions connexes