JAXB:删除多余的不需要的标记

时间:2016-04-04 20:19:10

标签: java xml jaxb

我有以下代码:

public class TestElement {

  @XmlElement
  private Field field;

  private boolean isEmpty;
  ...

}

@XmlRootElement
public class MainTest {

  @XmlElement
  private TestElement el1

  @XmlElement
  private TestElement el2
  ...
}

编组后,会产生一个XML文件:

<MainTest>
  <TestElement id=el1>
    <Field>...</Field>
  </TestElement>   
  <TestElement id=el2>
    <Field>...</Field>
  </TestElement>    
</MainTest>

但我想删除&lt; Field&gt;标签,以便文件显示为

<MainTest>
  <TestElement id=el1>...</TestElement>   
  <TestElement id=el2>...</TestElement>    
</MainTest>

有没有办法做到这一点?类field中的字段TestElement是唯一应在XML文件中表示的字段。

(为了澄清:我不想删除<Field></Field>之间的值,我只想丢弃封装该值的不必要的标签。)

提前致谢!

2 个答案:

答案 0 :(得分:0)

我找到了一个适合我的解决方案。我在MainTest类中为每个TestElement对象创建了一个(私有)getter,而不是注释整个TestElement对象。我已将MainTest更改为:

@XmlRootElement
public class MainTest {

  private TestElement el1

  private TestElement el2
  ...

  @XmlElement(name="TestElement")
  private Field getFieldEl1() {
    return el1.getField();
}

答案 1 :(得分:-2)

在Field getter方法上使用@XmlValue