java - 是否可以从带有 JAXB 注释的类生成 XSD?

标签 java xsd jaxb

我已经编写了许多使用 JAXB 进行序列化的类,我想知道是否有一种方法可以根据注释为每个对象生成 XSD 文件。有这个工具吗?

generate-xsd com/my/package/model/Unit.java 这样的东西会是 awesome。有什么可以做到这一点吗?

最佳答案

是的,您可以在 JAXBContext 上使用 generateSchema 方法:

JAXBContext jaxbContext = JAXBContext.newInstance(Customer.class);
SchemaOutputResolver sor = new MySchemaOutputResolver();
jaxbContext.generateSchema(sor);

您利用 SchemaOutputResolver 的实现来控制输出的去向:

public class MySchemaOutputResolver extends SchemaOutputResolver {

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

}

关于java - 是否可以从带有 JAXB 注释的类生成 XSD?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7212064/

相关文章:

java.lang.ClassCastException : org. bson.types.ObjectId 无法转换为 com.mongodb.DBObject

java - JFrame 调整大小以适应可见组件

xml - 如何在 PowerShell 中添加 XML 命名空间作为属性前缀?

xml - xsd :dateTime without timezone and its conversion to Date 的语义

java - 不显示对象标签,仅显示其 JAXB 属性

java - 包括整个包还是只包括特定的类?

java - ifeq/ifne JVM 操作码总是分支

python - Sabre GetReservation wsdl 不包含 PriceQuoteServices 的架构

java - 映射、绑定(bind)和解析之间有什么区别?

java - JAXB 中 double 的几位小数