Bonsoir,
Un détail me tracasse avec les sections CDATA, qui m'inspirent de plus en plus de les écarter autant que possible (pour leur préférer l'échappement standard par les entités de caractères).
Un exemple tout fait m'est venu pendant que je faisais mumuse avec ces fameux fichiers d'archive des MP de Developpez.net
Ces archives encapsulent les corps des messages dans des sections CDATA. Ces messages qui sont à l'origine du BBCode, sont destinés à subir un traitement des espaces identique à celui qui se fait en HTML (à l'exception des balises « code » - j'y viens plus loin, à la fin). Mais d'un autre coté, le CDATA peut (ou est souvent) utilisé pour représenter du code (dans n'importe quel langage), et dans ce dernier cas, les espaces sont à traiter comme des espaces inscécables.
Trés bien, mais si par exemple je traite les espaces des CDATA des archives de MP comme des espaces inscécables, il pourrait y avoir des surprise aprés traitement et affichage : de longues séries de blancs pourraient ne plus être compactées ; comme elles le devraient.
Bref, le CDATA, c'est ambigü, et le mieux est encore d'employer des entités de caractères, qui elles, sont bien plus explicites. Par exemple les archives de Developpez.net pourraient mettre des espaces inscécables dans les balises « code », soit-codé en entités, soit-en caractères Unicode, et les messages seraient encodés eux aussi normalement, en caractères et en entités.
Parce qu'en plus là on voit jusqu'où peut-aller l'ambiguïté : une même section CDATA peut avoir des espaces devant tantôt être traités comme inscécables, tantôt non-inscécables.
C'est ennuyeux ... les sections CDATA.
C'est décidé, je les bannis. D'ailleur j'ai décidé pour mon truc fait maison, que les sections CDATA lues, seraient enregistrées sans CDATA. Mais voilà : comment les lire ??! Par défaut, en considérant tous les espaces comme inscécables, ce qui est loin d'être idéal comme nous l'avons vu précédement, mais qui a au moins l'avantage d'être la moins pire des solutions (traiter tous les espaces comme scecables serait encore pire)
Oilà, c'était le coup de gueule du week-end![]()
Partager