Код: Выделить всё
У меня есть несколько сценарии, в которых все трое могут сосуществовать вместе в XML-файлах, хотя все они имеют одинаковые поля, но имеют разные значения.
Я хочу различать объекты, которые все они будут различать. иметь тип SequenceType.
Я думал об использовании привязок JXB для привязки каждого из них к другому пользовательскому классу, но вижу, что он сгенерирован без аннотаций.
Код: Выделить всё
Код: Выделить всё
public class MainImageSequence
extends JAXBElement
{
protected static final QName NAME = new QName("http://www.smpte-ra.org/schemas/2067-2/2016", "MainImageSequence");
public MainImageSequence(SequenceType value) {
super(NAME, ((Class ) SequenceType.class), null, value);
}
public MainImageSequence() {
super(NAME, ((Class ) SequenceType.class), null, null);
}
}
Итак, есть ли способ заставить эту привязку работать? или другой способ отличить?
Обновление 1
Мне нужно было добавить сгенерированные классы в classToBound при создании JAXBContext
Код: Выделить всё
JAXBContext context = JAXBContextFactory.createContext(new Class[] {MainImageSequence.class, MainAudioSequence.class}, properties);
Код: Выделить всё
Caused by: java.lang.NullPointerException: Cannot load from object array because "factoryMethodParamTypes" is null
at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateDescriptorForJAXBElementSubclass(MappingsGenerator.java:555)
at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateDescriptor(MappingsGenerator.java:426)
at org.eclipse.persistence.jaxb.compiler.MappingsGenerator.generateProject(MappingsGenerator.java:254)
at org.eclipse.persistence.jaxb.compiler.Generator.generateProject(Generator.java:182)
at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:1178)
at org.eclipse.persistence.jaxb.JAXBContext$TypeMappingInfoInput.createContextState(JAXBContext.java:1170)
Подробнее здесь: https://stackoverflow.com/questions/788 ... omplextype