XML Schema参考

时间:2010-10-20 14:41:09

标签: java spring xsd jaxb xsd-validation

我有两个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">的内容)

如何修复?如何从项目模式引用库模式?

3 个答案:

答案 0 :(得分:4)

查看我之前关于如何使用ResourceResolver解决此问题的问题的答案:

您的LSResourceResolver实现将处理从类路径加载模式并将其转换为适当的结果。

答案 1 :(得分:1)

您需要配置自己的解析器。 jaxb中的任何内容都不会使用classpath:。

有一个JAXB示例显示了这种情况。

答案 2 :(得分:0)

classpath:不是架构位置的有效网址。您必须使用XML catalogs从jar加载模式。