J'ai écrit un certain nombre de classes en utilisant JAXB pour la sérialisation et je me demandais s'il y avait un moyen de générer un fichier XSD pour chacun de ces objets en fonction des annotations. Existe-t-il un outil pour cela?
Quelque chose comme generate-xsd com/my/package/model/Unit.Java
serait génial. Existe-t-il quelque chose pour cela?
Oui, vous pouvez utiliser la méthode generateSchema
sur JAXBContext:
JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
SchemaOutputResolver sor = new MySchemaOutputResolver();
jaxbContext.generateSchema(sor);
Vous tirez parti d'une implémentation de SchemaOutputResolver
pour contrôler où va la sortie:
public class MySchemaOutputResolver extends SchemaOutputResolver {
public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException {
File file = new File(suggestedFileName);
StreamResult result = new StreamResult(file);
result.setSystemId(file.toURI().toURL().toString());
return result;
}
}