最近在研究公司的工作流(xml格式),利用java类去处理xml,包括对xml的节点值进行修改、新建xml节点的等。这就需要先生成xml对应的java类,此时JAXB就派上用场了。
生成java类之前,先准备xml文件。
假设是这样:workflow.xml
<?xml version="1.0" encoding="UTF-8"?>
<flowstep stepname="第一次审核" steptype="1">
<userid>tom</userid>
<username>汤姆</username>
<sonflow>
<userid>someone</userid>
</sonflow>
</flowstep>
将这个xml转换成对应的java类之前,
先需要它的XSD( XML Schemas Definition),这里我们先下载一个trang.jar文件。
一 下载 trang.jar
1.百度搜索关键词 trang.jar maven;
2.打开搜索结果中maven那一条;
点击红色区域,即可下载。
3.将trang.jar放在某个路径下,假设D盘根目录。
4.将workflow.xml放在c盘的user\用户名 目录下。
5.执行cmd命令:java -jar D:\trang.jar workflow.xml workflow.xsd
这样,在xml同级目录下,就生成了需要的xsd文件。
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
<xs:element name="flowstep">
<xs:complexType>
<xs:complexContent>
<xs:extension base="userid">
<xs:sequence>
<xs:element ref="username"/>
<xs:element ref="sonflow"/>
</xs:sequence>
<xs:attribute name="stepname" use="required" type="xs:NCName"/>
<xs:attribute name="steptype" use="required" type="xs:integer"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:element name="username" type="xs:NCName"/>
<xs:element name="sonflow" type="userid"/>
<xs:complexType name="userid">
<xs:sequence>
<xs:element ref="userid"/>
</xs:sequence>
</xs:complexType>
<xs:element name="userid" type="xs:NCName"/>
</xs:schema>
二、
未完,待续。