本文介绍了XmlIDREF无法正常工作的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

使用JAXB 2.2.5b,并且

using JAXB 2.2.5b, and having

@XmlSeeAlso({BeanView.class, ViewField.class, ViewPanel.class, ViewTab.class, ElementRef.class})
@XmlRootElement
public abstract class ViewElement {
   @XmlID
   @XmlAttribute
   public String getId() {
        return id;
   }
}
@XmlRootElement(name="ref")
public class ElementRef extends ViewElement{
    private ViewElement target;
    @XmlElement
    @XmlIDREF
    public ViewElement getTarget() {
        return target;
    }
    public void setTarget(ViewElement target) {
        this.target = target;
    }
}

许多类扩展了抽象ViewElement

Many class extends the abstract ViewElement

@XmlRootElement
public class ViewField extends ViewElement{
}
@XmlRootElement
public class ViewPanel extends ViewElement{
}

在XML中重复ElementRef目标元素而不是仅保留id ref

in the XML the ElementRef target element is repeated instead of keeping only the id ref

<ref id="mvmCredit" >
    <target xsi:type="viewField" valueExpr="" row="0" ... all ViewField attributes >
    </target>
</ref>

在取消XML模型时,目标为空(恢复失败)

and during the unmarchaling of the XML model the target is null (the restoration failed)

推荐答案

升级到JAXB 2.2.7修复问题

An upgrade to JAXB 2.2.7 fix the problem

这篇关于XmlIDREF无法正常工作的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

08-19 18:51