我有一个 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 中是否有一个框架可以开箱即用或用最少的逻辑来完成此操作?
Edit:
还有一个要求:
我需要定义以下形式的 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 的对象(通过其名称引用)来填充。