我创建了一个新的JAXB项目并导入了一个xsd,我试图从中生成JAXB类。当我选择" Generate-> JAXB Classes"我得到了许多与命名冲突有关的类似错误:
A class/interface with the same name "generated.Document" is already in use. Use a class customization to resolve this conflict.
从以下.xsd文件中抛出上述错误
<xs:complexType name="Document">
<xs:sequence>
<xs:element ref="Document"/>
</xs:sequence>
</xs:complexType>
<xs:element name="Document">
...
更改.xsd文件对我来说不是一个选项,所以我必须找到另一种方法。我一直在阅读有关创建绑定文件的可能性。我似乎无法找到关于如何针对我的特定问题做到这一点的良好文档。我的三个主要问题是:
答案 0 :(得分:1)
是的,您可以使用xjb文件
(例如,我不知道你的整个xsd,这只是一个例子)
<bindings version="2.0" xmlns="http://java.sun.com/xml/ns/jaxb"
xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xjc="http://java.sun.com/xml/ns/jaxb/xjc"
xmlns:annox="http://annox.dev.java.net">
<bindings node="xs:complexType[@name='Document']">
<class name="Item"/>
</bindings>
</bindings>
Eclipse允许您附加XJB文件(绑定文件:)
我希望我已经向你提供了有关你问题的所有答案。