【问题标题】:JAXB 2 annotation and XSDJAXB 2 注释和 XSD
【发布时间】:2011-05-28 11:23:13
【问题描述】:

在 JAXB 1.0 时代,推荐使用 java 对象、XSD 和 XML 的方式是从 XSD 定义开始,使用 JAXB 从 XSD 生成 java 类并维护 XSD。

但是现在有了 JAXB 2.0 注释,从 java 类生成 XSD 非常方便。是否建议采取从java类和注解入手,生成XSD的方式?

谢谢,

【问题讨论】:

    标签: xml annotations xsd jaxb


    【解决方案1】:

    我建议开发人员从对象模型开始并对其进行注释以获得所需的 XML。这为您在创建应用程序时提供了更大的灵活性(例如还使用 JPA 将 映射到数据库)。当您想要共享结构(例如作为 WSDL 的一部分)时,您只需要生成 XML 模式。

    查看我的博客以获取从模型类开始的 JAXB 示例:

    【讨论】:

    • 对,就我而言,我确实需要与 Web 服务的消费者共享 XSD,因为消费者可以使用任何语言来使用来自我们 Web 服务的 XML 消息。共享数据结构的唯一方法是通过 XSD。
    【解决方案2】:

    我不会这么说,不。 XML Schema 在类型和某些结构方面要丰富得多,因此您从 Java 生成的任何模式都将非常基本且缺乏表现力。

    无论如何,从您的代码中生成一个起始模式,但是您应该真正修饰结果并将其维护为一等公民,而不是生成的产品。充实后,您可以将其重新插入 JAXB 编组器/解组器作为验证层。

    【讨论】:

    • 对,我知道 JAXB 注释只支持所有 XSD 语法和语义的一个子集。但由于我是从代码和类结构开始,生成 XSD 以与服务消费者共享似乎很适合目前。如果我们从模式开始,并且模式比 JAXB 可以支持的类注释更具表现力,那么生成的类将无法利用更丰富的语义集。
    猜你喜欢
    • 1970-01-01
    • 2011-06-20
    • 1970-01-01
    • 1970-01-01
    • 2022-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多