Исключение: «Отсутствует поле индикатора класса в строке базы данных [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 содержит элемент, как показано ниже, безтип" атрибут:


  

заранее спасибо

Ответы на вопрос(1)

Ваш ответ на вопрос