Parser une XML à partir d'une DTD - Java - Programmation
Marsh Posté le 07-03-2011 à 11:02:22
Tu crées (ça peut être en mémoire) un fichier qui
1) définit et inclus la DTD (le plus souvent comme une entité parametre externe)
2) définit et inclus ton document a valider, (le plus souvent comme une entité externe)
Et c'est ça que tu parses pour validation
Code :
|
La seule chose à laquelle il faut faire attention, c'est que myroot soit le bon nom de la racine du document xml.
Si on n'a pas accès au nom de la racine, on peut recourir à le technique suivante:
Code :
|
Et il faut créér un nom d'élément pseudo racine dont on est sur qu'il n’apparaît pas comme nom d'élément de la dtd.
Bon, bien entendu, tout ça suppose que ta dtd n'a pas de déclaration initiale de <!DOCTYPE mais c'est assez habituel de nos jours, sauf à vouloir vivre dangereusement.
A+,
Marsh Posté le 07-03-2011 à 11:18:53
Bonjour,
Merci pour ta réponse.
Si je comprends bien, il s'agit dans ce cas de rajouter dans le fichier XML l'entête précisant la DTD à la main afin que lorsuqe je lance le parsing du fichier il prenne cette dernière.
Ne peut on pas le faire via une property du ParserSAX comme pour les xsd sans modifier le fichier source ?
Marsh Posté le 07-03-2011 à 11:46:03
Pas de rajouter dans le fichier XML, mais de créer un petit fichier (le cas échéant, dans un petit buffer en mémoire) qui va être lui validé, et dont la validation va impliquer celle du fichier XML initial.
Citation : Ne peut on pas le faire via une property du ParserSAX comme pour les xsd sans modifier le fichier source ? |
Ben non, il suffit de voir les propriétés dans la doc pour voir que c'est pas le cas, sinon, je me serais pas embêté a faire une réponse compliquée.
http://xerces.apache.org/xerces2-j [...] rImpl.html
A+,
Marsh Posté le 07-03-2011 à 09:41:07
Bonjour,
Je voudrais savoir s'il existe une property dans l'API SAXPArser permettant de valider à partir d'une DTD.
En effet, j'ai réussi à faire une validation à partir d'une xsd:
La partie suivante du code:
me permet d'associer la xsd à partir de laquelle je veux faire ma validation XML.
Je voudrais donc faire pareil mais pour associer une DTD.
En effet dans mon fichier xml, il n'y a pas de précisions sur la DTD
à utiliser pour valider le fichier et donc je souhaite le préciser dans mon code java...
Seriez vous comment faire svp ?
Merci d'avance pour votre aide.