2010-07-25 64 views

回答

2

你也許可以寫的東西很容易,然後從螞蟻調用它:

import java.io.File; 
import java.io.IOException; 

import javax.xml.bind.JAXBContext; 
import javax.xml.bind.SchemaOutputResolver; 
import javax.xml.transform.Result; 
import javax.xml.transform.stream.StreamResult; 

public class SchemaGenerator { 

    public static void main(String[] args) throws Exception { 
     String contextPath = args[0]; 
     String outputDir = args[1]; 
     JAXBContext jc = JAXBContext.newInstance(contextPath); 
     jc.generateSchema(new MySchemaOutputResolver(schemaFileName)); 
    } 

    private static class MySchemaOutputResolver extends SchemaOutputResolver { 

     private String outputDir; 

     public MySchemaOutputResolver(String outputDir) { 
      this.outputDir = outputDir; 
     } 

     public Result createOutput(String namespaceURI, String suggestedFileName) throws IOException { 
      File file = new File(outputDir + "/" + suggestedFileName); 
      StreamResult result = new StreamResult(file); 
      result.setSystemId(file.toURI().toURL().toString()); 
      return result; 
     } 

    } 

} 

在你的上下文路徑,你會需要一個jaxb.in​​dex文件與類的列表將包含在你的JAXBContext。或者您可以將類名傳遞給SchemaGenerator類並通過ClassLoader加載它們。