如何制作具有父子关系的JAXB类

问题描述 投票:0回答:1

我在使用 JAXB / XJC 父子父导航制作用于父子关系的 JAXB 类时遇到问题

我认为实施

void afterUnmarshal(Unmarshaller, Object parent)
。它应该为所有 jaxb 类创建超类。

因此,我使用 xjc 引用的 JAXB 编组 - 扩展现有类来绑定超类

但是在解组 xml 文件时。发生一些异常“@XmlValue 不允许出现在派生另一个类的类上。”

一些解决方案

@XmlAccessorType(XmlAccessType.NONE)
@XmlTransient
不适合我。

我该怎么办?

我可以使用 MOXy 吗? 如果这种情况适合使用 MOXy。有没有在SpringBoot中使用的指导文档?

这是我的超级课

public class SuperClass {
    private Object parent;
    
    public void setParent(Object parent) {this.parent = parent}
    
    public Object getParent() {return this.parent}
}
java jaxb xjc
1个回答
0
投票

我想你可以使用这个 XJC Parent Pointer Plugin 它将在 jaxb-tools 4.0.1 中提供。

添加此插件将需要运行时依赖项。

如果不针对基于 jakarta 的 JAXB 类,您可以使用插件来源处的以下 Maven 坐标

org.andromda.thirdparty.jaxb2_commons:parent-pointer-plugin:1.0
。它也会在 jaxb-tools v2 中向后移植,但我无法确定 4.0.1 或 2.0.10 的发布日期。

© www.soinside.com 2019 - 2024. All rights reserved.