我有一个类似这样的XML:
<player>
<id>402</id>
<name>Sean</name>
<fitness>
<speed>good</speed>
<strength>super</strength>
</fitness>
</player>
正常的JAXB方式是拥有两个类。一个玩家;一个健身。我觉得这太过分了。反正我有没有一个具有Fitness属性的Player类,并且智能地使用注释来覆盖它?
另外,说我只是解组。我只对健身/速度感兴趣。我对健身/力量毫无兴趣。我真的很想在我的Player JAXB类中只有一个speed属性。反正有吗?
提前致谢。
答案 0 :(得分:1)
注意:我是EclipseLink JAXB (MOXy)主管,是JAXB 2 (JSR-222)专家组的成员。
如skaffman所述,MOXy具有可用于此用例的@XmlPath
扩展名:
import javax.xml.bind.annotation.*;
import org.eclipse.persistence.oxm.annotations.XmlPath;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(propOrder={"id", "name", "speed", "strength"})
public class Player {
private String id;
private String name;
@XmlPath("fitness/speed/text()")
private String speed;
@XmlPath("fitness/strength/text()")
private String strength;
}
了解更多信息