Le site de jp, le seul site qui sert vraiment à rien.





Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 
Auteur Message
 Sujet du message: [JAVA] parser XML sans DTD
MessagePosté: Mar Nov 15, 2011 12:12 
Joue à domicile
Avatar de l’utilisateur

Inscription: Lun Avr 30, 2007 12:21
Messages: 4753
Petit problème assez général :
2 systèmes qui utilisent/parsent les mêmes fichiers .xml
(pour partager la même configuration par exemple)

pour des raisons techniques, le chemin vers les dtd
n'est pas le même depuis les 2 systèmes (points de montages différents, systèmes
hôtes hétérogènes...)

solution porcasse : modifier le xml et virer la référence vers la dtd
:arrow: ça peut le faire si on est assuré que personne ne modifie ce fichier 'à la main'

solution presque clean : faire en sorte que l'un des 2 systèmes ne tente pas de valider
le fichier (et ne chargera pas la dtd)
il suffit de redéfinir l'EntityResolver du DocumentBuilder like that :

Code:
private static Document getDoc(File f, String docId) throws Exception{
    DocumentBuilderFactory dbf = DocumentBuilderFactory.newInstance();
    DocumentBuilder db = dbf.newDocumentBuilder();
    db.setEntityResolver(new EntityResolver() {
        public InputSource resolveEntity(String publicId, String systemId)
                throws SAXException, IOException {
            if (systemId.contains("foo.dtd")) {
                return new InputSource(new StringReader(""));
            } else {
                return null;
            }
        }
    });

    Document doc = db.parse(f);


    return doc;
}


source : http://stackoverflow.com/questions/155101/make-documentbuilder-parse-ignore-dtd-references


Haut
 Profil Envoyer un e-mail  
Répondre en citant le message  
 Sujet du message: Re: [JAVA] parser XML sans DTD
MessagePosté: Mar Nov 15, 2011 14:11 
Membre de la famille
Avatar de l’utilisateur

Inscription: Sam Nov 06, 2004 15:11
Messages: 2788
Localisation: Deimos, à qques km de chez Mr Spock
Plan B, mettre la dtd en ligne et spécifier l'url dans le xml ?

no ?

_________________
Beer... helping ugly people have sex since 1862.


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: [JAVA] parser XML sans DTD
MessagePosté: Mar Nov 15, 2011 16:32 
Joue à domicile
Avatar de l’utilisateur

Inscription: Lun Avr 30, 2007 12:21
Messages: 4753
aussi, j'y ai pensé, mais cette solution n'est pas applicable partout
et cela ne fonctionne que si ta dtd est publique (ie non confidentielle)

et le pb est que sur le réseau interne, les environnements changent, les serveurs changent,
l'intranet change, les noms de machines changent... bref : rien ne dure tout est ammener
à bouger dans les 2 ans à +/- 15 ans
:p

d'ailleurs, pour tout te dire c'est une URL de type "http://localhost:8083/..."
que nous avons dans les xml... :Hangman:

d'où le besoin de ne plus en entendre parler du coté du système sur lequel je bosse :)


Haut
 Profil Envoyer un e-mail  
Répondre en citant le message  
 Sujet du message: Re: [JAVA] parser XML sans DTD
MessagePosté: Mar Nov 15, 2011 19:47 
Membre de la famille
Avatar de l’utilisateur

Inscription: Sam Nov 06, 2004 15:11
Messages: 2788
Localisation: Deimos, à qques km de chez Mr Spock
Ok, j'capte mieux :)

Effectivement c'est un peu la mouise :Hangman:

_________________
Beer... helping ugly people have sex since 1862.


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 4 messages ] 


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités


Vous pouvez poster de nouveaux sujets
Vous pouvez répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Location de villa à Marseille - Location de gite en alsace pour les vacances
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
DVGFX2 By: Matt
Traduction par: phpBB-fr.com
phpBB SEO