Java JAXB在解组时将多个属性转换为一种类型
图像我有这样一个元素Java JAXB在解组时将多个属性转换为一种类型,java,xml,jaxb,w3c,unmarshalling,Java,Xml,Jaxb,W3c,Unmarshalling,图像我有这样一个元素 “比例”和“数量”始终同时显示,但它们不是在一个独占元素中定义的 当将someElement元素解组为someElementjava实例时,我希望someElement类中有一个成员表示number和scale 目前,数字和比例都是属性,然后使用afterUnmarshall()方法计算一个数字 有没有一种方法可以在不使用两个成员字段大小和比例的情况下执行此操作?可能使用XmlAdapter?在这种情况下,我将如何使用此选项?的答案似乎与您正在尝试的操作一致。或者至少是相反
“比例”和“数量”始终同时显示,但它们不是在一个独占元素中定义的
当将someElement
元素解组为someElement
java实例时,我希望someElement
类中有一个成员表示number
和scale
目前,数字和比例都是属性,然后使用afterUnmarshall()
方法计算一个数字
有没有一种方法可以在不使用两个成员字段大小和比例的情况下执行此操作?可能使用
XmlAdapter
?在这种情况下,我将如何使用此选项?的答案似乎与您正在尝试的操作一致。或者至少是相反的。因此,您可以创建使用XmlAdapter取消/封送的自定义类型,也可以对getter/setter逻辑进行调皮处理。注意:我是专家组的负责人和成员
MOXy提供了@XmlTransformation
扩展,允许您将Java字段/属性表示为多个XML节点
了解更多信息
XmlAdapter
。适配器将负责将表示number和scale的单个类型(下面用FOO表示)转换为具有单独的number和scale属性的类型。您仍然需要使用MOXy实现来利用@XmlPath
扩展:
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class SomeElement {
@XmlAttribute
private String a;
@XmlAttribute
private String b;
@XmlJavaTypeAdapter(NumberAndScaleAdapter.class)
@XmlPath(".")
private FOO numberAndScale;
private Child child;
}
了解更多信息