Xsd转换成javaBean
xjc -d F:/ -p com.creval.xsd.test E:/server.xsd
xjc是java中自带的命令
-d指定生成的java文件存放的磁盘目录
-p指定生成的java文件的包名
最后要指定XSD文件的路径
如果指定的XSD的依赖其它的XSD,所依赖的XSD必须与指定的XSD在同一个目录中
Xsd 和java 转换
创建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