簡體   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