/ /複合型の新しいクラス名へのJAXBバインディング-java、jaxb、jaxb2、maven-jaxb2-plugin、jaxb2-maven-plugin

新しいクラス名への複合型のJAXBバインディング - java、jaxb、jaxb2、maven-jaxb2-plugin、jaxb2-maven-plugin

私は、maven-jaxb2-pluginを使用して、以下を新しいクラス名にマッピングしようとしています。

プロジェクト内の2つの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>

私が持っているbindings.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は続行されますが、別の複合型クラスに関する同様のメッセージが表示されます。

回答:

回答№1は1

つかいます jaxb:class の代わりに jaxb:property.