java - 哪个 Java XML 绑定(bind)框架支持循环/循环依赖?

标签 java xml jaxb marshalling idref

我有两个类:

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/

相关文章:

java - 为我的大学项目开发​​桌面应用程序

c# - H结果 : 0xC00CE556 - Loading string to XML

xml - 根据文件内容在 Notepad++ 中自动设置语言,而不是文件扩展名

java - 读取OGG作为LWJGL 3 OpenAL的样本流

java - Kafka - 忽略获取的记录

android - 更新图像的位置

rest - 使用 JAX-RS 编码列表<String>

spring - 如何在 JBoss 6 中分离耳朵类加载器和系统类加载器?

java - JAXBContext 上下文路径与 @XMLSeeAlso

java - Android studio 改变 Intent 时崩溃