/ / Enlaces JAXB de tipo complejo a nuevo nombre de clase - java, jaxb, jaxb2, maven-jaxb2-plugin, jaxb2-maven-plugin

Enlaces JAXB de tipo complejo a new classname - java, jaxb, jaxb2, maven-jaxb2-plugin, jaxb2-maven-plugin

Estoy tratando de asignar lo siguiente a un nuevo nombre de clase a través del complemento maven-jaxb2.

Tengo este elemento que existe en dos XSD "s en el proyecto (diferentes espacios de nombres).

Quiero asignar esta instancia a un nombre de clase diferente para que compile.

<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>

Los bindings.xjb que tengo es ...

<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>

El error que recibo es este ...

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.

Si elimino el elemento interno BusinessError de ResponseCommonData, JAXB continuará, pero me dará un mensaje similar sobre otra clase de tipo complejo.

Respuestas

1 para la respuesta № 1

Utilizar jaxb:class en lugar de jaxb:property.