小编Ben*_*eni的帖子

使用JaxB编组实现公共接口的对象列表

我正在尝试编组实现通用接口的对象列表.涉及3个类和1个接口:

社区类(有一个方法:List <Person> getPeople();)

Person接口(有一个方法:String getName();)

女子班(实施人)

男生班(实施人)

见下面的代码.

我想要一个看起来像这样的XML:

<community>
  <people>
    <girl>
      <name>Jane</name>
    </girl>
    <boy>
      <name>John</name>
    </boy>
    <girl>
      <name>Jane</name>
    </girl>
    <boy>
      <name>John</name>
    </boy>
  </people>
</community>
Run Code Online (Sandbox Code Playgroud)

或者可能:

<community>
  <people>
   <person>
      <girl>
        <name>Jane</name>
      </girl>
    </person>
    <person>
      <boy>
        <name>John</name>
      </boy>
    </person>
  </people>
</community>
Run Code Online (Sandbox Code Playgroud)

到目前为止,我得到的是:

<community>
    <people>
        <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="girl">
            <name>Jane</name>
        </person>
        <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="boy">
            <name>John</name>
        </person>
        <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="girl">
            <name>Jane</name>
        </person>
        <person xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:type="boy">
            <name>John</name>
        </person>
    </people>
</community>
Run Code Online (Sandbox Code Playgroud)

我意识到我可以将元素更改为其他内容,但我希望元素名称是Girl或Boy类中的名称.

可以这样做吗?谢谢.

@XmlRootElement(name = "community")
public …
Run Code Online (Sandbox Code Playgroud)

java xml jaxb

36
推荐指数
2
解决办法
6万
查看次数

标签 统计

java ×1

jaxb ×1

xml ×1