Действительно ли возможно использовать JAXB для отображения от схемы до java.util. Карта?

Согласно комментариям, я думаю, что вы должны возвращать экземпляры подтипа вместо Event. Вот мои примеры кода для вас:

val event = mapper.readValue(bytes, classOf[Event])
event.getType match {
  case "position" => mapper.readValue(bytes, classOf[Position])
  case "recognition" => mapper.readValue(bytes, classOf[Recognized])
  case _ =>
}

Я успешно попробовал пример из тестового примера в CEPITCase.java.

DataStream<Event> input = env.fromElements(
  new Event(1, "foo", 4.0),
  new SubEvent(2, "foo", 4.0, 1.0),
  new SubEvent(3, "foo", 4.0, 1.0),
  new SubEvent(4, "foo", 4.0, 1.0),
  new Event(5, "middle", 5.0)
);

Pattern<Event, ?> pattern = Pattern.<Event>begin("start").subtype(SubEvent.class)
.followedByAny("middle").subtype(SubEvent.class)
.followedByAny("end").subtype(SubEvent.class);
17
задан casperOne 15 May 2012 в 20:00
поделиться

2 ответа

В вашем файле XJC используется «стандартная» javaType директива, которая, как я полагаю, ограничена преобразованием значений String в типичный тип Java и обратно. Таким образом, он подходит только для преобразования простого содержимого элементов и атрибутов.

Инструмент XJC предоставляет расширенную версию javaType , которая теоретически должна быть способна обрабатывать более сложные структуры. К сожалению, это еще не реализовано:

https://java.net/jira/browse/JAXB-209 (не решено)

Например, возможность сопоставить тип схемы в HashMap может быть вероятное требование для тех, кто использует проектирование / реализация на основе моделей. AFAICS, сегодня это невозможно. Следовательно, необходимо вручную отредактировать сгенерированный код.

Похоже, вам не повезло.

10
ответ дан 30 November 2019 в 14:12
поделиться

Посмотрели ли вы пример здесь (Настроенное отображение HashMap): http://java.sun.com/javase/6/docs/api/javax/xml/bind/annotation/adapters/XmlAdapter.html

Боюсь, мне нужно создать собственный XmlAdapter.

6
ответ дан 30 November 2019 в 14:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: