JAXB/XJC: различать объекты для элементов с одинаковым комплексным типомJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 JAXB/XJC: различать объекты для элементов с одинаковым комплексным типом

Сообщение Anonymous »

У меня есть следующее: Три разных элемента имеют один и тот же параметр типа, и XJC генерирует только один класс для базового типа.
У меня есть несколько сценарии, в которых все трое могут сосуществовать вместе в 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);
}

}
Демаршаллер на моей машине преобразует XML этого элемента в ElementNSimpl.
Итак, есть ли способ заставить эту привязку работать? или другой способ отличить?

Обновление 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)
Я использую MoXy версии 4.0.4, я отлаживал сам Moxy, и мне кажется, что класс и метод ObjectFactory не зарегистрированы для специально созданных классов.Любые идеи приветствуются.

Подробнее здесь: https://stackoverflow.com/questions/788 ... omplextype
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»