Как создать объекты Java из тегов XML, которые ссылаются друг на друга?

У меня есть XML, в котором есть теги, соответствующие трем типам объектов Java, которые будут созданы из XML.Объекты имеют форму:

A
- static Map<String, A>
- String name
- String aInfo1
- String aInfo2

B
- static Map<String, B>
- String name
- String bInfo1
- String bInfo2

C
- A aObject
- B bObject

Теперь в моем XML я определяю список тегов для объектов A и B, а затем я определяю теги для объектов C, которые относятся к объектам A и B, используя поле имени. У меня два требования:

  1. заполнять статические карты в A и B при чтении объектов A и B из XML. Карты будут содержать отображение A.name в A и B.name в B соответственно.
  2. заполните объекты C, прочитав A.name и B.name из тега XML, а затем используя карты, определенные в объектах A и B.

Я читал о некоторых фреймворках Java, таких как JAXB, но я не могу придумать способ создания такого типа объектов из моего XML. Есть ли в Java фреймворк, который может сделать это из коробки или с минимальной логикой?

Редактировать:

Есть еще одно требование: Мне нужно определить объекты D и E формы

D
- Map<A, E>

. Я бы определил объекты E аналогично тому, как сервлеты определены в web.xml, т.е. сначала определите имя и класс для класса E, а затем используйте имя для E в каком-то другом место. Кроме того, передайте параметры для создания экземпляров объектов E. Тег будет выглядеть так:

<E>
    <name>queryProcessor</name>
    <class>com.mydomain.QueryProcessor</class>
</E>

Теперь он будет использоваться при определении содержимого карты в D

<D>
    <map>
        <A>name_of_some_A_object</A>
        <E name="queryProcessor">
            <param1>name_of_some_B_object</param1>
            <param2>name_of_some_B_object</param2>
        </E>
        <A>name_of_some_A_object</A>
        <E name="queryProcessor">
            <param1>name_of_some_B_object</param1>
            <param2>name_of_some_B_object</param2>
        </E>
     </map>
 </D>

По сути, карта в D будет заполнена путем создания экземпляра класса базового типа E с переданными ему параметрами и объектом A, упоминается по его имени.

5
задан Ashish 7 December 2011 в 05:40
поделиться