是否可以使用JAXB生成共享对象?

时间:2010-05-27 17:26:31

标签: java jaxb jaxb2

我有3个xsd文件:

  • a.xsd
  • b.xsd
  • shared.xsd

使用

将shared.xsd导入到a.xsd和b.xsd
<xs:import schemaLocation="shared.xsd"/>

shared.xsd定义

<xs:element name="item">
<xs:complexType> ....

如果我使用xjc a.xsd生成java代码,并且b.xsd生成到不同的包中,并且在每个包中为item生成单独的java类。如何为item创建一个共享类并让a和b使用它?

2 个答案:

答案 0 :(得分:0)

您可以覆盖生成文件的包。这应该允许两个共享对象进入相同的位置。

xjc -p com.test a.xsd b.xsd shared.xsd

我认为这就是你要找的东西。

答案 1 :(得分:0)

要么执行@Chris Dail所说的内容,要么将a.xsdb.xsd合并到一个模式文件中,因为JAXB看起来是创建程序包的命名空间。