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