在我当前的项目中,我们使用JAXB beans for Hibernate,并通过[REST API] [1]以XML和JSON格式发送数据。我们希望能够在我们用作REST VO的Result对象中任意包含任何JAXB bean(例如,作为<xsd:any>
元素),而不必为可能包含的每种不同类型分别编组。看起来最简单的方法是使每个bean都有@XmlRootElement注释。将@XmlRootElement添加到每个JAXB bean是否有任何问题?
- 这是“无缝”编组的好方法吗?
- 这样做有后果吗?
我们使用Java 1.6,用于jaxb的EclipseLink/MOXy,用于REST的Jersey 1.x以及Tomcat应用服务器。我们的bean是使用xjc从XML Schema文件生成的,并使用annox在生成时添加注释。
[1]:在理想世界中的数据对象将是从域对象分开,但是这是一个小团队的一个小项目,所以数据库和API之间的隔离是没有必要的