Alv*_*vis 5 java xml annotations jaxb
说,我有两个班:
@XmlRootElement
class A {
@XmlElement
String propertyOfA;
@XmlElement
B b;
}
class B {
@XmlElement
String propertyOfB;
}
Run Code Online (Sandbox Code Playgroud)
JAXB返回以相应方式格式化的XML:
<a>
<propertyOfA>valueA</propertyOfA>
<b>
<propertyOfB>valueB</propertyOfB>
</b>
</a>
Run Code Online (Sandbox Code Playgroud)
我的问题是如何在XML中展平层次结构?所以我有:
<a>
<propertyOfA>valueA</propertyOfA>
<propertyOfB>valueB</propertyOfB>
</a>
Run Code Online (Sandbox Code Playgroud)
这可以用注释完成吗?
目前我正在考虑为A创建一种包装类,它将以我希望在XML中看到它们的方式构建字段.有没有更好的办法?
注意: 我是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;
}
Run Code Online (Sandbox Code Playgroud)
了解更多信息