这里有两个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>
第二个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>
现在这两个xsds在两个不同的包中生成两组类。我正在使用JAXB解组收到的xmls。 xmls是从这两个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
如果有人可以向我提出任何解决方案,那将会很棒。
感谢。
答案 0 :(得分:1)
由于您的2个XML模式具有相同名称和命名空间的全局元素,因此您无法在两个模型上创建单个JAXBContext
。您可以执行以下操作之一:
JAXBContext
。