【问题标题】:Is it possible to use both JAXB and Simple XML?是否可以同时使用 JAXB 和 Simple XML?
【发布时间】:2011-07-14 18:56:22
【问题描述】:

我正在为 Android 编写一个 API 客户端库,并且我使用 Simple XML 来反序列化对象,因为 JAXB 似乎不适用于 Android。

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

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

【问题讨论】:

    标签: android xml jaxb xml-serialization simple-framework


    【解决方案1】:

    我认为可能的唯一解决方案是同时使用两种注释类型。您可以使用 JAXB 和 SimpleXML 注释标记每个成员字段。当然,您需要一些胶水才能使其正常工作并使编译器不会抱怨不存在的注释。为了摆脱这种情况,您可以编写自己的注释库,在每种情况下实现缺失的注释(Android 上的 JAXB 注释和其他项目上的 SimpleXML)做预期的事情(什么都不做)。

    【讨论】:

    • 非常感谢您的建议!我将创建两个独立的库,一个带有假 JAXB 注释,一个带有假 SimpleXML 注释。如果我可以将它们组合到同一个库中会更好,但我不知道如何使用无法修改源的接口来执行工厂模式(我不想更改 XML 框架库)。考虑过动态加载类,但 Java 和 Android 之间的类加载似乎有所不同,我不确定该策略是否适用于注释。再次感谢!
    • @marchica:你有没有“用假注释制作两个独立的库”工作?据我所知,在 Android 上,外部库不可能在 java.* 和 javax.* 命名空间中实现最常见的库(有关详细信息,请参阅code.google.com/p/android/issues/detail?id=13084)。如果您可以让这两个库一起工作,您能否在此处发布答案,以便我们都能受益?
    猜你喜欢
    • 1970-01-01
    • 2013-04-07
    • 2011-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-20
    相关资源
    最近更新 更多