微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

动态生成Java源代码无xjc

如何解决动态生成Java源代码无xjc

我的解决方案必须包含一些J2EE库,因为独立的JDK 6无法访问xjc实用程序类:

import com.sun.codemodel.*;
import com.sun.tools.xjc.api.*;
import org.xml.sax.InputSource;

// Configure sources & output
String schemaPath = "path/to/schema.xsd";
String outputDirectory = "schema/output/source/";

// Setup schema compiler
SchemaCompiler sc = XJC.createSchemaCompiler();
sc.forcePackageName("com.xyz.schema.generated");

// Setup SAX InputSource
File schemaFile = new File(schemaPath);
InputSource is = new InputSource(new FileInputStream(schemaFile));
is.setSystemId(schemaFile.getAbsolutePath());

// Parse & build
sc.parseSchema(is);
S2JJAXBModel model = sc.bind();
Jcodemodel jcodemodel = model.generateCode(null, null);
jcodemodel.build(new File(outputDirectory));
  • .java源代码将放置在 outputDirectory中

解决方法

没有人设法在没有XJC的情况下从JAXB模式文件生成Java代码吗?

有点类似于

JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler()

用于动态地动态编译Java代码。

注意:在JDK 6上运行,意味着com.sun.*不推荐使用工具包 (感谢)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。