JAXB распаковывает XML в Hashmap, содержащий другой Hashmap

У меня есть следующий XML, который я хочу разобрать с помощью JAXB:

<?xml version="1.0" encoding="UTF-8"?>
<questions>
    <question id="1">
        <text>What is the capital of Germany?</text>
        <correctAnswer>2</correctAnswer>
        <answers>
            <answer id="1">
                <text>Munich</text>
            </answer>
            <answer id="2">
                <text>Berlin</text>
            </answer>
        </answers>
    </question>
    <question id="2">
        <text>What is the capital of France?</text>
        <correctAnswer>1</correctAnswer>
        <answers>
            <answer id="1">
                <text>Paris</text>
            </answer>
            <answer id="2">
                <text>Marseille</text>
            </answer>
        </answers>
    </question>
</questions>

Я хочу создать HashMap:

HashMap<String, Question>

из которого я могу получить вопросы по их идентификатору.

Каждый объект вопроса также должен иметь Hashmap:

HashMap<String, Answer>

откуда я могу получить ответы по их ID.

Я начал с использования кода из этого потока: JAXB неупорядочивает элементы XML в HashMap

Теперь у меня две проблемы/вопроса:

  1. Принятый ответ в этом потоке предлагает использовать "@XmlPath(".")", но для этого я должен импортировать плагин eclipse:

    import org.eclipse.persistence.oxm.annotations.XmlPath;
    

    Но я использую IntelliJ и не знаю, какой альтернативный импорт использовать, чтобы это заработало.

  2. Даже если предложенное решение "@XmlPath(".")" заработает, я все равно не знаю, как реализовать свойство HashMap в объекте вопроса (содержащем ответы).


person David    schedule 24.08.2017    source источник
comment
@tima: спасибо за предложение, но ветка, которую я упомянул в своем вопросе (stackoverflow.com/questions/20538149/), и который является основой для моей реализации, уже использует XmlAdapter. Остаются две проблемы: 1. XmlPath не работает из-за отсутствия импорта и 2. как получить другой уровень HashMap в объектах первого HashMap).   -  person David    schedule 24.08.2017
comment
Я не уверен, зачем вам нужна аннотация XmlPath, XmlAdapter, кажется, работает довольно хорошо без нее. Дубликат имеет несколько ссылок с рабочими примерами.   -  person tima    schedule 24.08.2017
comment
Я просто помещу здесь ссылку вместо отметки: stackoverflow.com/questions/9275805/   -  person tima    schedule 24.08.2017