您的位置:首页 > 编程语言 > Java开发

Java Bean以及xsd相互生成

2016-08-18 16:02 337 查看


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

[java] view
plain copy

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

[java] view
plain copy

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: