我正在尝试通过 maven-jaxb2-plugin 将以下内容映射到新的类名。
我的这个元素存在于项目的两个 XSD 中(不同的命名空间)。
我想将此实例映射到不同的类名,以便它可以编译。
<xs:complexType name="ResponseCommonData">
<xs:sequence>
<xs:element name="RequestID" type="xs:string"/>
<xs:element name="BusinessError" form="qualified" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:complexContent>
<xs:extension base="BusinessErrorCommonData"/>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:complexType name="BusinessCommonData">
<xs:sequence>
<xs:element name="Code" type="xs:string" form="unqualified" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
我的绑定(bind).xjb 是...
<jaxb:bindings schemaLocation="CFRV2.0.0.xsd" node="/xs:schema">
<jaxb:bindings node="xs:complexType[@name='ResponseCommonData']">
<jaxb:property name="CFRResponseCommonData" />
</jaxb:bindings>
<jaxb:bindings node="xs:complexType[@name='BusinessCommonData']">
<jaxb:property name="CFRBusinessCommonData" />
</jaxb:bindings>
</jaxb:bindings>
我得到的错误是这样的......
org.xml.sax.SAXParseException: A class/interface with the same name
"com.ResponseCommonData" is already in use.
Use a class customization to resolve this conflict.
如果我从 ResponseCommonData 中删除内部元素 BusinessError,那么 JAXB 将继续,但会向我提供有关另一个复杂类型类的类似消息。
最佳答案
使用jaxb:class
而不是jaxb:property
。
关于java - 复杂类型到新类名的 JAXB 绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34156536/