Исключение: «Отсутствует поле индикатора класса в строке базы данных [UnmarshalRecordImpl ()].» При отмене сортировки XML с использованием EclipseLink JAXB (MOXy)
Есть ли способ отмены аннотаций с помощью @ XmlDescriminatorNode / @ XmlDescrimintatorValue следующего XML или любого обходного пути:
Мои классы картирования:
@XmlRootElement(name="data_file")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlDiscriminatorNode("@role")
public abstract class BaseDataFile implements Serializable {
@XmlPath("@role")
@XmlAttribute(name = "role")
private String role;
public String getRole() {
return role;
}
public void setRole(String role) {
this.role = role;
}
}
@XmlRootElement(name="data_file")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlDiscriminatorValue("source")
public class SourceDataFile extends BaseDataFile {
}
@XmlRootElement(name="data_file")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlDiscriminatorValue("source")
public class SourceDataFile extends BaseDataFile {
}
@XmlRootElement(name="data_file")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlDiscriminatorValue("extension")
public class SourceDataFile extends BaseDataFile {
}
@XmlRootElement(name="asset")
@XmlAccessorType(XmlAccessType.FIELD)
@XmlDiscriminatorNode("@type")
public abstract class BaseAsset implements Serializable {
@XmlPath("@type")
@XmlAttribute(name = "type")
private String type;
@XmlPath("data_file")
private List dataFiles;
public List getDataFiles() {
return dataFiles;
}
public void setDataFiles(List dataFiles) {
this.dataFiles = dataFiles;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
}
Ошибка происходит, если XML содержит элемент, как показано ниже, безтип" атрибут:
заранее спасибо