首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JAXB-2 Maven插件、模式包含和绑定

JAXB-2 Maven插件、模式包含和绑定
EN

Stack Overflow用户
提问于 2017-08-18 17:09:43
回答 1查看 1.4K关注 0票数 1

我使用JAXB-2Maven插件从一些xsd文件开始生成java类。我的配置如下。我有三个没有目标命名空间A的模式文件,B是由C包含的,然后我有另外两个模式D和E,它们都有一个提供的名称空间,这两个模式都包括C。是否可以使用绑定或不同的执行(带情节)让每个模式生成类在不同的包中?类似于:

代码语言:javascript
复制
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文件的例子来实现这个目标吗?谢谢,怎么才能

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-21 09:24:57

免责声明:,我是maven-jaxb2-plugin的作者,所以这个答案是关于插件的。

这被称为“单独模式编译”。这可以通过使用剧集来实现,请参阅解释文档中的maven-jaxb2-plugin

简言之:

  • 每个逻辑模式创建一个Maven项目。通常,每个不同的命名空间都有一个项目。
  • 如果模式B使用模式A,则将模式A的工件作为B的依赖项。
  • 默认情况下,maven-jaxb2-plugin将使用依赖项作为插曲。
  • 在某些情况下,仍然会为包含的情节生成一些restover类。它们不应该是,我相信这是XJC中的一个bug。在这种情况下,添加清理任务。
  • 准备好面对许多奇怪的问题,因为XJC是一个棘手的工具。

下面是一个项目,它以这种方式编译大量的模式。其结果是一些与模式依赖关系密切相关的100+工件。

我看到的一个问题是,模式A、B和C具有相同(空)命名空间,映射到不同的包。这在JAXB中可能不太适用(请参见“变色龙名称空间”)。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45761730

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档