2017-07-14 1 views
2

Ceci est un suivi sur How to Configure Eclipse to Work with `ehcache` et il est un exemple de chemin absolu dans How to reference a local XML Schema file correctly?Comment référence fichier XSD local par chemin relatif

Depuis le fichier xsd ne plus être hébergé, j'ai téléchargé une copie de l'archive. J'ai mis le fichier dans mon répertoire de ressources et voudrais le référencer dans mon xsi:schemaLocation à partir d'un chemin relatif de mon projet. Nous avons des fenêtres et des développeurs mac, donc une convention de chemin absolu comme file:///c:/project/foo ne fonctionnera pas.

Une autre alternative au chemin relatif serait s'il y a un moyen de référencer les propriétés du système pour les fenêtres et mac, alors je pourrais faire 2 entrées comme file:///$HOME/workspace/foo.

Mon projet sur mon mac existe en ~/workspace/foo et l'écho de $ HOME donne mon chemin de base.

Mon spring-cache.xml existe dans ./src/main/webapp/WEB-INF/spring/

Mon ehcache-spring-1.2.xsd existe dans ./src/main/resources/

Voici quelques-uns que j'ai essayé sans succès:

 file:///$HOME/workspace/foo/src/main/resources/ehcache-spring-1.2.xsd 
     file:///./src/main/resources/ehcache-spring-1.2.xsd    
     file:///../../../../resources/ehcache-spring-1.2.xsd 
     file:///../../../../resources/ehcache-spring-1.2.xsd 
     ../../../../resources/ehcache-spring-1.2.xsd 
     file://../../../../resources/ehcache-spring-1.2.xsd 
     file://$HOME/workspace/foo/src/main/resources/ehcache-spring-1.2.xsd 
     file://./src/main/resources/ehcache-spring-1.2.xsd    
     file://../../../../resources/ehcache-spring-1.2.xsd 

Il me semble aussi avoir des problèmes à obtenir référence le fichier du chemin absolu aussi, alors peut-être qu'il existe une manière différente de référencer le fichier sur mac? par exemple. Ce qui suit n'a pas fonctionné:

file:///Users/me/workspace/foo/src/main/resources/ehcache-spring-1.2.xsd 
file:////Users/me/workspace/foo/src/main/resources/ehcache-spring-1.2.xsd 
file://Users/me/workspace/foo/src/main/resources/ehcache-spring-1.2.xsd 

Répondre

1

Pensez que mon problème était que le répertoire webapp peut ne pas avoir de visibilité sur le dossier des ressources.

Je dis cela parce basé sur la lecture des questions de débordement de pile suivant, il semble que les choses de chemin relatif devrait être assez straigh avant: XML File with local copy of XML Schema et How to use Schema that is on local machine in XML document

J'ai alors essayé de la force brutale des références, en cas il était quelque chose avec le répertoire deploy ou le chemin de la classe, et tous les suivants ont échoué:

../../../../resources/ehcache-spring-1.2.xsd 
../../../resources/ehcache-spring-1.2.xsd 
../../resources/ehcache-spring-1.2.xsd 
../resources/ehcache-spring-1.2.xsd 
./resources/ehcache-spring-1.2.xsd 
../ehcache-spring-1.2.xsd 
./ehcache-spring-1.2.xsd 

la solution:

Cependant, en déplaçant le fichier xsd de ./src/main/resources/ à ./src/main/webapp/WEB-INF/spring/, j'ai alors pu le référencer correctement/simplement par