ここに2つのxsd定義があり、どちらもほぼ90%類似しています。最初のxsdのスケルトンは次のとおりです。
XSD1 :
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="apf2doc">
<xs:complexType>
<xs:sequence>
<xs:element ref="request"/>
<xs:element ref="account"/>
<xs:element ref="financial_transaction"/>
<xs:element ref="event_data" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
そして2番目のxsdは次のとおりです。
XSD2:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="apf2doc">
<xs:complexType>
<xs:sequence>
<xs:element ref="request"/>
<xs:element ref="account"/>
<xs:element ref="message"/>
<xs:element ref="event_data" minOccurs="0"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
これらの2つのxsdsは、2つの異なるパッケージに2セットのクラスを生成します。受信したxmlをアンマーシャリングするためにJAXBを使用しています。xmlは、これら2つのxsdsから生成されます。
JAXBコンテキストを作成している間、ほとんどのクラスが競合を引き起こすため、エラーが発生します。
エラートレースは次のとおりです。
The element name {}userid has more than one mapping. This problem is related to the following location:
at public javax.xml.bind.JAXBElement
generated.order.ObjectFactory.createUserid(java.lang.String) at
generated.order.ObjectFactory this problem is related to the following location:
at public javax.xml.bind.JAXBElement
generated.usage.ObjectFactory.createUserid(java.lang.String) at
generated.usage.ObjectFactory
誰かが私に解決策を提案してくれるといいですね。
ありがとう。