2013-05-30 79 views
1

我一直在使用Oracle JDK 1.7附帶的默認Sun JAXB實現。 不幸的是,我有一些相當複雜的XSD模式可以使用,並且我碰到了XSD中的Java引擎中的錯誤(描述在this SO post)。哪個JAXB實現使用?

似乎只有一個解決方法是可能的,更糟糕​​的是我還沒有能夠在我個人的情況下應用特定的解決方法。然而更令人不安的是,對於我認爲是非常基本的情況(一個XSD模式引用另一個定義的元素),應該需要一個解決方法。

我知道至少兩個其他JAXB實現:

有沒有人有任何見解如何將這些進行相互比較和對Sun的JAXB?

回答

2

注:我是EclipseLink JAXB (MOXy)的領導者和JAXB (JSR-222)專家組的成員。

  • Apache的駱駝 - 我相信Apache的駱駝只是利用JAXB,而不是一個JAXB (JSR-222)實現本身。
  • EclipseLink MOXy - 有很多很好的理由切換到MOXY(XPath based mapping,電子xternal mapping metadata,JSON-binding等)。但是MOXy使用JAXB參考實現中的XML Schema to Java Compiler(XJC)工具,所以它不會修復這個用例。
+1

正確的Apache Camel只使用JAXB API,例如javax.xml.bind.annotation批註。 JDK的默認設置通常是錯誤的。您可以下載並使用更新版本的JAXB,例如JAR位於maven central。 –