我有一个 XML,它的标签对应于从 XML 创建的三种 Java 对象。对象的形式为:
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 对象。我有两个要求:
- 从 XML 读取 A 和 B 对象时,在 A 和 B 中填充静态映射。这些映射将分别包含 A.name 到 A 和 B.name 到 B 的映射。
- 通过从 XML 标记中读取 A.name 和 B.name 然后使用 A 和 B 对象中定义的映射来填充 C 对象。
我已经阅读了一些 Java 框架,例如 JAXB,但我无法想出一种方法来从我的 XML 中创建这种类型的对象。Java中是否有一个框架可以开箱即用或使用最少的逻辑来做到这一点?
编辑:
还有一个要求:我需要定义表单的 D 和 E 对象
D
- Map<A, E>
我将定义 E 对象,类似于在 web.xml 中定义 servlet 的方式,即首先定义 E 类的名称和类,然后在其他地方使用 E 的名称。此外,传递参数以实例化 E 对象。标签看起来像:
<E>
<name>queryProcessor</name>
<class>com.mydomain.QueryProcessor</class>
</E>
现在这将在 D 中定义 Map 的内容时使用
<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 的对象,由其名称引用。