いくつかのメソッドを持つWebサービスがあり、各メソッドには独自の応答と要求(POJOクラス)があります。
XSDファイルをユーザーに配布したいので、JAXBを使用してスキーマファイルを生成することにしました。
私の問題は、個別のファイル(サービスごとに1つ)が欲しいということです!!
JAXBを試しましたが、取得するのはすべてのオブジェクトを含む大きなXSDだけです
JAX-WSを使用してWebサービスを公開すると、wsdl
各クライアントのニーズと範囲がすべてわかります。
とにかく..JAX-RSと言いますか?
JAXBContext#generateSchemaを使用して、クラスごとまたは一部のクラスに対して小さなスコープのXSDを生成できます。
public void generateSchema(final Class<?> classesToBeBound,
final OutputStream schemaStream)
throws JAXBException, IOException {
final JAXBContext context = JAXBContext.newInstance(classesToBeBound);
context.generateSchema(new SchemaOutputResolver() {
public Result createOutput(final String namespaceUri,
final String suggestedFileName)
throws IOException {
return new StreamResult(schemaStream) {
@Override
public String getSystemId() {
return suggestedFileName;
}
}
}
});
}