例外:
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 的类上。我已经从 over Ack
to中删除了注释,AType
并检查了:
@XmlRootElement(name="A", namespace="http://xxx.com/xxxServices/response")
&
@XmlRootElement(name="AType")
我也检查@XmlRootElement
过Ack
它的生成方式。我在哪里和在做什么!