3

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

系统的一个较旧部分为 Atom 编写了一个专门针对其服务 XSD 的一次性程序,该服务仅与它们的特定元素硬连接。我现在需要添加对新服务的支持,该服务正在做类似的事情(使用 Atom 作为“信封”),但使用明显不同的元素和内容架构。

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

我遇到了:

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

我显然达到了XJC 发行说明<jaxb:schemaBindings>中描述的限制:每个命名空间拥有多个命名空间是不合法的。

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

我们正在使用 maven jaxb 插件。

4

1 回答 1

1

只是为了记录,我们最终做的是分别从模式生成代码,并签入生成的代码。由于 ATOM 模式没有改变,它是相当安全的。不过,不得不这样做很烦人。

于 2013-05-27T21:11:54.863 回答