这是我试图解组的XML:
<eveapi version="2" zkbapi="1">
<result>
<rowset name="events">
<row eventID="41551776" solarSystemID="30003069">
<pilot characterID="1803362092"/>
<rowset name="copilots">
<row characterID="914916227"/>
<row characterID="877714973"/>
</rowset>
<rowset name="items">
<row typeID="31055"/>
<row typeID="2048"/>
</rowset>
</row>
</rowset>
</result>
</eveapi>
我遇到问题解组两个rowset标签copilots和items(unmarshall后对象为null)。此外,我无法控制架构。下面是表示eveapi / result / rowset / row级别的标记的类。事件由jaxb实例化。飞行员没有编组。但我不能让副本和物品上班,它们都是空的。
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "row")
public class Event {
@XmlElement(name = "pilot")
Pilot pilot;
@XmlPath("rowset[@name='copilots']")
Copilots copilots;
@XmlPath("rowset[@name='items']")
Items items;
我正在做什么?谢谢!
答案 0 :(得分:1)
要使用@XmlPath
注释,您需要确保使用EclipseLink JAXB (MOXy)作为JAXB提供程序。为此,您需要在类路径上使用EclipseLink,并在与域模型相同的包中使用jaxb.properties
文件,并使用以下条目:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
有关详细信息,请参阅我博客上的以下帖子: