2017-04-11 1 views
1

à mes yeux, cela devrait être un document valide XHTML:Pourquoi XHTML ne fonctionne-t-il pas à l'extérieur avec un préfixe?

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<a:html xmlns:a="http://www.w3.org/1999/xhtml"> 
    <a:head> 
     <a:title>Document title</a:title> 
    </a:head> 
    <a:body> 
     <a:h1>Hello World!</a:h1> 
    </a:body> 
</a:html> 

Cependant, il n'est pas traitée comme XHTML ni par Firefox ni Internet Explorer, montrant la place sous forme de texte (avec des balises non visibles). Si je supprime le préfixe d'espace de nom ...

<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head> 
     <title>Document title</title> 
    </head> 
    <body> 
     <h1>Hello World!</h1> 
    </body> 
</html> 

... il est rendu très bien. J'aurais pensé que les deux documents sont sémantiquement égaux. Pourquoi le premier ne fonctionne pas?

+1

http://test-cases.dorward.me.uk/xhtml/ns.xhtml fonctionne très bien dans Chrome et Firefox lorsque je le teste. – Quentin

+1

Pour clarifier, un fichier avec une extension de '.html' est un fichier HTML, peu importe s'il contient du contenu XHTML ou non. (C'est la raison pour laquelle le second fonctionne, car il contient principalement du contenu HTML valide.) –

Répondre

3

Vous devez vous assurer que les navigateurs obtiennent l'indice pour interpréter le document comme application/xhtml+xml (ou éventuellement l'un des autres XML MIME types) au lieu de text/html.

Sur un serveur, vous pouvez obtenir en envoyant l'en-tête Content-Type HTTP correspondant:

Content-Type: application/xhtml+xml 

localement, vous pouvez généralement le faire en utilisant .xhtml au lieu de .html comme extension de fichier (mais peut dépendre de votre système).

+0

Notez que la grande majorité des serveurs gèrent correctement les fichiers '.xhtml', renvoyant un type mime d'application/xhtml + xml pour ces fichiers par défaut . –