没有人设法在没有XJC的情况下从JAXB模式文件生成Java代码吗?
有点类似于
JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler()
用于动态地动态编译Java代码。
注意:在JDK 6上运行,意味着不建议使用
com.sun.*
工具包(感谢Blaise Doughan作为提示) 最佳答案
我必须包括一些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中
关于java - 动态生成Java源代码(无xjc),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4248099/