> Je ne trouve pas que stoquer une information dans une table syst�me
> accessible � toute la machine virtuelle soit tr�s pratique...

C'est le syst�me utilis� par Sun. Par exemple pour le param�trage de Swing.
Si le nom des informations est bien "form�", c'est � dire pr�c�d� du
classpath de la classe qui l'emploie/le g�re alors il n'y pas de risque de
conflit et la valeur peut �tre modifi�e dans la ligne de commande "-D"+nom.

> J'ai r�ussi
> n�anmoins � r�soudre mon probl�me d'une fa�on qui me pla�t un peu plus

C'est pour te proposer cette solution que je te parlais d'EntityResolver
dans mon pr�c�dent m�l.
Mais n'oublie pas de pr�ciser le SystemId de la source principale (par URL
compl�te ou r�f�rente).
Car demain, il va de soit qu'il te faudra g�rer des DTDs externes (voir loi
de Murphy :-)).

A+

--------------------------------------------------------------------
Erik Mazoyer, Chef de projet
HyperOffice
6, rue Jacques Daguerre - 92565 Rueil-Malmaison Cedex
T�l. 01 41 96 96 76
Fax 01 41 96 96 77
M�l  [EMAIL PROTECTED]


----- Original Message -----
From: "Zeljko VELAJA" <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Friday, October 11, 2002 5:34 PM
Subject: RE: chemin vers une DTD dans Xerces


> Je ne trouve pas que stoquer une information dans une table syst�me
> accessible � toute la machine virtuelle soit tr�s pratique, cela dit,
l'id�e
> de stoquer la valeur dans un contexte global me semble bonne. J'ai r�ussi
> n�anmoins � r�soudre mon probl�me d'une fa�on qui me pla�t un peu plus :
en
> d�finissant un nouveau EntityResolver qui, une fois associ� au parseur, me
> permet de faire exactement ce que je veux, � savoir :
>
> - modifier � loisir le systemId de l'appel � la DTD
> - g�rer moi-m�me la cr�ation de l'InputSource de la DTD et rester ma�tre,
> ainsi, des entr�es et des sorties :
>
> DOMParser parser = new DOMParser();
> parser.setEntityResolver(
> new EntityResolver()
> {
> public InputSource resolveEntities(String publicId, String systemId)
> {
> // mon traitement
> }
> }
> );
>
> -----Message d'origine-----
> De : Erik Mazoyer [mailto:erik.mazoyer@;hyperoffice.fr]
> Envoy� : vendredi 11 octobre 2002 11:21
> � : '[EMAIL PROTECTED]'
> Objet : RE: chemin vers une DTD dans Xerces
>
>
> > je travaille avec un syst�me de documents XML qui sont tous
> > adress�s par des chemins relatifs � un r�pertoire unique suppos� connu
au
> > moment de l'ex�cution.
>
> Au contraite, le cas est simple.
> Au lancement de ton application tu trouve le r�pertoire (passage de
> param�tre ou autre solution).
>
> Avec ton File tu en extrais une URL (.toURL()) et tu place sa forme String
> (.toExtrenalForm()) dans une propri�t� System
>
(System.setProperty("fr.masoci�t�.monclien.monprojet$xmlSourceFolder",monUrl
> EnString);
>
> Quand tu lis un fichier en traitement, tu as juste � �crire
>
InputSource.setSystemId(System.getProperty("fr.masoci�t�.monclien.monprojet$
> xmlSourceFolder");
>
> Si tes fichiers incluent d'autre fichiers � leur tour et que ces derniers
> doivent aussi faire r�f�rence � ce dossier unique m�me s'ils sont plac�
> n'importe ou sur le disque, tu d�finis un org.xml.sax.EntityResolver en
> ajoutant :
>
InputSource.setSystemId(System.getProperty("fr.masoci�t�.monclien.monprojet$
> xmlSourceFolder");
> sur l'inputsource trouv�.
> Et tu indiques � ton parser l'EntityResolver � utiliser.
>
> A+
>
> --------------------------------------------------------------------
> Erik Mazoyer, Chef de projet
> HyperOffice
> 6, rue Jacques Daguerre - 92565 Rueil-Malmaison Cedex
> T�l. 01 41 96 96 76
> Fax 01 41 96 96 77
> M�l  [EMAIL PROTECTED]
>
>
> -----Message d'origine-----
> De : Zeljko VELAJA [mailto:zvelaja@;visualfriendly.com]
> Envoy� : vendredi 11 octobre 2002 11:04
> � : [EMAIL PROTECTED]
> Objet : RE: chemin vers une DTD dans Xerces
>
>
> Tr�s clair. Mais le probl�me, c'est que c'est encore un peu trop
restrictif
> encore : je travaille avec un syst�me de documents XML qui sont tous
> adress�s par des chemins relatifs � un r�pertoire unique suppos� connu au
> moment de l'ex�cution. Il me faudrait en fait faire comprendre au parseur
> que c'est par rapport � ce r�pertoire qu'il doit r�soudre les URL. Se
baser
> sur l'URL courante peut n�anmoins aider dans un premier temps :
j'essaierai.
>
> -----Message d'origine-----
> De : Erik Mazoyer [mailto:erik.mazoyer@;hyperoffice.fr]
> Envoy� : vendredi 11 octobre 2002 09:47
> � : '[EMAIL PROTECTED]'
> Objet : RE: chemin vers une DTD dans Xerces
>
>
> Ce qu'il te faut, c'est dire � ton "org.xml.sax.InputSource" � quelle URL,
> "elle" fait r�f�rence.
>
> InputSource source = new InputSource(...);
> source.setSystemId(monUrl.toExternalForm());
>
> Le syst�me r�soudra alors les inclusions avec le SystemId de ton fichier
> c'est � dire l'url. Il faut donc que tes fichiers externes aient des urls
> relatives � l'URL du fichier contenant.
>
> C'est clair ???
>
> --------------------------------------------------------------------
> Erik Mazoyer, Chef de projet
> HyperOffice
> 6, rue Jacques Daguerre - 92565 Rueil-Malmaison Cedex
> T�l. 01 41 96 96 76
> Fax 01 41 96 96 77
> M�l  [EMAIL PROTECTED]
>
>
> -----Message d'origine-----
> De : Zeljko VELAJA [mailto:zvelaja@;visualfriendly.com]
> Envoy� : jeudi 10 octobre 2002 17:35
> � : [EMAIL PROTECTED]
> Objet : chemin vers une DTD dans Xerces
>
>
> Une question pour les mordus de SAX et de DOM :
>
> j'utilise la classe DOMParser de Xerces pour parser un document XML. Dans
ce
> document je veux inclure un DOCTYPE qui importe une DTD d�clarant un
certain
> nombre d'entit�s. Je veux pouvoir utiliser une URL relative comme
> identifiant syst�me, genre :
>
> <!DOCTYPE mon_element_document SYSTEM "URI relative vers ma DTD">
>
> Mon probl�me est le suivant : comment faire comprendre au parseur XML
> comment r�soudre l'URL relative ? Par d�faut, il semble se baser sur le
> premier chemin d�clar� dans le CLASSPATH. Or je voudrais pouvoir sp�cifier
> moi-m�me le chemin de base qu'il doit prendre en compte (ind�pendamment du
> CLASSPATH, bien entendu). Comment puis-je faire ? Mieux, existe-t-il un
> moyen pour lui fournir le flux de la DTD par mes propres moyens ?
>

Répondre à