使用JAXB来处理XML文件(JavaBean和xml互转)

最近在研究公司的工作流(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>

二、

未完,待续。

猜你喜欢

转载自blog.csdn.net/H517604180/article/details/80865100