34 votes

Qu'est-ce qui #39;s la nécessité de XHTML?

Dans une interview, on m'a posé une question à laquelle je n'avais jamais pensé, qui était "Nous avons déjà HTML qui répond à toutes les exigences de l'écriture d'une page web, alors quel est le besoin de XHTML?"

J'ai googlé beaucoup et aussi lire de nombreux articles, mais je ne suis pas en mesure d'obtenir correctement pourquoi XHTML a été introduit. Expliquez-moi, s'il vous plaît.

33voto

Johannes Weiß Points 19013

Parce qu'il est valide XML. Cela aide beaucoup car vous pouvez l'utiliser beaucoup d'outils conçu à l'origine pour XML, tels que les analyseurs XML, XSLT, XPath, XQuery, ...

HTML est un langage SGML dialecte et qui n'est pas analysée sans la connaissance du schéma.

<ul>
    <li>one
    <li>two
    <li>three
</ul>

est HTML correct mais pas correct XML. Si vous souhaitez analyser, vous devez savoir qu' ul-éléments doivent être fermés, mais li s n'en ont pas.

26voto

jrockway Points 23734

XHTML vous permet également d'intégrer d'autres dialectes XML comme MathML, Ruby, SVG, etc. (Vous pouvez également intégrer XHTML dans d'autres dialectes XML, si souhaitée.)

Si vous ne faites qu'une page web, vous n'avez pas nécessairement besoin Xhtml. Mais si vous génèrez une page programmatiquement, vous pourriez trouver que les outils pour générer XML sont meilleurs que ceux qui générer HTML.

24voto

Sesh Points 3270

Je suis en train de ce demander pourquoi ces trois posts qui parlent de navigateur-consistance et bien formé html ont été votées à la baisse?

Il est connu que le HTML est un standard de l'industrie. Les navigateurs sont mises en œuvre afin de rendre le contenu balisé comme décrit dans le standard HTML. Malheureusement il y a des zones qui n'ont pas été bien définis dans le code HTML: ce qui se passe si l'utilisateur a oublié une balise de fermeture ou que faire si une visée de l'image n'est pas trouvé? certains navigateurs utilisent le " alt "de la balise d'avoir une place de titulaire élément de texte et certains navigateurs affichent le" alt " de la balise comme un outil de pointe. Le fameux "bizarreries" mode de navigateurs est une conséquence de ce manque de clarté. De ce fait, il est devenu tout à fait possible que la même page web serait de afficher différemment sur les différents navigateurs.

Également au format HTML d'utilisation a augmenté, il y avait un problème de plus: il n'était pas extensible - il n'y avait pas moyen d'ajouter des balises définies par l'utilisateur.

XHTML résout les problèmes ci-dessus:

  • adopter XML pour fournir extensible balises.
  • fournir une norme "stricte" pour les navigateurs web

XHTML a des règles bien définies sur la structure et ceux-ci peuvent être par programmation appliquée. Cochez la ligne "XHTML Validateurs". Ils vous diront si votre XHTML est bien formé ou pas (et de mettre en évidence les zones à problème). En raison de ces règles strictes de votre page est plus ou moins garanti de regarder la même chose sur tous les navigateurs, la mise en œuvre de XHTML.

[remarque] si vous souhaitez vérifier les ci-dessus, veuillez vous reporter au texte "la Tête la Première en XHTML et CSS"

20voto

annakata Points 42676

En plus de johannes réponse, HTML est beaucoup trop lâche dans ses interprétations et la tolérance, où la formalisation stricte de XHTML nie cela.

La tolérance conduit à la variance, ce qui conduit à des incompatibilités de navigateur, ce qui conduit au côté obscur.

14voto

Parrots Points 10968

De Wiki:

Parce qu'ils ont besoin d'être bien formé, vrai les documents XHTML permettre le traitement automatisé d'être effectuée à l'aide d'outils XML standard-contrairement à HTML, ce qui nécessite une relativement complexe, clément, et généralement personnalisé de l'analyseur. XHTML peut être considéré comme le intersection de HTML et de XML dans de nombreux égards, puisque c'est une reformulation de HTML en XML.

Avoir HTML conforme aux normes XML permet une beaucoup plus cohérent d'analyse de la page. Alors que dans le HTML, par exemple, vous avez été autorisé à avoir des balises de commande <b><u>test</b></u> maintenant vous ne pouvez pas, ils doivent être fermées dans l'ordre de leur ouverture. Ce genre de choses faire DOM l'analyse (qui est maintenant largement utilisé dans AJAX) beaucoup plus facile.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X