Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/379.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
哪个Java XML绑定框架支持循环/循环依赖关系?_Java_Xml_Jaxb_Marshalling_Idref - Fatal编程技术网

哪个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