[java] validation xml, '&' et CDATA

Résolu/Fermé
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 8 janv. 2008 à 17:01
 Roly - 22 mai 2012 à 10:03
Bonjour,

Je viens à vous car j'ai un soucis lorsque j'essai de valider un document XML.
Dans mon xml en entrée il se trouve que j'ai parfois pour valeur de certaines balise un texte contenant le caractère '&' sans pour autant que ce soit une entité.
Ex: "Je suis dans la mainson avec mon frere & ma mere"

Or, lorsque je valide le document, SAX lève une exception me disant que le caractère '&' n'est pas suivi du nom d'une entité correcte, ce qui a pour conséquence de ne pas valider mon document.

Je voudrais pouvoir passer outre cette erreur, sauriez-vous comment faire ?

Je me suis dit que définir les données interne à une balise en CDATA serait la solution ? Mais là encore je ne suis pas sûr de la marche à suivre (ni tout simplement comment le faire).
Je précise que dans mon fichier xml, une DTD est renseignée, indiquant les différentes entities à remplacer, mais c'est tout. Pour la validation j'utilise un schéma xsd (non créé par mes soins) externe.

Si l'un de vous peut me venir en aide je l'en remercierai beaucoup :)

A voir également:

1 réponse

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
8 janv. 2008 à 17:17
Bon en fait je posais la question car je recois des fichiers xml ou autre en entrée d'une première étape qui consiste à transformer n'importe quel type de fichier de donnée en XML, puis de standardiser les différents tags de ces xml, les valider, avant de le retranscrire dans un fichier à plat en EBCDIC.

Ayant donc 4 étapes, je vais finalement retranscrire les caractères '&' sans entities en '&' dans l'étape 1, puis reconvertir les & en & juste avant la conversion en EBCDIC dans la 4 ieme étape.

Je n'ai donc plus besoin de réponse, mais si toutefois quelqun à une solution autre je suis preneur, à titre d'information :)
0
Après une petite recherche j'ai trouvé que le & est une marque de réservation et qu'il doit être remplacé par & qui correspond à ce symbol. il y a une liste des autre symbol de réservation ici :
http://www.w3schools.com/xml/xml_syntax.asp
au chapitre "Entity References"
0