Developing JAXB Applications Using EclipseLink MOXy, Release 2.7
  Go To Table Of Contents
 Search
 PDF

Generating an XML Schema

To generate an XML schema from a Java object model:

  1. Create a class that extends javax.xml.bind.SchemaOutputResolver.

          private class MySchemaOutputResolver extends SchemaOutputResolver {
           
             public Result createOutput(String uri, String suggestedFileName) throws IOException {
                File file = new File(suggestedFileName);
                StreamResult result = new StreamResult(file);
                result.setSystemId(file.toURI().toURL().toString());
                return result;
             }
           
          }
    
  2. Use an instance of this class with JAXBContext to capture the generated XML Schema.

          Class[] classes = new Class[4]; 
          classes[0] = org.example.customer_example.AddressType.class; 
          classes[1] = org.example.customer_example.ContactInfo.class; 
          classes[2] = org.example.customer_example.CustomerType.class; 
          classes[3] = org.example.customer_example.PhoneNumber.class; 
          JAXBContext jaxbContext = JAXBContext.newInstance(classes);
           
          SchemaOutputResolver sor = new MySchemaOutputResolver();
          jaxbContext.generateSchema(sor);