使用Moxy @XmlDiscriminatorNode和@XmlDiscriminatorValue继承规则时,我们必须始终指定所有可能的@XmlDiscriminatorValue映射到类。 如果输入的XML在我们的代码中具有未定义的值,我们将在下面得到异常:
Exception [EclipseLink-43] (Eclipse Persistence Services - 2.7.3.v20180807-4be1041): org.eclipse.persistence.exceptions.DescriptorException
Exception Description: Missing class for indicator field value [XXXX] of type [class java.lang.String].
是否可以指定默认类以映射未知值?
在以下情况下的示例:
@XmlDiscriminatorNode("myNode")
@XmlSeeAlso({TypeA.class,TypeB.class}
public class BaseType {
...
}
@XmlDiscriminatorValue("typeA")
public class TypeA {
...
}
@XmlDiscriminatorValue("typeB")
public class TypeB {
...
}
@XmlRootElement
public class Root {
...
@XmlElement
public List<BaseType> baseTypes;
...
}
现在,如果我们具有属性为myNode="typeC"
的XML元素,这将打破编组器。有没有办法忽略未知/未定义的类型,以便将来在XML中添加新的BaseType时,不会破坏当前代码?