将XML文件解组为Android中的Java对象?

Jer*_*gan 22 java xml android xsd

我正在使用互联网上的一个API,它将对象编组到XML文件中.鉴于XSD文件也可用,我希望能够在我下载文件后将它们解组回Java对象.

在环顾四周之后,看起来JAXB是用Java完成此操作的默认库,但在我开发移动应用程序时,额外的8.6MB依赖性是不可接受的.我也发现了XStream,但它仍然重达7.9MB.

在Android SDK中,看起来唯一可用的真正XML解析器是SAX.

所以这就是问题:

  1. 有没有办法让SAX做我想做的事情?
  2. 我错过了Android SDK中的其他工具吗?
  3. 是否会有另一个图书馆(显着更小)?

谢谢.

ng.*_*ng. 19

有一个适用于Android的框架,它使用与JAXB类似的方式使用注释进行Java到XML的绑定,它被称为Simple,重量不到270K,这是XStream或JAXB所需的一小部分.此外,它没有外部依赖,只有一个JAR,一切都应该工作.下面是Simple的简单链接和Java的XML序列化框架.

http://simple.sourceforge.net

这也可以处理对象图中的循环.

  • 我刚刚写了一篇关于在Android项目中包含简单内容的综合博客文章:http://robertmassaioli.wordpress.com/2011/04/21/simple-xml-in-android-1-5-and-up/ (5认同)
  • 这个库看起来不错,我将使用我的Android应用程序测试它,但是,有一个工具可以将XSD中的java类构建为这种格式吗? (4认同)

小智 5

XStream是431k.您不需要Android应用程序中的整个分发zip.如果你添加xpp3 pull解析器以获得更快的性能,那么它将增加24k.这将使你的整个包裹达到455k.仍然不理想,但我可以忍受.


Rob*_*b H 2

有很多工具可以在 Java 和 XML 之间转换对象,但我所熟悉的工具都不比您找到的工具小。然而,根据对象图的复杂性,SAX 可能就是您所需要的,而且它的开销很小。诀窍是在 SAX 事件处理程序中自己构建对象图。在 XML 封送拆收器如此广泛使用之前,我已经在几个项目中使用了这种技术,虽然需要做更多的工作,但它很有效。