Java Bean以及xsd相互生成

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

[java]  view plain  copy
  1. import java.util.List;  
  2. public class Student {  
  3.     private String name;  
  4.     private String number;  
  5.     private String gender;  
  6.     private String age;  
  7.     private List<Course> courses;  
  8.   
  9.     public static class Course {  
  10.         private String name;  
  11.         private String grade;  
  12.         private String remark;        
  13.                 // Getter and Setter Methods ...  
  14.     }         
  15.         // Getter and Setter Methods ...  
  16. }  

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

[java]  view plain  copy
  1. import java.io.File;  
  2. import java.io.IOException;  
  3. import javax.xml.bind.JAXBContext;  
  4. import javax.xml.bind.JAXBException;  
  5. import javax.xml.bind.SchemaOutputResolver;  
  6. import javax.xml.transform.Result;  
  7. import javax.xml.transform.stream.StreamResult;  
  8.   
  9. public class XSDCreate {  
  10.   
  11.     public CustomSchemaOutputResolver resolver;  
  12.   
  13.     public static void main(String[] args) {  
  14.         XSDCreate xsdCreate = new XSDCreate();  
  15.         xsdCreate.resolver = xsdCreate.new CustomSchemaOutputResolver("F:\\schema""student.xsd");  
  16.   
  17.         Class[] classes = { Student.class };  
  18.         xsdCreate.createXSD(classes);  
  19.   
  20.         System.out.println("all done");  
  21.     }  
  22.   
  23.     public void createXSD(Class[] classes) {  
  24.         try {  
  25.             JAXBContext context = JAXBContext.newInstance(classes);  
  26.             context.generateSchema(resolver);  
  27.         } catch (JAXBException e) {  
  28.             e.printStackTrace();  
  29.         } catch (IOException e) {  
  30.             e.printStackTrace();  
  31.         }  
  32.     }  
  33.   
  34.     public class CustomSchemaOutputResolver extends SchemaOutputResolver {  
  35.   
  36.         private File file;  
  37.   
  38.         public CustomSchemaOutputResolver(String dir, String fileName) {  
  39.             try {  
  40.                 file = new File(dir, fileName);  
  41.                 if (!file.exists()) {  
  42.                     file.createNewFile();  
  43.                 }  
  44.             } catch (IOException e) {  
  45.                 e.printStackTrace();  
  46.             }  
  47.         }  
  48.   
  49.         @Override  
  50.         public Result createOutput(String namespaceUri, String suggestedFileName) throws IOException {  
  51.             return new StreamResult(file);  
  52.         }  
  53.   
  54.     }  
  55. }  

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

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值