7

我知道,使用 JAXB,您可以从 XSD 生成 Java 文件,还可以从带注释的 POJO 生成 XSD。各自的优点和缺点是什么?一个整体比另一个好吗?

我们基本上想将事件序列化为 XML 格式的日志。

4

4 回答 4

6

最终,这取决于您要关注的地方:

如果 XML 模式是最重要的事情

那么最好从 XML 模式开始,生成一个 JAXB 模型。JAXB (JSR-222) 实现无法生成 XML 模式的详细信息:

  • 一个 maxOccurs 不是 0、1 或无界的
  • 一个简单类型的许多方面
  • 模型组

如果对象模型是最重要的

如果您将使用 Java 模型不仅仅是在对象和 XML 之间进行转换(即使用 JPA 来实现持久性),那么我建议您从 Java 对象开始。这将为您提供最大的控制权。

于 2012-10-17T21:03:04.913 回答
1

这取决于您对启动点的要求和场景。

鉴于您的要求,请使用generate Java files from an XSD您想首先定义 Java 应该支持的输出(XML)格式。,

于 2012-10-17T20:42:57.367 回答
1

鉴于 XML 的要点之一是成为一种可移植的数据传输格式,无论平台或语言如何都可以使用,根据经验,我会避免从任何特定的编程语言生成 XSD。如果您知道您只是在 Java 端点之间进行通信,这可能并不重要(但您确定这将永远是真的吗?)。

在其他条件相同的情况下,最好以编程语言中立的方式定义接口/模式。

这个一般原则有很多例外,特别是如果您正在与现有或遗留代码集成......

于 2012-10-17T20:56:08.520 回答
1

如果您有机会同时设计 pojo 和模式,这是设计问题 - 您是为“完美”模式设计还是为“完美”java 类设计。

在某些情况下,您没有选择余地,在系统集成场景中,您可能会从需要适应的另一个系统中获得预定义的 XSD,那么 XSD -> Class 将是唯一的方法。

于 2012-10-17T20:58:15.930 回答