最近对接第三方公司接口,对方调用我们http接口是在request的body里传的整个的xml字符串,xml的定义是第三方公司定义的。我接到字符串后要对xml内容解析,解析出自己要的业务数据。之前xml和bean之间的转换都是用JAXB,先定义java bean,然后加上xml注解,然后用JAXB把java对象转为xml,或者把xml转为java对象。
现在的问题是没有这个java bean类,需要先定义一个java bean。可是xml内容太多,而且不是一个xml,有很多种,一个一个的敲太费劲了,网上查了一番,解决问题。
JAXB根据xml的xsd文件生成java bean的代码
1.下载JAXB包
jaxb-2_1_9.zip(页面最下方)
2.解压命令行下进入bin目录
3.运行:xjc -d %output_path% -p com.xxx.xxx.bean xxx.xsd
-d:java代码存放路径
-p:bean包结构
使用xsd.exe生成xml文件对应的xsd文件
JAXB生成java代码的入参是xsd文件,不是xml文件,所以要先生成xsd文件。
xsd.exe是微软.net的一个工具,借来用了,但后续是为我的java服务的哈哈。
The XML Schema Definition (Xsd.exe) tool generates XML schema or common language runtime classes from XDR, XML, and XSD files, or from classes in a runtime assembly.
1.下载xsd.exe
(页面最下方)
2.控制台运行如下命令
xsd xxx.xml [/outputdir:directory]
这样对应的xsd文件就生成了
当然以上方法生成的xsd是把xml所有属性都当成string了,所以生成的java bean所有的属性也都是字符串,需要自己适当修改,但总比一个一个敲容易多了,也不容易出错。