UnmarshalException:解析引用类型的xml时出现意外元素

时间:2012-05-18 19:39:13

标签: java xml xsd jaxb unmarshalling

例外:

  

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>

我已使用JAXBIntrospectorunmarshal()进行展开。

另外,我注意到jaxb将@XmlRootElement标记放在另一个生成Ack而不是AType的实际上应该是RootElement的类上。我已将注释从Ack移到AType&amp;我查了一下:

@XmlRootElement(name="A", namespace="http://xxx.com/xxxServices/response")

&安培;

@XmlRootElement(name="AType")

我还使用@XmlRootElement检查Ack,就像它生成的方式一样。哪里&amp;我在做什么!

0 个答案:

没有答案