对于用Jaxb解析xml的同行来说,这是个很好用的工具,我用了大约有3个月,省了不少工作量,一直自私没有分享,现在看网上有类似的文章出现,但是不够详细,我就分享一下用的效果。
在用Jaxb解析xml的时候,需要写好多javabean,并且各bean之间是有一定关系的,一旦xml文件结构比较复杂或者字段比较多时,做的工作会很无聊,而且容易出错,那就用工具来做吧。
首先,下载附件中的trang.jar包。放在任意文件夹中,我放在了C:\In中。同时把要转换的zhaoyx.xml文件也放在该文件夹中。建立生成.java文件的包zhaoyx。如图:
其次,win+R打开运行窗口,cmd进去,切换到C:\In目录下。
执行:java -jar trang.jar zhaoyx.xml zhaoyx.xsd 命令,执行后,如图:
在C:\In目录下多了zhaoyx.xsd文件
再次,在运行窗口执行xjc -p zhaoyx zhaoyx.xsd 命令行,然后就开始解析和生成java了,如下图:
在C:\In目录下就多了生成的javabean
最后,修改这些javabean,生成javabean是xml文件的一个结构映射,工具不是非常智能,一些特殊情况,需要手工改。下面说一下常用的修改。
1、终结点有时候生成的不是基本类型,如我生成的CAGENT.java代码中有SERIALNO.java型变量,但这个节点是<SERIALNO></SERIALNO>,显然这个类型是多余的,我把它改成String型,多余的类删掉即可。
2、生成<STARTDATE class="sql-date">2012-09-14</STARTDATE>节点的类不能用,需要删掉STARTDATE类,自己添加StartDate类,代码如下:
package zhaoyx;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlAttribute;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlValue;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlRootElement(name = "startdate")
public class StartDate {
@XmlAttribute(name = "class")
private String className;
@XmlValue
private String value;
public String getClassName() {
return className;
}
public void setClassName(String className) {
this.className = className;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
在Jaxb转换xml前,为对象设值,需要
packet.getBussdocinfo().getStartdate().setClassName("sql-date");
packet.getBussdocinfo().getStartdate().setValue("2012-09-14");
3、设计到List集合行的成员变量时需要手工修改,下面是个改好的java类,可以参考
package zhaoyx;
import java.util.List;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
"sumclause"
})
@XmlRootElement(name = "sumclauselist")
public class Sumclauselist {
@XmlElement(required = true)
protected List<Sumclause> sumclause;
public List<Sumclause> getSumclause() {
return sumclause;
}
public void setSumclause(List<Sumclause> value) {
this.sumclause = value;
}
}
生成的时候,这里不会是List类型。
相关推荐
7. **注解方式**:除了使用XML文件,Mybatis也支持在mapper.java文件中直接使用注解来定义SQL语句。这种方式更加简洁,但可能不适合大型项目,因为所有的SQL都会在Java代码中,影响代码的可读性。 8. **最佳实践**...
标题提到的插件就是针对这一需求而设计的,它允许开发者在Mapper Java文件中直接跳转到对应的Mapper XML文件,极大地提高了开发效率。 MyBatis是一个优秀的持久层框架,它支持定制化的SQL、存储过程以及高级映射。...
4. 选择文件生成路径:点击 Browse 选择文件生成的路径,这里可以选择一个已经存在的项目目录,以便于管理生成的文件。 5. 配置反转选项:在反转选项中,可以选择是否生成 DAO 类、Id Generator 的类型等。 6. 设置 Id...
总结来说,这个Python程序gen1.py旨在简化Java开发中的ANT配置过程,通过自动分析项目结构和生成相应的build.xml文件,从而提高开发效率。了解ANT的基本概念、XML配置语法以及如何利用类似gen1.py的工具,对于Java...
在 MyEclipse 中,我们可以使用 Hibernate 根据现有的数据库表结构生成实体和 hbm.xml 配置文件,这样可以避免手动编写 JPA 或 Hibernate 实体类。下面是生成实体和 hbm.xml 文件的步骤: 首先,需要创建一个 JPA ...
"mybatis xml文件自动生成"是开发过程中的一个重要环节,它可以帮助开发者提高效率,减少手动编写XML映射文件和对应的POJO(Plain Old Java Object)类的工作量。 MyBatis的Mapper文件是其核心组成部分之一,它包含...
在给定的场景中,我们主要关注如何使用Java来读取XML文件并根据需求生成新的文件。以下是关于这个主题的详细说明。 首先,Java中的`javax.xml.parsers`和`org.w3c.dom`包提供了处理XML的基本工具。`javax.xml....
同样地,若`@XmlAccessorType`的访问权限设置为`XmlAccessType.NONE`,则可以在私有属性上使用`@XmlElement`或`@XmlAttribute`注解,这些属性依然会被映射到生成的XML文件中。 在实际应用中,开发者应当根据实际...
### JAVA生成XML文件知识点 #### 一、简介 在Java编程中,生成XML文件是一种常见的需求,尤其是在数据交换、配置管理或系统间通信时。...以上就是关于使用Java生成XML文件的核心知识点及代码示例。希望对你有所帮助!
例如,使用`java.io.FileInputStream`和`java.io.InputStreamReader`读取XML文件,然后用`javax.xml.transform.Transformer`将XML文档转换为字符串。 ```java import java.io.File; import java.io.FileInputStream...
JAVA中生成xml文件到指定路径和上传到ftp服务器到指定路径的方法。
java生成xml文件的时候如何控制xml的缩进格式.pdf
在Java编程中,生成XML文件并发送报文是一项常见的任务,尤其在系统间的数据交换、API调用或者网络通信中。XML(eXtensible Markup Language)是一种结构化数据表示语言,具有良好的可读性和可扩展性,是数据传输的...
MBG是一个代码生成工具,它可以基于数据库表生成Java实体类、Mapper接口以及相应的XML配置文件。要使用MBG,我们需要在项目的`pom.xml`文件中添加依赖,并配置相关的生成规则。以下是一个基本的MBG配置示例: ```...
除了XSD转Java,有些工具还支持直接将XML文件转换为Java对象。这个过程涉及到XML解析,通常使用DOM(Document Object Model)、SAX(Simple API for XML)或者StAX(Streaming API for XML)等解析器。解析器读取XML...
这里,我们关注的是一个Java实现的项目,它允许我们将XML数据通过Base64编码,然后生成PNG图像。这个过程涉及到几个关键的技术点,让我们逐一深入探讨。 首先,**Base64编码**是一种将二进制数据转化为ASCII字符串...
生成的Mapper.xml文件通常包含SQL查询语句,DAO接口则提供了对应的操作方法,Model类则是数据库表对应的Java对象。 4. 集成Mapper:在SpringBoot中,需要将生成的Mapper接口注入到Service层,以便进行数据操作。...
以下是一个简单的示例,展示了如何使用`ObjectToXMLUtil`工具类将Java对象序列化到XML文件以及从XML文件中反序列化: ```java public class Test { public static void main(String[] args) { // 创建一个示例...
本篇文章将深入探讨如何使用Java来生成XML文件,并结合数据库操作进行数据提取。 首先,我们需要了解XML的基本结构。XML文件由一系列元素组成,每个元素都有开始标签(如`<element>`)和结束标签(如`</element>`)...
本文将详细介绍如何使用Java进行XML文件的读写操作,并基于读取到的数据生成树型菜单,以方便用户浏览和操作。 #### 二、关键概念解释 1. **XML文件**: 一种结构化数据存储的语言,用于标记电子文档。 2. **DOM ...