我知道,使用 JAXB,您可以从 XSD 生成 Java 文件,还可以从带注释的 POJO 生成 XSD。各自的优点和缺点是什么?一个整体比另一个好吗?
我们基本上想将事件序列化为 XML 格式的日志。
我知道,使用 JAXB,您可以从 XSD 生成 Java 文件,还可以从带注释的 POJO 生成 XSD。各自的优点和缺点是什么?一个整体比另一个好吗?
我们基本上想将事件序列化为 XML 格式的日志。
最终,这取决于您要关注的地方:
如果 XML 模式是最重要的事情
那么最好从 XML 模式开始,生成一个 JAXB 模型。JAXB (JSR-222) 实现无法生成 XML 模式的详细信息:
如果对象模型是最重要的
如果您将使用 Java 模型不仅仅是在对象和 XML 之间进行转换(即使用 JPA 来实现持久性),那么我建议您从 Java 对象开始。这将为您提供最大的控制权。
这取决于您对启动点的要求和场景。
鉴于您的要求,请使用generate Java files from an XSD
您想首先定义 Java 应该支持的输出(XML)格式。,
鉴于 XML 的要点之一是成为一种可移植的数据传输格式,无论平台或语言如何都可以使用,根据经验,我会避免从任何特定的编程语言生成 XSD。如果您知道您只是在 Java 端点之间进行通信,这可能并不重要(但您确定这将永远是真的吗?)。
在其他条件相同的情况下,最好以编程语言中立的方式定义接口/模式。
这个一般原则有很多例外,特别是如果您正在与现有或遗留代码集成......
如果您有机会同时设计 pojo 和模式,这是设计问题 - 您是为“完美”模式设计还是为“完美”java 类设计。
在某些情况下,您没有选择余地,在系统集成场景中,您可能会从需要适应的另一个系统中获得预定义的 XSD,那么 XSD -> Class 将是唯一的方法。