2011-07-14 49 views
3

我正在为Android编写一个API客户端库,并且我已经使用Simple XML反序列化这些对象,因为它看起来像JAXB在Android上不起作用。是否可以同时使用JAXB和简单XML?

API项目中的类具有JAXB的XML注释。我将这些类复制到了我的Android库中,但是更改了Simple XML的XML注释。很显然,这会导致同步更改的问题。

有没有办法让两者兼容,以便相同的代码可以与JAXB和Simple XML一起使用?

回答

1

我看到的唯一解决方案是同时使用两种注释类型。您可以使用JAXB和SimpleXML注释标记每个成员字段。当然,你需要一些粘合剂才能使它工作,并且让编译器不会抱怨不存在的注释。为了摆脱这种情况,您可以编写自己的注释库,在每种情况下执行缺少的注释(Android上的JAXB注释和其他项目上的SimpleXML),执行期望的操作(无)。

+0

非常感谢您的建议!我将制作两个独立的库,一个带有假的JAXB注释,另一个带有伪造的SimpleXML注释。如果我可以将它们组合到同一个库中会更好,但是我无法弄清楚如何使用接口的源代码无法修改的工厂模式(我不想更改XML框架库)。关于动态加载类的想法,但类加载似乎在Java和Android之间有所不同,我不确定该策略是否适用于注释。再次感谢! – marchica

+2

@marchica:你有没有使用两个独立的假注释库工作?就我所知,在Android上,外部库不可能在java。*和javax。*命名空间中实现大多数通用库(请参阅http://code.google.com/p/android/issues/detail ?id = 13084了解详情)。 如果您可以同时使用这两个库,那么您可以在此发布答案,以便我们都可以受益吗? – alokoko

相关问题