【问题标题】:Generating XML Schema from JAXB class files in Ant在 Ant 中从 JAXB 类文件生成 XML Schema
【发布时间】:2010-07-25 10:27:20
【问题描述】:

是否可以使用shemagen ant Task 从类文件而不是源代码生成 xsd 架构?

【问题讨论】:

    标签: java ant xsd jaxb schemagen


    【解决方案1】:

    你可以很容易地写一些东西,然后从 Ant 调用它:

    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 加载它们。

    【讨论】:

      猜你喜欢
      • 2010-12-15
      • 2013-02-26
      • 2011-06-27
      • 1970-01-01
      • 2012-02-01
      • 1970-01-01
      • 2021-08-23
      • 2016-05-15
      • 2010-09-11
      相关资源
      最近更新 更多