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

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

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

Да, вы можете использовать метод 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; } } 
  • что такое xsi: schemaLocation?
  • Бесплатная утилита для преобразования DTD в XSD?
  • В чем разница между XML и XSD?
  • Требовать XML-элемент в XSD, когда другой элемент имеет определенное значение?
  • Рекурсия в XML-схеме?
  • Инструмент проверки XML-схемы (XSD)?
  • XML-схема: элемент с атрибутами, содержащими только текст?
  • Создание classа JAXB, который реализует интерфейс
  • В чем цель XSD-файлов?
  • Создание схемы Json из схемы XML (XSD)
  • Как создать classы .NET 4.0 из xsd?
  • Давайте будем гением компьютера.