`
zhaoyx
  • 浏览: 21263 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

用XML文件直接生成点.java文件

阅读更多

对于用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类型。

  • 大小: 21.9 KB
  • 大小: 20.2 KB
  • 大小: 23.2 KB
  • 大小: 48 KB
  • 大小: 57.8 KB
分享到:
评论

相关推荐

    用java程序生成mybatis的mapper.xml和mapper.java文件

    7. **注解方式**:除了使用XML文件,Mybatis也支持在mapper.java文件中直接使用注解来定义SQL语句。这种方式更加简洁,但可能不适合大型项目,因为所有的SQL都会在Java代码中,影响代码的可读性。 8. **最佳实践**...

    idea工具中直接从mapper.Java文件中跳转到mapper.xml文件的插件,挺不错的

    标题提到的插件就是针对这一需求而设计的,它允许开发者在Mapper Java文件中直接跳转到对应的Mapper XML文件,极大地提高了开发效率。 MyBatis是一个优秀的持久层框架,它支持定制化的SQL、存储过程以及高级映射。...

    利用hibernate自动生成hbm.xml文件和entity类.doc

    4. 选择文件生成路径:点击 Browse 选择文件生成的路径,这里可以选择一个已经存在的项目目录,以便于管理生成的文件。 5. 配置反转选项:在反转选项中,可以选择是否生成 DAO 类、Id Generator 的类型等。 6. 设置 Id...

    生成ANT所需要的Build,xml文件

    总结来说,这个Python程序gen1.py旨在简化Java开发中的ANT配置过程,通过自动分析项目结构和生成相应的build.xml文件,从而提高开发效率。了解ANT的基本概念、XML配置语法以及如何利用类似gen1.py的工具,对于Java...

    在myeclipse中根据表结构生成实体和hbm.xml文件

    在 MyEclipse 中,我们可以使用 Hibernate 根据现有的数据库表结构生成实体和 hbm.xml 配置文件,这样可以避免手动编写 JPA 或 Hibernate 实体类。下面是生成实体和 hbm.xml 文件的步骤: 首先,需要创建一个 JPA ...

    mybatis xml文件自动生成

    "mybatis xml文件自动生成"是开发过程中的一个重要环节,它可以帮助开发者提高效率,减少手动编写XML映射文件和对应的POJO(Plain Old Java Object)类的工作量。 MyBatis的Mapper文件是其核心组成部分之一,它包含...

    java读取xml文件生成文件

    在给定的场景中,我们主要关注如何使用Java来读取XML文件并根据需求生成新的文件。以下是关于这个主题的详细说明。 首先,Java中的`javax.xml.parsers`和`org.w3c.dom`包提供了处理XML的基本工具。`javax.xml....

    Java解析和生成XML.pdf

    同样地,若`@XmlAccessorType`的访问权限设置为`XmlAccessType.NONE`,则可以在私有属性上使用`@XmlElement`或`@XmlAttribute`注解,这些属性依然会被映射到生成的XML文件中。 在实际应用中,开发者应当根据实际...

    JAVA生成XML文件.doc

    ### JAVA生成XML文件知识点 #### 一、简介 在Java编程中,生成XML文件是一种常见的需求,尤其是在数据交换、配置管理或系统间通信时。...以上就是关于使用Java生成XML文件的核心知识点及代码示例。希望对你有所帮助!

    格式化xml字符串,并生成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文件到指定路径和上传到ftp服务器到指定路径的方法。

    java生成xml文件的时候如何控制xml的缩进格式.pdf

    java生成xml文件的时候如何控制xml的缩进格式.pdf

    java 通过模板生成 xml,发送报文

    在Java编程中,生成XML文件并发送报文是一项常见的任务,尤其在系统间的数据交换、API调用或者网络通信中。XML(eXtensible Markup Language)是一种结构化数据表示语言,具有良好的可读性和可扩展性,是数据传输的...

    springboot+mybatis(mybatis dao与xml文件自动生成)

    MBG是一个代码生成工具,它可以基于数据库表生成Java实体类、Mapper接口以及相应的XML配置文件。要使用MBG,我们需要在项目的`pom.xml`文件中添加依赖,并配置相关的生成规则。以下是一个基本的MBG配置示例: ```...

    xml文件自动转成java对象工具

    除了XSD转Java,有些工具还支持直接将XML文件转换为Java对象。这个过程涉及到XML解析,通常使用DOM(Document Object Model)、SAX(Simple API for XML)或者StAX(Streaming API for XML)等解析器。解析器读取XML...

    base64的XML或XML生成png图片.rar

    这里,我们关注的是一个Java实现的项目,它允许我们将XML数据通过Base64编码,然后生成PNG图像。这个过程涉及到几个关键的技术点,让我们逐一深入探讨。 首先,**Base64编码**是一种将二进制数据转化为ASCII字符串...

    mybatis自动生成mapper.xml文件

    生成的Mapper.xml文件通常包含SQL查询语句,DAO接口则提供了对应的操作方法,Model类则是数据库表对应的Java对象。 4. 集成Mapper:在SpringBoot中,需要将生成的Mapper接口注入到Service层,以便进行数据操作。...

    JAVA对象序列化保存为XML文件的工具类

    以下是一个简单的示例,展示了如何使用`ObjectToXMLUtil`工具类将Java对象序列化到XML文件以及从XML文件中反序列化: ```java public class Test { public static void main(String[] args) { // 创建一个示例...

    JAVA 生成 XML文件

    本篇文章将深入探讨如何使用Java来生成XML文件,并结合数据库操作进行数据提取。 首先,我们需要了解XML的基本结构。XML文件由一系列元素组成,每个元素都有开始标签(如`&lt;element&gt;`)和结束标签(如`&lt;/element&gt;`)...

    java操纵xml文件的读写,并根据xml生成树型菜单

    本文将详细介绍如何使用Java进行XML文件的读写操作,并基于读取到的数据生成树型菜单,以方便用户浏览和操作。 #### 二、关键概念解释 1. **XML文件**: 一种结构化数据存储的语言,用于标记电子文档。 2. **DOM ...

Global site tag (gtag.js) - Google Analytics