是否可以使用JAXB将两个或多个元素编组到一个域对象字段中?

时间:2013-04-10 05:25:37

标签: java xml jaxb moxy

我有两种不同的XML结构,我想映射到一个域对象。我正在使用MOXy的外部绑定支持,因此我可以选择动态使用哪种绑定。

这是我的问题。我有一个类似下面的XML结构:

<entity>
   <compoundID_one>foo</compoundID_one>
   <compoundID_two>bar</compoundID_two>
</entity>

我希望在我的域类中有一个List<String>字段,其中包含'foo'和'bar'

我试过这个:

...
<java-attributes>
    <xml-elements>
        <xml-element java-attribute="idList" name="compoundID_one" />
        <xml-element java-attribute="idList" name="compoundID_two" />
    </xml-elements>
</java-attributes>
...

但是我只获得域对象中字段的null。如果我省略xml-elements包装器,我只会得到列表中的一个复合ID。

我发现这个question似乎表明这应该有效。我做错了什么或者有更好的方法吗?

1 个答案:

答案 0 :(得分:2)

我刚刚绑定了XML错误,它应该是:

...
<java-attributes>
    <xml-elements java-attribute="idList">
        <xml-element name="compoundID_one" />
        <xml-element name="compoundID_two" />
    </xml-elements>
</java-attributes>
...

现在一切正常。