Question bête sur les échappements html

Hibou57

Comme-même (tm)
VIB
En HTML, il faut pour être valide, échapper les symbole “<”, “&” et “>”. Pour le “<”, c’est inévitable, puisque c’est lui qui ouvre les balises. Comme il est échappé comme “&lt;” , il faut bien aussi échapper “&” même dans les cas où on utiliserait pas de caractères nommés à part ça. Mais pour le “>”, je ne vois pas, parce que si le caractère ouvrant des balise est échappé, il n’y a pas besoin d’échapper celui fermant les balises, comme l’échappement de “<” suffit à empêcher de créer une balise non‑intentionnelle. Est‑ce à cause des attributs ? Au cas où “>” serait dans la valeur d’un attributs qui ne serait pas entre guillemet ? Si c’est bien ça, alors dans la cas où on met toujours les valeurs des attributs entre guillemets, normalement “>” ne devrait pas avoir besoin d’être échappé, non ? Mais reste que en XML, cet échappement est requis aussi, les valeurs d’attributs y sont obligatoirement entre guillemets.

C’est juste par curiosité, je ne cherche pas un prétexte pour le pas échapper “>”.
 

farid_h

<defunct>
Contributeur
Wow, excellente question. :cool:

Je ne suis pas sur. Mon impression est que c'est historique et que ca vient de SGML. C'est peut etre aussi pour permettre une classe de parsers plus efficients.

Je vais reflechir a cette question.
 

farid_h

<defunct>
Contributeur
C'est peut-être juste une question de syntaxe ?

Biensur que c'est une question de syntaxe. La question est: quelle est la raison de cette regle specifique? Car pour un parser naif, c'est effectivement pas necessaire d'exiger d'escaper > par &gt;.

La question est tres interessante.

@Hibou57, je me demande si c'est possible de definir un parser en lex et yacc/bison capable de parser un subset de XML avec et sans escape... Il faudrait l'essayer.
 
Haut