我有一个从一组现有的
java类生成的xsd,目前它成功地将
XML消息解组到对象中,但是我希望能够做的是我有一个现有的Object实例让unmarshaller只需更新传递给它的消息中包含的字段
例如(原谅任何语法错误,它只是在我的头顶)
如果我有一个带有许多字段,标题,作者,已发布等的带注释的类Book和相应的生成的xsd,那么很多字段设置为不需要我想能够获得以下xml
<Book> <title>Dummys guide to JAXB</title> </Book>
而不是简单地创建仅具有标题集的新Book实例,将其应用于现有实例作为更新,因此只需在该实例上设置title变量.
解决方法
JAXB无法为您做到这一点,不.但是,您可以使用JAXB将XML文档解组为新对象,然后将新对象的属性反射复制到现有对象上.
Commons BeanUtils为此提供了一种机制,例如BeanUtils.copyProperties方法.不过,我不确定这是不是很复杂.