1

例外:

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 的类上。我已经从 over Ackto中删除了注释,AType并检查了:

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

&

@XmlRootElement(name="AType")

我也检查@XmlRootElementAck它的生成方式。我在哪里和在做什么!

4

0 回答 0