Esta es la solución más válida que te podemos brindar, pero obsérvala pausadamente y analiza si se puede adaptar a tu trabajo.
Solución:
Puedes usar el generateSchema
API en JAXBContext
para generar un esquema XML:
import java.io.IOException;
import javax.xml.bind.*;
import javax.xml.transform.Result;
import javax.xml.transform.stream.StreamResult;
public class Demo
public static void main(String[] args) throws Exception
JAXBContext jc = JAXBContext.newInstance(Node.class);
jc.generateSchema(new SchemaOutputResolver()
@Override
public Result createOutput(String namespaceURI, String suggestedFileName)
throws IOException
return new StreamResult(suggestedFileName);
);
Si ya está usando JAXB, puede usar el schemagen
herramienta para crear un XSD:
- http://docs.oracle.com/javase/6/docs/technotes/tools/share/schemagen.html
- http://publib.boulder.ibm.com/infocenter/wasinfo/v7r0/index.jsp?topic=%2Fcom.ibm.websphere.express.doc%2Finfo%2Fexp%2Fae%2Ftwbs_jaxbjava2schema.html
También hay tareas de Ant y complementos de Maven para hacer lo mismo de manera automatizada.
También hay tareas de Ant y complementos de Maven para hacer lo mismo de manera automatizada.
Sí, de hecho los hay. Antes de que tenga que averiguarlo por sí mismo, aquí está la versión experta:
(1) Agregue el complemento maven a su pom.xml
org.codehaus.mojo
jaxb2-maven-plugin
2.4
schemagen
schemagen
http://www.your.url/namespace/foo
your-schema-name.xsd
...
(2) Agregue una clase de información del paquete (opcional):
package-info.java
a su(s) paquete(s) (java). Este archivo contiene el nombre del paquete:
@javax.xml.bind.annotation.XmlSchema(namespace = "http://www.your.url/namespace/foo", elementFormDefault = javax.xml.bind.annotation.XmlNsForm.QUALIFIED)
package url.your.namespace.foo;
(3) Agregue anotaciones XML a sus clases como
@XmlRootElement(name = "Container")
@XmlAccessorType(XmlAccessType.FIELD)
public class Container
@XmlElement(name = "Info", required = true)
private Info info;
@XmlElement(name = "Unit")
private Unit unit;
...
Luego, solo tiene que ejecutar su compilación maven y luego, en la carpeta de destino, encontrará su archivo xsd.
Sección de Reseñas y Valoraciones
Si conservas algún aprieto y forma de reaccionar nuestro crónica eres capaz de ejecutar un paráfrasis y con gusto lo estudiaremos.