生成具有命名冲突的jaxb类

时间:2014-07-17 14:46:31

标签: jaxb xsd jaxb2

我创建了一个新的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文件对我来说不是一个选项,所以我必须找到另一种方法。我一直在阅读有关创建绑定文件的可能性。我似乎无法找到关于如何针对我的特定问题做到这一点的良好文档。我的三个主要问题是:

  • 我应该创建一个新的绑定.xjb文件并将其添加到eclipse中以解决此问题吗?
  • 此绑定文件应如何查看以解析&#34;文档&#34;命名冲突?
  • 当我运行&#34; Generate - &gt;时,如何让eclipse识别绑定文件? JAXB课程

1 个答案:

答案 0 :(得分:1)

  • 我应该创建一个新的绑定.xjb文件并将其添加到eclipse中以解决此问题吗?

是的,您可以使用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>
  • 当我运行“Generate - &gt; JAXB Classes”时,如何让eclipse识别绑定文件

Eclipse允许您附加XJB文件(绑定文件:) enter image description here

我希望我已经向你提供了有关你问题的所有答案。