使用哪种JAXB实现?

使用哪种JAXB实现?,jaxb,apache-camel,moxy,Jaxb,Apache Camel,Moxy,我一直在使用Oracle JDK 1.7附带的默认Sun JAXB实现。 不幸的是,我有一些非常复杂的XSD模式需要处理,而且我在XSD到Java引擎中发现了一个bug(如中所述) 似乎只有一种变通方法是可能的,更糟糕的是,我还没有能够在我的个案中应用特定的变通方法。然而,更令人不安的是,在我看来,这是一种非常基本的情况(一个XSD模式引用另一个XSD模式中定义的元素),需要一种变通方法 我知道至少还有两种其他JAXB实现: 有谁能洞察到它们之间以及与Sun的JAXB之间的对比情况吗?注

我一直在使用Oracle JDK 1.7附带的默认Sun JAXB实现。 不幸的是,我有一些非常复杂的XSD模式需要处理,而且我在XSD到Java引擎中发现了一个bug(如中所述)

似乎只有一种变通方法是可能的,更糟糕的是,我还没有能够在我的个案中应用特定的变通方法。然而,更令人不安的是,在我看来,这是一种非常基本的情况(一个XSD模式引用另一个XSD模式中定义的元素),需要一种变通方法

我知道至少还有两种其他JAXB实现:


有谁能洞察到它们之间以及与Sun的JAXB之间的对比情况吗?

注意:我是专家组的负责人和成员

  • apachecamel-我相信apachecamel只是利用了JAXB,而不是JAXB (JSR-222)实现本身
  • 日食MOXy有很多很好的理由切换到MOXy(、e等)。但是MOXy使用JAXB参考实现中的XMLSchema-to-Java编译器(XJC)工具,所以它不会修复这个用例

正确的Apache Camel只使用JAXB API,例如javax.xml.bind.annotation。JDK的默认设置通常是错误的。您可以下载并使用较新版本的JAXB,例如JAR位于maven central中。