尝试将XML映射到POJO时出现“意外元素”

我正在尝试使用JAXB将下面的XML映射到POJO,以便我可以使用XML中的数据,但是,我收到以下错误:

! javax.xml.bind.UnmarshalException: unexpected element (uri:"http://webservices.amazon.com/AWSECommerceService/2011-08-01", local:"ItemSearchResponse"). Expected elements are  

XML:

    B001DJLCRC  http://www.amazon.com/Breaking-Bad-Complete-First-Season/dp/B001DJLCRC%3FSubscriptionId%3DAKIAJ6JZ43XIWIUIIQLA%26tag%3Dsample026-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D165953%26creativeASIN%3DB001DJLCRC    Technical Details  http://www.amazon.com/Breaking-Bad-Complete-First-Season/dp/tech-data/B001DJLCRC%3FSubscriptionId%3DAKIAJ6JZ43XIWIUIIQLA%26tag%3Dsample026-20%26linkCode%3Dxm2%26camp%3D2025%26creative%3D386001%26creativeASIN%3DB001DJLCRC     Bryan Cranston Aaron Paul Sony Pictures Home Entertainment DVD Breaking Bad: The Complete First Season     

我的POJO(getter / setters故意被忽略)

ItemSearchResponse

 @XmlRootElement(name="ItemSearchResponse") @XmlAccessorType(XmlAccessType.FIELD) public class ItemSearchResponse { @XmlElement(name="Items") private Items items = null; } 

项目

 @XmlAccessorType(XmlAccessType.FIELD) public class Items { @XmlElement(name="Item") List items = new ArrayList(); } 

项目

 @XmlAccessorType(XmlAccessType.FIELD) public class Item { @XmlElement(name="ASIN") private String asin; @XmlElement(name="ItemAttributes") private ItemAttributes attributes; } 

物品属性

 @XmlAccessorType(XmlAccessType.FIELD) public class ItemAttributes { @XmlElement(name="Title") private String title; @XmlElement(name="Author") private String author; } 

问题

  • 我该如何解决错误? 我的POJO设置不正确吗? 如果是这样,我应该如何重组POJO?

  • xml中有多个Author 。 如何将它们映射到数组或排序列表。

您需要使用包级别@XmlSchema批注来映射模型的命名空间限定。

package-info.java

 @XmlSchema( namespace = "http://www.example.org/package", elementFormDefault = XmlNsForm.QUALIFIED) package example; import javax.xml.bind.annotation.XmlNsForm; import javax.xml.bind.annotation.XmlSchema; 

了解更多信息