哪个Java XML绑定框架支持循环/循环依赖关系?
我有两门课:哪个Java XML绑定框架支持循环/循环依赖关系?,java,xml,jaxb,marshalling,idref,Java,Xml,Jaxb,Marshalling,Idref,我有两门课: public class A { B refToB; } public class B { A refToA; } 它们没有唯一的id字段(JAX-bxmlid和XMLIDREF需要这些字段) 对象实例: A a = new A(); B b = new B(); a.refToB = b; b.refToA = a; 我想将a转换为XML,同时存储循环/循环依赖项,类似于: <a id="gen-id-0"> <b> <a
public class A {
B refToB;
}
public class B {
A refToA;
}
它们没有唯一的id字段(JAX-bxmlid和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>
还有哪些框架支持此功能
一些JAX-B实现支持它吗?注意:我是该专家组的负责人和成员
MOXy具有映射双向关系的@XmlInverseReference
扩展
A
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>
几年前,我与Betwixt合作。他们要求支持,见
唉,到目前为止,设置一个简单的测试对我来说还不起作用,输出仅仅是
,而B中指向a的指针被悄悄地忽略了。一定有一些映射选项我没有设置…如果XStream做了这项工作,为什么还要去寻找其他东西呢?这个问题太开放了。@skaffman如果有一个JAX-B实现具有这个特性,我会更喜欢它的可能的重复,似乎它几乎完全是的重复,那么,这个结果并没有捕捉到图的循环性质?
上的ID在哪里,对``上的ID的引用?不需要ID<代码>A
通过包含关系引用B
。然后我们使用@XmlInverseReference来表示当填充refToB
时,也应该填充refToA
。JPA实现也使用这种策略。如果您想使用ids,请查看JAXB的@XmlID
/@XmlIDREF
: