Java XML Binding [已关闭]

2022-09-02 09:29:17

您使用什么将 XML 绑定到 Java?JAXB、Castor 和 XMLBeans 是一些可用的选择。我看到的比较都是三四年前的。我对其他建议持开放态度。编组/解编组性能和易用性特别令人感兴趣。

澄清:我不仅想看看你使用什么框架,还想看看你使用一个框架的理由。


答案 1

如果你想做出明智的决定,你需要清楚为什么要在XML和java对象之间进行转换。原因是这个领域的不同技术试图解决不同的问题。不同的工具分为两类:

  1. XML 数据绑定 - 指将 XML 文档中的信息表示为计算机内存中的对象的过程。通常,这意味着定义 XSD 并生成等效的 Java 源代码。不同语言之间的互操作是重中之重(因此使用 XSD) - 通常用于实现基于 SOAP 的 Web 服务。
  2. XML 序列化 - 指将内存中对象的图形写出到流中,以便可以在某个位置或某个时间重新构建它。你手工编写java类;xml 表示是次要的。此外,对性能的需求通常更大,并且与其他语言(如 .net)的互操作需求通常较低。

对于 xml 序列化,Xstream 很难被击败。JAXB 是 XML 绑定的标准。

在任何一种情况下,如果您使用的是 J2EE,那么您需要特别注意从 JPA 检索的类,因为类代理和特定于持久性的集合类型可能会混淆绑定/序列化工具。


答案 2

吉布克斯。以前我使用Castor XML,但JiBX被证明明显更好,特别是在性能方面(从Castor XML到JiBX的一些应用程序代码的直接移植使其速度提高了9倍)。我还发现JiBX的映射格式比Castor的更优雅。

JiBX通过使用编译后字节码操作而不是Castor采用的反射方法来实现其性能。这样做的好处是,它对编写映射类的方式提出了较少的要求。不需要 getter、setter 和 no-arg 构造函数来满足工具。大多数情况下,您可以在不考虑映射问题的情况下编写类,然后无需修改即可映射它。


推荐