修改bindings.xml文件使JAXB从XML Schema生成自定义类名
在实现REST服务的时候,我们通常会使用JAXB来把XML Schema生成对应的java类。
这个java类的绑定通常用于前端的网络交互,例如cache处理等等,表达了一种状态。
而且为了便于客户端编程,在设计XML Schema时,数据域的格式通常会定义为string格式。
这样在进行数据库操作的时候,我们还需要对这些数据进一步处理,还包括了一些其他更复杂的操作。
这样我们就需要两个不同的类,一个表达状态,一个表达业务,但却对应同一个XML Schema,这个XML Schema我们可以从数据库表生成,具体的实施方法还在探索。
所以我采用的办法是:修改bindings.xml文件,来使JAXB生成不同于XML Schema根元素名字的类名,以区别状态类和业务类。
具体方法如下:
在Resources目录下建立类似于如下的bindings.xml文件,注意支持多文件的语法:

<?xml version="1.0" encoding="UTF-8"?>
<jaxb:bindings
xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
jaxb:version="2.0">
<jaxb:bindings schemaLocation="Abc.xsd" node="/xsd:schema/xsd:element[@name='Abc']">
<jaxb:class
name="AbcState">
</jaxb:class>
</jaxb:bindings>
<jaxb:bindings schemaLocation="Def.xsd" node="/xsd:schema/xsd:element[@name='Def']">
<jaxb:class
name="DefState">
</jaxb:class>
</jaxb:bindings>
</jaxb:bindings>
VN:F [1.9.7_1111]
Rating: 5.0/10 (1 vote cast)
修改bindings.xml文件使JAXB从XML Schema生成自定义类名, 5.0 out of 10 based on 1 rating 相关文章