这是我想要实现的一个小例子:
Maven Artifact A 是众多 Web 服务之一,它定义了一个 XSD 模式,其中包含请求和响应的定义。(src/main/资源/xsd)
Artifact A 依赖于 Artifact B,它是一个简单的 JAR 项目,包含大量具有低级类型描述的 Master XSD。(src/main/资源/xsd)
工件 A 中的 XSD 使用在工件 B 中指定一次的类型定义(包含)。
如果可能的话,我真的很想知道如何包含位于作为 maven 依赖项加载的 jar 中的 xsd 文件,以及如何在 Netbeans 和 Eclipse 等 IDE 中解析 webservice xsd(和 wsdl)。
如果这种方法看起来很奇特 - 是否有更好的清洁设计实践?
更新
首先,这是一个简单的示例,说明我希望架构包含如何工作......
Artifact A (WAR Module)
POM:
...
<artifactId>A</artifactId>
...
<dependency>
<artifactId>B</artifactId>
...
</dependency>
Schema:
....
<xs:include schemaLocation="classpath://net/elfwyn/xsd/schema.xsd"/>
....
Artifact B (JAR Module)
Schema Location:
src/main/resources/net/elfwyn/xsd/schema.xsd
对于这样的问题,似乎有几种解决方案,但我不知道如何在我的环境中实现它们:
我知道嵌入在(netbeans7.1)IDE(用于开发环境)中并且可作为 Maven 插件(用于生产环境)中的目录解析器,它应该能够在模式文件的位置指定别名。然后应将此别名用作模式位置。
但是我不知道如何指定访问 JAR 文件中的模式的 Catalog.xml。对我来说,这似乎与直接在模式位置中指定它是相同的问题。还有维护每个 WAR 目录的开销——如果可能的话,我宁愿不接受这个项目。
关于 Maven 插件,我还没有找到任何结论性的东西。
其他来源正在 jax-b 的上下文中实现自定义目录解析器,但我还看不到在 Java-WS 环境中实现这种解析器的可能钩子,以及它应该如何与上面提到的 maven-plugin 一起工作或 IDE 目录解析器...