Depuis Facelets est une base de XML technologie d'affichage qui mange et qui émet dans l'essence de balisage XML, vous ne pouvez pas l'utiliser avec un HTML4 doctype. Le HTML4 doctype décrit plusieurs éléments qui ne peuvent pas être auto-fermeture, comme <link>
, <meta>
, <br>
et <hr>
. Cependant, avec le XML, vous êtes obligé de les fermer comme <link/>
, <meta/>
, etc. Donc, à l'aide d'un HTML4 doctype n'est absolument pas une option pour les Facelets (qui est, lorsque vous respectez les normes et/ou de la peur le w3c validator, il va cependant de fonctionner parfaitement sur la plupart, si pas tous les navigateurs internet).
HTML5, d'autre part, permet de balisage XML. Ceci est spécifié dans le chapitre 3.2.2 - Éléments:
Exemple:
<link type="text/css" href="style.css"/>
Les auteurs peuvent éventuellement choisir d'utiliser la même syntaxe pour les nuls éléments de la syntaxe HTML. Certains auteurs ont également choisir d'inclure d'espace avant le slash, mais ce n'est pas nécessaire. (En utilisant les espaces que la mode est une convention hérité de la compatibilité des lignes directrices en XHTML 1.0, Annexe C.)
J'utilise moi-même <!DOCTYPE html>
tout le chemin, aussi avec la JSF/Facelets, même sans <?xml?>
déclaration en haut de la page. Il fonctionne parfaitement sur tous les navigateurs. Avec un doctype XHTML vous devez conformément à la spécification être l'aide d'un Content-Type
de application/xhtml+xml
qui ne ferait que MSIE à étouffer (il n'a pas le comprendre). Et puisque c'est encore l'un des navigateurs les plus couramment utilisés... en Remplaçant le XHTML type de contenu en text/html
est considéré comme nocif, vous ne voulez pas le faire.
En fonction de vos arguments:
HTML 5 ne prennent pas en charge les espaces de noms.
Ce n'est pas grave. Les espaces de noms ne sont d'intérêt pour le XML serveur en fonction de la vue de côté de la technologie (comme Facelets) qui peuvent à leur tour générer du HTML pur avec ces balises. L'exemple suivant est légitimement valable pour les Facelets:
<!DOCTYPE html>
<html lang="en"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Title</title>
</h:head>
<h:body>
<h:outputText value="#{bean.text}" />
</h:body>
</html>
Cela rend légitimement HTML5 valide (pour le côté client):
<!DOCTYPE html>
<html lang="en">
<head>
<title>Title</title>
</head>
<body>
Some text
</body>
</html>
Vous voyez, Facelets déjà supprime le XHTML déclarations, car ils n'ont pas de sens dans le côté client.
Et,
Aussi le HTML 5 a certains nouveaux éléments qui ne sont pas disponibles en XHTML
cela aussi a aucun sens. Il est tout au sujet de la sortie générée. Qui peut être HTML5 comme bonne. Votre seul problème est peut-être la prise en charge du navigateur et de la disponibilité de la 3ème partie de composants JSF qui rend HTML5 éléments spécifiques.
En fait, le XHTML est overhyped. Sa seule intention est de faciliter le développement de HTML à l'aide de XML en fonction des outils qui peuvent manipuler/transformer/générer des pages HTML sur le côté serveur (comme Facelets). Mais certains démarreurs également l'utiliser sans l'aide d'aucun outil XML et de sortie de la plaine, parce que c'est "cool",- pour une obscure raison.
Ne m'obtenez pas le mal. XHTML est grand comme serveur de côté vue de la technologie. Mais tout simplement pas comme côté client balisage de la technologie. Il a absolument aucune valeur le côté client.
Voir aussi: