47 votos

Es posible generar un XSD de un JAXB-anotado clase?

He escrito una serie de clases con JAXB para la serialización y me preguntaba si había una manera de generar un archivo XSD para cada uno de estos objetos basándose en las anotaciones. Hay una herramienta para ello?

Algo como generate-xsd com/my/package/model/Unit.java sería impresionante. Nada existe para hacer esto?

73voto

Blaise Doughan Puntos 75613

Sí, usted puede utilizar el generateSchema método de JAXBContext:

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

Aprovechar una implementación de SchemaOutputResolver de control en el que la salida va:

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

}

1voto

Skeptic Puntos 915

Sí, mira el esquema de generación en esta guía.

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X