在同一个xml命名空间中为多个模式设置xjc的maven构建?

时间:2012-09-11 00:28:01

标签: java maven jaxb

我正在开发一个项目,我们有一个基于Jersey / JaxB的序列化系统来与Web服务进行通信。有问题的服务会返回Atom提要中包含的数据。

系统的旧部分写了一个特定于他们的服务XSD for Atom的一次性,它只与他们的特定元素紧密相连。我现在需要添加对新服务的支持,它正在做类似的事情(使用Atom作为“信封”),但使用明显不同的元素和内容模式。

我不想打扰现有的代码,所以理想情况下我想做上一个项目所做的事情:为新服务正在使用的Atom部分定义我自己的架构。

我遇到了:

org.xml.sax.SAXParseException: 'feed' is already defined

我显然达到了the XJC release notes中描述的限制:每个命名空间有多个<jaxb:schemaBindings>是不合法的。

有没有办法在我们的构建中进行设置,这样如果我有单独的xjb文件,我可以在两个不同的模式上独立运行xjc,并为每个模块生成代码到单独的包中?我如何解决这个限制?

我们正在使用maven jaxb插件。

1 个答案:

答案 0 :(得分:1)

仅仅为了记录,我们最终做的是分别从架构生成代码,并检查生成的代码。由于ATOM架构没有变化,因此相当安全。很烦人,不得不这样做。