如何从相互引用的XML标记创建Java对象?
我有一个
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对象定义了标签,这些对象使用name字段引用A和B对象. >从XML中读取A和B对象时,在A和B中填充静态映射.这些映射将包含A.name到A的映射,以及B.name到B.的映射. 我已经阅读了一些像JAXB这样的Java框架,但是我无法想出一种从XML创建这种类型的对象的方法. Java中是否有一个可以开箱即用或者逻辑最少的框架? 编辑: 还有另一个要求: 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的对象. 解决方法
>使用XSD指定正确的XML格式
>生成JAXB类 (如果您熟悉JAXB注释并希望使用Java而不是XSD控制接口,那么您也可以反过来这样做. 注意:静态地图很可能不是您想要使用的.如果您解释更多关于您想要解决的问题,我们可能会指出一些替代方法 编辑:
看起来你正在重新发明轮子.看看Spring,看看它是否符合您的需求.如果没有,请解释原因. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |