在我的Android应用程序中,我需要与期望编组对象的复杂类的网络服务器通信。这些自定义类是从WSDL文件生成的,所以它们已经带有注释。服务器使用JAXB进行编组和取消编组。在Android中使用JAXBContext的好选择?
因此,在客户端,使用JAXB,我想简单的:
JAXBContext jc = JAXBContext.newInstance("schema_definition_path");
Marshaller m = jc.createMarshaller();
Unmarshaller u = jc.createUnmarshaller();
...然后使用的Marshaller和Unmarshaller的情况下工作的序列化/反序列化的自定义对象。因为在移动应用程序中使用重量级的JAXB库并不是一个好主意,所以我正在寻找一种替代方法来完成JAXB为我所做的工作。
我检出了Simple XML Serialization,但似乎没有提供这种功能。我只能给unmarshaller一个类而不是模式定义路径。这样做会导致一个不完整的xml文档,只包含根元素。
任何人都可以指向正确的方向吗?这甚至有可能吗?我应该使用不同的lib - 哪一个?我只是滥用SimpleXML?
据我所知,我看过,Simple XML是唯一一个能够在android上接近JAXB功能的库。我会再试一次。 – 2012-01-18 21:06:45
感谢您的评论。我多玩了一会儿。我可以复制自定义类并用SimpleXML注释替换JAXB。这看起来不是一个好的解决方案,并且需要大量的手动更改,因为对象嵌套得相当深。 从javax. *命名空间复制JAXB所需的类并重新包装它们是否可行? – Bashorings 2012-01-19 07:39:47
所以,真正的问题是,哪个解决方案不太难看;-) – Bashorings 2012-01-19 07:41:37