这是对How to Configure Eclipse to Work with `ehcache`的跟进,How to reference a local XML Schema file correctly?
中有一个绝对路径示例由于xsd
文件不再被托管,我从存档中下载了它的副本。我已将该文件放在我的资源目录中,并希望从我项目的相对路径中的xsi:schemaLocation
中引用它。我们有windows和mac开发人员,所以像file:///c:/project/foo
这样的绝对路径约定不起作用。
相对路径的另一种替代方法是,如果有一种方法可以为windows和mac引用系统属性,那么我可以执行2个条目,如file:///$HOME/workspace/foo
。
我的Mac上的项目存在于~/workspace/foo
中,$ HOME的回显给出了我的主路径。
我的spring-cache.xml
存在于./src/main/webapp/WEB-INF/spring/
我的ehcache-spring-1.2.xsd
存在于./src/main/resources/
以下是我尝试过的一些没有成功的事情:
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
我似乎也有问题让它从绝对路径引用文件,所以也许有一种不同的方式来引用mac上的文件?例如以下不起作用:
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
答案 0 :(得分:2)
认为我的问题是webapp目录可能无法查看资源文件夹。
我之所以这样说是因为基于以下堆栈溢出问题的阅读,看起来相对路径的东西应该非常直观:XML File with local copy of XML Schema和How to use Schema that is on local machine in XML document
然后我尝试强制引用,如果它是部署目录或类路径,并且所有以下都失败了:
../../../../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
解决方案:
然而,通过将xsd文件从./src/main/resources/
移动到./src/main/webapp/WEB-INF/spring/
,我只能通过ehcache-spring-1.2.xsd