我正在处理两个大的第三方模式,一个包含另一个,并生成大量的类型名称冲突。如果我可以在命名空间上设置包,这个问题就会消失。
我希望像
这样的东西<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"
赞赏指针/建议。
答案 0 :(得分:1)
如果没有看到整个编译,这有点难以回答。但是,在通过不同的URL包含相同模式的情况下编译第三方模式时,我经常遇到此错误。
即。我已经实现了一个project,它编译了一组广泛的OGC Schemas。问题是这些模式通过相对和绝对URL互相引用。因此,当我自定义其中一个模式时,对于相同的名称空间URI,存在其他模式。由于JAXB处理导入和包含,因此编译完全不透明。尝试检查XJC日志中的提示,或者 - 如果直接通过URL编译模式(不推荐) - 请通过日志代理查看实际访问的内容。