我在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实现这个目标?
此致 约亨
答案 0 :(得分:1)
注意:我是EclipseLink JAXB (MOXy)主管,是JAXB 2 (JSR-222)专家组的成员。
您可以使用JAXB注释提供一种表示形式,并利用MOXy的外部绑定文档来提供替代表示。
用例1 - 表示之间的微小差异
默认情况下,MOXy的外部映射文档用于覆盖注释提供的元数据。这允许您调整版本之间的表示。以下是我给出的详细示例答案的链接:
用例2 - 表示之间的主要差异
MOXy的外部映射文档也可用于覆盖所有注释。当表示不相关时,这很有用。下面是一个示例的链接,我将相同的对象模型映射到Google和Yahoo天气服务:
了解更多信息