我有两个XML Schema。第一个(A.xsd
)位于库jar文件(mylib.jar
)中,第二个(B.xsd
)位于我的项目中。
我想将A.xsd
导入B.xsd
并通过Jaxb2Marshaller
嵌入式验证程序验证传入的XML。
但是我无法使其正常工作:Jaxb2Marshaller
的内部XML验证器似乎无法理解对jar文件中文件的引用(我只想编写类似<xs:import namespace="http://my/schema.xsd" schemaLocation="classpath:schema.xsd">
的内容)
如何修复?如何从项目模式引用库模式?
答案 0 :(得分:4)
查看我之前关于如何使用ResourceResolver解决此问题的问题的答案:
您的LSResourceResolver实现将处理从类路径加载模式并将其转换为适当的结果。
答案 1 :(得分:1)
您需要配置自己的解析器。 jaxb中的任何内容都不会使用classpath:。
有一个JAXB示例显示了这种情况。
答案 2 :(得分:0)
classpath:不是架构位置的有效网址。您必须使用XML catalogs从jar加载模式。