小编典典

JAXB-编组为XML时,可以将类包含简化吗?

java

说,我有两节课:

@XmlRootElement
class A {
    @XmlElement
    String propertyOfA;
    @XmlElement
    B b;
}

class B {
    @XmlElement
    String propertyOfB;
}

JAXB返回按照以下方式格式化的XML:

<a>
  <propertyOfA>valueA</propertyOfA>
  <b>
    <propertyOfB>valueB</propertyOfB>
  </b>
</a>

我的问题是 如何展平XML中的层次结构? 这样我有:

<a>
  <propertyOfA>valueA</propertyOfA>
  <propertyOfB>valueB</propertyOfB>
</a>

可以通过注释完成吗?

目前,我正在考虑为A创建一种包装类,该包装类将以我希望在XML中看到它们的方式构建字段。有没有更好的办法?


阅读 146

收藏
2020-11-19

共1个答案

小编典典

注意: 我是 EclipseLink
JAXB(MOXy)的
负责人,并且是 JAXB
2(JSR-222)
专家组的成员。

您可以使用MOXy的@XmlPath扩展来映射此用例:

import java.xml.bind.annotation.*;
import org.eclipse.persistence.oxm.annotations.XmlPath;

@XmlRootElement
class A {
    @XmlElement
    String propertyOfA;

    @XmlPath(".")
    B b;
}

想要查询更多的信息

2020-11-19