我正在使用JAXB-impl。我需要能够将嵌套元素作为简单类型映射到类字段。例如:
<mapping>
<search>
<channel>main-channel</channel>
<url>my-channel-url</url>
</search>
<items>
<item>first</item>
<item>second</item>
<item>third</item>
</items>
</mapping>
假设我需要将“url”标记绑定到类中的某个字段,这当然不起作用:
class Mapping{
@XmlElement
private String url;
}
@XmlElementWrapper仅适用于集合。我看过一些关于使用eclipse MOXy和利用@XmlPath的帖子,但这不是一个选项。它必须是JAXB-impl。
有没有办法在不必创建这些额外嵌套类的情况下获得此映射?
答案 0 :(得分:4)
使用其他类Search
,但此类是私有嵌套类,不在Mapping
类之外使用。
类Mapping
的公共API按预期返回网址
@XmlAccessorType(XmlAccessType.FIELD)
class Mapping
{
@XmlAccessorType(XmlAccessType.FIELD)
private static class Search
{
private String channel;
private String url;
}
private Search search;
public String getUrl()
{
return search == null ? null : search.url;
}
}