Java Bean以及xsd相互生成

1.先定义一个Java bean  -- Student.java

import java.util.List;
public class Student {
	private String name;
	private String number;
	private String gender;
	private String age;
	private List<Course> courses;

	public static class Course {
		private String name;
		private String grade;
		private String remark;		
                // Getter and Setter Methods ...
	}       
        // Getter and Setter Methods ...
}

2.创建xsd文件生成的工具类 -- XSDCreate

import java.io.File;
import java.io.IOException;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.JAXBException;
import javax.xml.bind.SchemaOutputResolver;
import javax.xml.transform.Result;
import javax.xml.transform.stream.StreamResult;

public class XSDCreate {

	public CustomSchemaOutputResolver resolver;

	public static void main(String[] args) {
		XSDCreate xsdCreate = new XSDCreate();
		xsdCreate.resolver = xsdCreate.new CustomSchemaOutputResolver("F:\\schema", "student.xsd");

		Class[] classes = { Student.class };
		xsdCreate.createXSD(classes);

		System.out.println("all done");
	}

	public void createXSD(Class[] classes) {
		try {
			JAXBContext context = JAXBContext.newInstance(classes);
			context.generateSchema(resolver);
		} catch (JAXBException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}

	public class CustomSchemaOutputResolver extends SchemaOutputResolver {

		private File file;

		public CustomSchemaOutputResolver(String dir, String fileName) {
			try {
				file = new File(dir, fileName);
				if (!file.exists()) {
					file.createNewFile();
				}
			} catch (IOException e) {
				e.printStackTrace();
			}
		}

		@Override
		public Result createOutput(String namespaceUri, String suggestedFileName) throws IOException {
			return new StreamResult(file);
		}

	}
}

3. 运行XSDCreate的main方法 即可在 F:\\schema目录下生成Schema文件 --> student.xsd。

4. Window CMD 执行如下命令(JDK环境下的XJC 命令):

    xjc student.xsd -d F:\schema -p com.bert.bean

    执行结果如下:

    正在解析模式...
    正在编译模式...
    com\bert\bean\Course.java
    com\bert\bean\ObjectFactory.java
    com\bert\bean\Student.java


  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值