2

我正在使用 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。

供参考: http ://wiki.eclipse.org/EclipseLink/Examples/MOXy/XPath#Marshal_to_XML_-_MOXy_Customization_.231_-_Grouping_Element

有没有办法获得这个映射而不必创建这些额外的嵌套类?

4

1 回答 1

5

有附加类Search,但是这个类是私有嵌套类,不能在Mapping类外使用。
类的公共 APIMapping按预期返回 url

@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;
   }
}
于 2013-07-15T07:58:21.403 回答