Подтвердить что ты не робот

Можно ли генерировать XSD из JAXB-аннотированного класса?

Я написал несколько классов с использованием JAXB для сериализации, и мне было интересно, есть ли способ генерировать XSD файл для каждого из этих объектов на основе аннотаций. Есть ли для этого инструмент?

Что-то вроде generate-xsd com/my/package/model/Unit.java было бы потрясающе. Есть ли что-нибудь для этого?

4b9b3361

Ответ 1

Да, вы можете использовать метод generateSchema в JAXBContext:

JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
SchemaOutputResolver sor = new MySchemaOutputResolver();
jaxbContext.generateSchema(sor);

Вы используете реализацию SchemaOutputResolver для управления, где идет выход:

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;
    }

}