Pour le code source à jour de ce module:

http://svn.cs.brynmawr.edu/viewvc/Pyjama/trunk/IronPython/Lib/xml/sax/saxutils.py?view=markup&pathrev=9
ou (version 3)
http://www.opensource.apple.com/source/python/python-3/python/Lib/xml/sax/saxutils.py
ou
https://vmi.lmt.ei.tum.de/projects/ros/browser/trunk/vmi_cognitive_environment/ce_skype/src/sky2ros/Student/client/xml/sax/saxutils.py

Ce codage de quoteattr() est correct et n'oublie pas "&", puisqu'il
utilise escape() en interne, qui remplace systématiquement ce
caractère.

Le 10 février 2012 12:58, Philippe Verdy <verd...@wanadoo.fr> a écrit :
> Note, la doc Python du module SAX est là:
>
> http://docs.python.org/library/xml.sax.utils.html
>
> Elle précise bien que quoteattr() doit normalement encoder les mêmes
> caractères que:
>
> xml.sax.saxutils.escape(data[, entities])
>
> sans même avoir à passer un tableau entities (les caractères "&", "<"
> et ">" sont inclus par défaut), mais quoteattr() ajoute les guillemets
> (") et apostrophes ('), sans retirer pour autant le caractère "&" des
> entités de substitution définies par défaut.
>
> Visiblement c'est un problème de version du module "xml.sax.saxutils"
> que tu utilises (il faut une version 2.2 ou supérieure de Python pour
> avoir cette fonction). Note bien que quoteattr() a été conçu pour HTML
> ou SGML, pas pour la conformité XML ou XHTML (la conformité XML vient
> avec la version 2.3 il me semble, sinon il te faut passer un paramètre
> entities ; Python est actuellement en version 2.7)
>
>
> Le 10 février 2012 12:45, Philippe Verdy <verd...@wanadoo.fr> a écrit :
>> A mon avis le bogue est surtout à corriger dans la fonction
>> quoteattr() du module Python "sax.saxutils".
>>
>> Car ***même*** en HTML ou SGML (au lieu de XML ou XHTML) il faudrait
>> systématiquement recoder un "&" présent dans une valeur qu'on veut
>> encapsuler dans un attribut d'élément HTML (ou XML). Tout parseur HTML
>> ou SGML reconnait "&amp;" automatiquement (sans avoir besoin de
>> définir l'entité), mais ***tolère*** (par compatibilité ascendante
>> avec les très vieux navigateurs HTML, d'avant même HTML4) des valeurs
>> contenant des entités mal codées (dans ce cas un parseur HTML a un
>> "fallback" lui permettant de réinterpréter la valeur donnée sans faire
>> le décodage des entités, mais PAS un parseur XML qui s'y refuse, car
>> c'est un trou de sécurité).
>>
>> Le code d'Osmose visiblement l'oublie quand il génère aussi d'autres
>> URLs "en dur" à d'autres endroits de la page HTML du frontend (mais ce
>> frontend est codé pour générer du HTML, pas du XHTML, ce qui autorise
>> le "fallback" pourtant pas recommandé du tout et dangereux).
>>
>>>> Mon dépôt osmose sur gitorious n'est pas vraiment une référence.
>>>> Regardes plutôt la branche dev de http://gitorious.org/osmose pour la
>>>> version de développement.

_______________________________________________
Talk-fr mailing list
Talk-fr@openstreetmap.org
http://lists.openstreetmap.org/listinfo/talk-fr

Répondre à