【问题标题】:JAXB and REST - value of XSDs? [closed]JAXB 和 REST - XSD 的价值? [关闭]
【发布时间】:2014-09-17 17:11:29
【问题描述】:

我今天早些时候发现这篇文章是关于 XSD --> POJO 还是 POJO --> 到 XSD。

Java to XSD or XSD to Java

这让我们质疑是否应该在我们的场景中制作 XSD。我们假设我们应该编写 XSD,然后从中生成 Java POJO,然后使用这些 POJO 在我们的 REST 服务器和客户端之间传输数据。但是,如果我们可以直接编写带有所需注释的 POJO,那么这些 XSD 有什么价值呢?

我们认为编写自定义 XSD GUI 工具而不是手动编写 XSD 可能会有所帮助,这可能是拥有 XSD 的好处之一。但我假设还有用于创建 JAXB bean 的 GUI 工具?

是否值得以额外的项目复杂性为代价来拥有 XSD,并且在我们的场景中需要在编译时间之前生成类?

【问题讨论】:

  • 感谢您的意见,我只是希望通过在 XSD 中定义我们的数据传输对象并浪费我们的时间和精力来确保我们不会走上错误的道路。我对这两个答案都投了赞成票,但我想在不知道项目的确切细节的情况下,这个问题确实没有正确的答案。

标签: java xml rest jaxb xsd


【解决方案1】:

与一组带有 JAXB 注释的类相比,XML 方案的一个好处是您可以定义“外部”通信伙伴。也许你现在不需要它,但明天呢?

使用 XML Schema 的另一个很好的理由是(如果使用得当)将您的类型限制为易于(未)编组的内容。可以创建难以序列化的 POJO 类。

iÍ 能想到的第三个原因是您不必学习如何处理所有这些 javax.xml.annotation 注释类。 可能是您对它们更熟悉(它们甚至可能允许您在 XML Schema 方法上做一两个技巧),但我通常发现编写 XML Schema 更方便并观看 xjc 为我处理细节。

【讨论】:

    【解决方案2】:

    这取决于您的要求。在某些情况下,需求(可能是请求/响应)是通过 XSD 文档定义的,因为 xsd 可以提供我们构建类所需的所有信息(数据类型等),在这些情况下,直接生成 POJO 很有帮助,因为我们已经有一个 xsd。

    如果您必须先编写一个 xsd 然后从中生成一个 POJO 对象,这可能是您的情况的开销。

    看什么适合你,明智选择!

    【讨论】:

      猜你喜欢
      • 2012-06-06
      • 2011-05-28
      • 1970-01-01
      • 1970-01-01
      • 2011-06-11
      • 1970-01-01
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多