使用绑定文件在命名空间上设置包?

时间:2014-03-26 19:36:52

标签: jaxb moxy

我正在处理两个大的第三方模式,一个包含另一个,并生成大量的类型名称冲突。如果我可以在命名空间上设置包,这个问题就会消失。

我希望像

这样的东西
<jaxb:bindings namespace="http://www.openapplications.org/oagis/9" >
    <jaxb:schemaBindings>
        <jaxb:package name="org.oagis" />
    </jaxb:schemaBindings>
</jaxb:bindings>

会起作用,或者

<jaxb:bindings node="/xsd:schema[@targetNamespace='http://www.openapplications.org/oagis/9']">
    <jaxb:schemaBindings>
        <jaxb:package name="org.oagis" />
    </jaxb:schemaBindings>
</jaxb:bindings>

但没有快乐。

尝试设置该命名空间中的各个xsd文件让我感到恐惧

[ERROR] Multiple <schemaBindings> are defined for the target namespace "http://www.openapplications.org/oagis/9"

赞赏指针/建议。

1 个答案:

答案 0 :(得分:1)

如果没有看到整个编译,这有点难以回答。但是,在通过不同的URL包含相同模式的情况下编译第三方模式时,我经常遇到此错误。

即。我已经实现了一个project,它编译了一组广泛的OGC Schemas。问题是这些模式通过相对和绝对URL互相引用。因此,当我自定义其中一个模式时,对于相同的名称空间URI,存在其他模式。由于JAXB处理导入和包含,因此编译完全不透明。尝试检查XJC日志中的提示,或者 - 如果直接通过URL编译模式(不推荐) - 请通过日志代理查看实际访问的内容。