Jump to: navigation, search

Difference between revisions of "EclipseLink/UserGuide/MOXy/Runtime/Bootstrapping/Generating Schema"

Line 17: Line 17:
 
private class MySchemaOutputResolver extends SchemaOutputResolver {
 
private class MySchemaOutputResolver extends SchemaOutputResolver {
 
   
 
   
    public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException {
+
  public Result createOutput(String uru, String suggestedFileName) throws IOException {
        File file = new File(suggestedFileName);
+
      File file = new File(suggestedFileName);
        StreamResult result = new StreamResult(file);
+
      StreamResult result = new StreamResult(file);
        result.setSystemId(file.toURI().toURL().toString());
+
      result.setSystemId(file.toURI().toURL().toString());
        return result;
+
      return result;
    }
+
  }
 
   
 
   
 
}
 
}

Revision as of 12:58, 15 June 2011

EclipseLink MOXy

link="http://wiki.eclipse.org/EclipseLink"
EclipseLink
Website
Download
Community
Mailing ListForumsIRC
Bugzilla
Open
Help Wanted
Bug Day
Contribute
Browse Source

Elug example icon.png Examples

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 uru, 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);