我正在做一个项目,我们有基于 Jersey/JaxB 的序列化系统来与 Web 服务通信。有问题的服务返回包装在 Atom 提要中的数据。
系统的一个较旧部分为 Atom 编写了一个专门针对其服务 XSD 的一次性程序,该服务仅与它们的特定元素硬连接。我现在需要添加对新服务的支持,该服务正在做类似的事情(使用 Atom 作为“信封”),但使用明显不同的元素和内容架构。
我不想打扰现有的代码,所以理想情况下我想做与上一个项目相同的事情:为新服务正在使用的 Atom 部分定义我自己的模式。
我遇到了:
org.xml.sax.SAXParseException: 'feed' is already defined
我显然达到了XJC 发行说明<jaxb:schemaBindings>
中描述的限制:每个命名空间拥有多个命名空间是不合法的。
有没有办法在我们的构建中进行设置,以便如果我有单独的 xjb 文件,我可以在两个不同的模式上独立运行 xjc 并为每个模式生成代码到单独的包中?如何解决此限制?
我们正在使用 maven jaxb 插件。