【问题标题】:Marshalling the same object in two different ways using standard JAXB?使用标准 JAXB 以两种不同的方式编组同一对象?
【发布时间】:2012-03-13 07:55:43
【问题描述】:

我在 Java 中有一个 Person 类(用 @XmlRootElement 注释),它有两个属性(姓名、生日),我需要以两种不同的方式编组,生成两个不同的 XML 文件。

在第一个文件中,Person 对象应该只包含 name 属性:

<Person>
    <name>John Doe</name>
</Person>

在第二个文件中,Person 对象应该包含所有属性。

<Person>
    <name>John Doe</name>
    <birthday>1980-01-01</birthday>
</Person>

有没有办法通过 JAXB 实现这一点?

问候, 乔辰

【问题讨论】:

    标签: jaxb marshalling


    【解决方案1】:

    注意:我是EclipseLink JAXB (MOXy) 领导,也是JAXB 2 (JSR-222) 专家组的成员。

    您可以使用 JAXB 注释来提供一种表示,并利用 MOXy 的外部绑定文档来提供替代表示。

    用例 1 - 表示之间的细微差别

    默认情况下,MOXy 的外部映射文档用于覆盖注释提供的元数据。这允许您调整版本之间的表示。以下是我给出的详细示例的答案的链接:

    用例 2 - 表示之间的主要区别

    MOXy 的外部映射文档也可用于覆盖所有注释。当表示不相关时,这很有用。下面是一个示例的链接,其中我将相同的对象模型映射到 Google 和 Yahoo 天气服务:

    更多信息

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-12-10
      • 1970-01-01
      • 2018-05-20
      • 1970-01-01
      相关资源
      最近更新 更多