什么是最好的Java OXM库?

6

虽然我已经是一名开发人员有一段时间了,但我很幸运地避免了大量使用XML的工作。现在我有一个项目需要与一些Web服务交互,并希望使用某种对象到XML映射解决方案。

我知道的唯一解决方案是JAXB。这是最好的选择吗?还有其他推荐吗?

有一个限制 - 我被困在使用Java 1.4,所以无法使用注释做任何事情。

4个回答

10

JAXB是最佳选择:

EclipseLink JAXB (MOXy)是最佳实现:

MOXy是一个带有扩展功能的JAXB实现

MOXy具有外部配置文件(基于带有扩展功能的JAXB注释):

具有基于XPath的映射,用于深度映射:

  • 根据属性值映射到元素
  • 基于XPath的映射地理编码示例
  • 旨在处理ORM映射对象,包括对双向关系的支持:


    6
    如果你在使用WSDL来调用web服务的话,JAXB绝对是最好的选择。看一下wsimport,你可以在10分钟内得以运行。
    我认为在Java 1.4上无法使用JAXB 2.0。你可能需要使用Axis代替:
    java -cp axis-1.4.jar;commons-logging-1.1.jar;commons-discovery-0.2.jar;jaxrpc-1.1.jar;saaj-1.1.jar;wsdl4j-1.4.jar;activation-1.1.jar;mail-1.4.jar org.apache.axis.wsdl.WSDL2Java http://someurl?WSDL
    

    这将生成类似于JAXB的存根。

    如果您没有WSDL或XSD,您可以随时生成一个


    3

    JIBX - 以性能著称

    JAXB2 - 易用性强

    Castor - 易用性强

    其他 - XMLBean,Xstream


    3

    有一个叫做XStream的工具。我好像很久以前用过它,感觉还不错。虽然我没有足够的经验来推荐或反对它,但作为一种替代方案,它值得一试。


    XStream 对于 Java 对象转 XML 很棒。但对于相反的过程不是很理想。假设你有一个 WSDL 或 XSD,JAXB 在后者方面更优秀。 - Chase Seibert
    1
    根据我的经验,XStream一开始总是非常诱人,因为它非常容易上手,但最终它会出现很多错误,导致我最终放弃而选择使用JAXB。 - skaffman

    网页内容由stack overflow 提供, 点击上面的
    可以查看英文原文,
    原文链接