繁体   English   中英

XML映射到Java对象

[英]XML Mapping to Java Object

我有一个像这样的Xml

<entry>
  <comboBox>
    <name>xxx</name>
    <details>sdfd</details>
  </comboBox>
</entry>

在另一个条目中,我有这样的XML

<entry>
  <numberField>
    <name>xxx</name>
    <details>sdfd</details>
  </numberField>
</entry>

我想将comboBoxnumberFieldnumberField到Java中名为Field的同一类

如何在Entry Class中注释Java字段?

Entry类中,您需要使用@XmlElements注释Java字段,并在其中列出各个元素的名称。 像这样:

@XmlAccessorType(XmlAccessType.FIELD)
public class Entry {

    @XmlElements({
        @XmlElement(name = "comboBox", type = Field.class),
        @XmlElement(name = "numberField", type = Field.class)
    })
    private Field field;
}

type = Field.class在上面的注释中添加了type = Field.class 您可以忽略它。 然后,JAXB将从属性类型decaration中拾取Field ,这具有相同的预期效果。

Field类可以很简单:

@XmlAccessorType(XmlAccessType.FIELD)
public class Field {

    @XmlElement
    private String name;

    @XmlElement
    private String details;
}

我认为您应该为具有公共注释字段的对象创建两个子类。 每个子类只需要定义jaxb @XmlRootElement(数字字段或组合框)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM