例外:
javax.xml.bind.UnmarshalException:意外元素(uri:“http://xxx.com/xxxServices/response”,本地:“A”)。预期的元素是< {http://xxx.com/xxxServices/common/acknowledgement} I>
XSD用于使用xjc生成java类:
<xs:import namespace="http://xxx.com/xxxServices/common/acknowledgement" schemaLocation="../common_acknowledgement_v1.0.xsd"/>
<xs:element name="A" type="abr:AType">
</xs:element>
</xs:schema>
我正在尝试解析的示例XML:
<ns0:A xmlns:ns0="http://xxx.com/xxxServices/response" xmlns:ns1="http://xxx.com/xxxServices/common/acknowledgement">
<ns1:I UID="24" Type="Sequential"/>
<ns1:S>
<ns1:Date Year="2012" Month="05" Day="15"/>
<ns1:Time Hour="3" Minute="31" Second="54"/>
</ns1:S>
<ns1:AAck>
<ns1:I UID="24" Type="Sequential"/>
<ns1:B>eDUA</ns1:B>
<ns1:AckResult>Received</ns1:AckResult>
<ns1:P>47</ns1:P>
</ns1:AAck>
</ns0:A>
我已使用JAXBIntrospector
从unmarshal()
进行展开。
另外,我注意到jaxb将@XmlRootElement标记放在另一个生成Ack
而不是AType
的实际上应该是RootElement的类上。我已将注释从Ack
移到AType
&amp;我查了一下:
@XmlRootElement(name="A", namespace="http://xxx.com/xxxServices/response")
&安培;
@XmlRootElement(name="AType")
我还使用@XmlRootElement
检查Ack
,就像它生成的方式一样。哪里&amp;我在做什么!