我有两个类:
public class A {
B refToB;
}
public class B {
A refToA;
}
它们没有唯一的 id 字段(这是 JAX-B XMLID 和 XMLIDREF 所必需的)。
对象实例:
A a = new A();
B b = new B();
a.refToB = b;
b.refToA = a;
我想在存储循环/循环依赖的同时将 a
编码为 XML,例如:
<a id="gen-id-0">
<b>
<a ref-id="gen-id-0" />
</b>
</a>
我发现支持此功能的框架之一是 XStream:http://x-stream.github.io/graphs.html
还有哪些其他框架支持此功能?
某些 JAX-B 实现是否支持它?
最佳答案
注意:我是 EclipseLink JAXB (MOXy) JAXB (JSR-222) 的领导和成员专家组。
MOXy 具有用于映射双向关系的 @XmlInverseReference
扩展。
一个
import javax.xml.bind.annotation;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class A {
@XmlElement(name="b")
B refToB;
}
B
import javax.xml.bind.annotation;
import org.eclipse.persistence.oxm.annotations.XmlInverseReference;
@XmlAccessorType(XmlAccessType.FIELD)
public class B {
@XmlInverseReference(mappedBy="refToB")
A refToA;
}
XML
上面的类将映射到下面的 XML
<a>
<b/>
<a>
了解更多信息
关于java - 哪个 Java XML 绑定(bind)框架支持循环/循环依赖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8969702/