一連の Java クラスの XML スキーマを構築する必要があります。JAXB (schemagen) と JIBX (bindgen) で試してみました。私の Java クラスは、ライブラリ内のクラスから拡張され、いくつかの継承とサブクラスが含まれています。
JAXB の失敗 1 : I get the exception 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) で試しました。ただし、ここでは、出力には現在のクラスの値のみが含まれています。拡張クラスのすべての変数は作成されません。
だから多分私は非常に基本的に質問をします:
.jar から別のクラスを拡張する Java クラスのすべての属性を含む XML スキーマを作成するにはどうすればよいですか?