Ash*_*ish 5 java xml spring jaxb jibx
我有一个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
Run Code Online (Sandbox Code Playgroud)
现在,在我的XML中,我为A对象和B对象定义了一个标签列表,然后我为C对象定义了标签,这些对象使用name字段引用A和B对象.我有两个要求:
我已经阅读了一些像JAXB这样的Java框架,但是我无法想出一种从XML创建这种类型的对象的方法.Java中是否有一个可以开箱即用或者逻辑最少的框架?
编辑:
还有另一个要求:我需要定义表单的D和E对象
D
- Map<A, E>
Run Code Online (Sandbox Code Playgroud)
我将定义E对象,类似于在web.xml中定义servlet的方式,即首先定义E类的名称和类,然后在其他地方使用E的名称.另外,传递参数以实例化E对象.标签看起来像:
<E>
<name>queryProcessor</name>
<class>com.mydomain.QueryProcessor</class>
</E>
Run Code Online (Sandbox Code Playgroud)
现在,这将在定义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>
Run Code Online (Sandbox Code Playgroud)
本质上,D中的映射将通过实例化一个基类型E的类来填充,其中传递给它的参数和由其名称引用的A的对象.
(如果您熟悉 JAXB 注释并且想要使用 Java 而不是 XSD 控制接口,您也可以以相反的方式执行此操作)。
注意:静态地图很可能不是您想要使用的。如果您详细解释您想要解决的问题,我们也许可以为您指出一些替代方法
编辑:
你说的是XML的格式吗?或者为什么我需要 XML?我需要 XML 才能使我的应用程序在 Java 之外进行配置。
看起来你正在重新发明轮子。看一下 Spring,看看它是否满足您的需求。如果没有,请解释原因。
| 归档时间: |
|
| 查看次数: |
1658 次 |
| 最近记录: |