Saltar al contenido

utilidad para generar xsd desde la clase java

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.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)


Tags : / /

Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *