1

在用于 XML 编组/解组的 Java 中,可以使用 JAXB、JIBX、CASTOR、ADB 等。但是在这些中,哪一个是最通用和最常用的?或者还有其他可用的实用程序吗?

4

4 回答 4

5

标准是 JAXB ( JSR 222 ),这个名字的著名项目是参考实现。与 JAXB 1.0 不同,JAXB 2.0 RI 相当不错,而且我用过很多次。其他库实现了 JAXB 标准(我认为是 Castor 和 JiBX,但我没有使用它们的经验)。

我也使用过XStream,它非常简单——不过它有一个专有的 API。

我不知道除了https://bindmark.dev.java.net/old-index.html之外的任何基准- 请注意它是一个 4 岁的基准。也许您可以采用它的想法或它可能拥有的任何可用代码并自己运行一些测试。

于 2009-11-23T06:22:30.193 回答
1

我个人使用XMLBeans。我比 JAXB 更喜欢它(我偏向于 Sun 的东西,因为它们应该更“标准”)。我不能说它的常用部分。

于 2009-11-23T06:05:44.003 回答
1

由于以下原因,首选 JAXB:

  1. 如果您使用 JDK1.6 或更高版本,则不需要额外的 jaxb 库,因为 JAXB 捆绑在 JDK 1.6 中。
  2. jaxbMarshaller.unmarshal()包含许多重载方法,找到适合您的方法。
  3. JAXB 很容易理解和操作。它需要的是几个注释,比如@XmlRootElement四行@XmlAccessorType代码
  4. 与 DOM 和 SAX 等其他 XML 解析器相比,使用 JAXB 在 Java 中修改 XML 文件要容易得多,因为您只处理 POJO
  5. JAXB 比 DOM 或 SAX 解析器更节省内存。
  6. JAXB 不需要 XML 模式即可工作。虽然您可以使用 XML Schema 来生成相应的 Java 类,如果您有大型和复杂的 XML Schema,它会非常有用,这将导致大量的类,但是为了简单的使用,您可以使用 JAXB 包提供的相关 XML 注释来注释您的对象,即java.xml.binding你很高兴。
于 2013-07-01T10:40:26.630 回答
-1

我使用 CASTOR 映射,恕我直言,只要您熟悉 XML,它就很容易使用。您需要做的就是创建 Java 对象并使用映射文件将它们映射到 XMl。如果您的 XML 很复杂,则需要映射文件。如果它是一个简单直接的 XML,CASTOR 将自己寻找与 XML 元素名称匹配的相应 Java 类 [Castor 使用 Java 的反射 API 来执行此操作]。

于 2013-07-03T10:30:44.217 回答