在NetBeans下根据xml schema创建java类

长平狐 发布于 2012/08/28 16:37
阅读 180
收藏 0

在我的上篇文章"在NetBeans下将Java对象映射到XML文档",利用NetBeans模板代码将Person对象的数据序列化到一个xml文档中(后面称之为instant document)。本篇介绍如何使用NetBeans6.7.1从一个xsd文件(后面称之为xml schema)创建一个Java类。Person.xml内容大体如下(去掉第一行和最后一行)


我们需要一个描述java类的xml schema,这里为了简单起见,借用vs.net2005的工具xsd.exe,xsd可以根据instant document的内容推测出一个xml schema文件。在visual studio 2005 command prompt环境下执行如下命令:(假设Person.xml文件在c:)
C:Program FilesMicrosoft Visual Studio 8VC>xsd c:Person.xml
xsd.exe虽然简单,但是有一些缺点,比如生成的类型都成了string,下面是生成的xsd文件内容:


    类型都成了xs:string。xml schema的语法以后我会另起一篇文章介绍。比较正式的做法一般是先设计xml schema,然后生成java类(虽然我更喜欢先写Java代码,然后导出xml schema)。

现在,我们用NetBeans创建一个Java Application工程,名称为SchemaToClass。右键点击工程,选择创建,在下面的对话框中选择xml,然后选中JAXB Binding:



点击Next按钮,如下图,进行设置:

Binding Name设置为Person,Package Name设置为freebird,Schema File选中Person.xsd文件。然后点击Finish按钮。代码生成了,如下:(注释已经去掉)

package freebird;

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlType;


@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "", propOrder = {
    "name",
    "sex"
})
@XmlRootElement(name = "Test")
public class Test {

    protected String name;
    protected String sex;

    public String getName() {
        return name;
    }


    public void setName(String value) {
        this.name = value;
    }


    public String getSex() {
        return sex;
    }


    public void setSex(String value) {
        this.sex = value;
    }

}

    类名为Test是因为我在前一篇文档中有这个设置:@XmlRootElement(name="Test",namespace="freebird"),把Test改回来就可以了。















原文链接:http://blog.csdn.net/sheismylife/article/details/4718760
加载中
返回顶部
顶部