我需要为一堆Java类构建XML Schema。我尝试使用JAXB(schemagen)和JIBX(bindgen)。我的java类扩展到库中的类,包含几个继承和子类。
使用JAXB 失败1 :我收到异常JAXB can't handle interfaces
。我的类没有任何注释,也没有.jar文件中的扩展类。
public class MySchemaOutputResolver extends SchemaOutputResolver {
public static void main(String[] args) throws IOException, JAXBException {
JAXBContext jaxbContext = JAXBContext.newInstance(MYCLASS.class);
jaxbContext.generateSchema(new MySchemaOutputResolver(filepath));
}
String filepath = null;
public MySchemaOutputResolver(String filepath) {
this.filepath = filepath;
}
@Override
public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException {
File file = new File(filepath);
StreamResult result = new StreamResult(file);
result.setSystemId(file.toURI().toURL().toString());
return result;
}
}
失败2:然后我尝试使用JIBX(bindgen)。但是这里的输出只包含当前类的值。不会创建扩展类中的所有变量。
所以也许我基本上问这个问题:
如何创建一个XML Schema,其中包含来自.jar扩展另一个类的Java类的所有属性?