我使用JAXB-2Maven插件从一些xsd文件开始生成java类。我的配置如下。我有三个没有目标命名空间A的模式文件,B是由C包含的,然后我有另外两个模式D和E,它们都有一个提供的名称空间,这两个模式都包括C。是否可以使用绑定或不同的执行(带情节)让每个模式生成类在不同的包中?类似于:
A schema (no namespace) -> com.packageA
B schema (no namespace) -> com.packageB
C schema (no namespace) -> com.packageC
D schema (namespace X) -> com.packageD
E schema (namespace X) -> com.packageE当然没有重复的课?或者我能拥有的最好的是有两个包,一个用于属于带有空命名空间的XSD文件的类,另一个用于具有名称空间X的两个XSD文件?你能提供一个pom.xml文件的例子来实现这个目标吗?谢谢,怎么才能
发布于 2017-08-21 09:24:57
免责声明:,我是maven-jaxb2-plugin的作者,所以这个答案是关于插件的。
这被称为“单独模式编译”。这可以通过使用剧集来实现,请参阅解释文档中的maven-jaxb2-plugin。
简言之:
maven-jaxb2-plugin将使用依赖项作为插曲。下面是一个项目,它以这种方式编译大量的模式。其结果是一些与模式依赖关系密切相关的100+工件。
我看到的一个问题是,模式A、B和C具有相同(空)命名空间,映射到不同的包。这在JAXB中可能不太适用(请参见“变色龙名称空间”)。
https://stackoverflow.com/questions/45761730
复制相似问题