我在生成 jaxB 类时发生了一些对象冲突,我知道我可以做一些事情,例如使用自定义绑定(bind)文件来解决冲突,但是,这种冲突发生在使用不同 namespace 的单独文件中具有相同名称的两个元素之间。它们具有不同的命名空间这一事实还不够吗?
parsing a schema...
compiling a schema...
[ERROR] A class/interface with the same name "code.NameType" is already in use. Use a class customization to resolve this conflict.
line 215 of file:/C:/Workspace/schemaGen/SchemaGen/src/schemas/Core.xsd
[ERROR] (Relevant to above error) another "NameType" is generated from here.
line 47 of file:/C:/Workspace/schemaGen/SchemaGen/src/schemas/SearchCore.xsd
最佳答案
冲突不是命名空间的问题,而是 QName 生成的问题。这就是他们发生冲突的地方。
我找到了 3 个选项来解决这个问题:
- 将 XSD 中的类重命名为其他名称以避免此问题。
- 创建绑定(bind)文件以在生成时重新映射类
- 自下而上生成类,制作剧集文件和 每次都指定一个新包,这样对象就不会发生冲突 在同一个包内。
关于java - 命名空间之间的 jaxB 冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13639242/