用JAXB将xml报文生成java实体类
前言
在开发ws接口,或者需要用到xml做载体的时候,经常需要将客户提供的测试xml报文,转化成我们java应用的实体类,不管实体类的字段多还是少,如果手工去写我都觉得非常麻烦,非常浪费时间,(而且实际的开发过程中,接口所需的字段也不可能少),所以最好就是能用工具去帮我们解决这个问题。
之前已经有过一次用JAXB将xml报文转成java实体类的经历了,但是做完之后也没有做个笔记 ,导致再一次遇到这个问题的时候,虽然知道方法,但已经想不起当时踩过的坑。尽管如此,还是要做个笔记,亡羊补牢,为时不晚。
1.先通过xml生成xsd文件
先用工具,将xml报文生成一份xsd出来(xsd文件就是xml的约束文件),我用的工具是 XMLSpy
,如下图,在 “文件” 处,选择新建或打开你的xml报文之后,点击 DTD/Schema
这一项菜单项
然后如下图,选择 生成DTD/Schema
这一项,
之后会弹出如下图的对话框,因为目的是要生成 xsd文件
,就要选择 W3C Schema
这一项,其他的项默认就可以了,然后点击确定
最后,会弹出让你保存的目录的对话框,找到自己方便的目录,点击确定保存即可
2.通过JAXB将xsd文件生成java实体类
获得上一步生成 xsd文件
之后,用 java 自带的 JAXB
工具去生成 java实体类
。
在你的 xsd文件
的目录,打开命令行窗口,执行 xjc xxxx.xsd
指令,即可生成 xsd
对应的 javaBean
。
最终生成的 javaBean 如下,