在我的Android应用程序中,我需要与一个期望编组复杂类对象的Web服务器交谈。这些自定义类是从WSDL文件生成的,因此它们已经带有注释。服务器使用JAXB进行编组和解组。
所以,在客户端,使用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?
答案 0 :(得分:0)
由于我找不到更好的方法(请参阅对原始问题的评论),我决定使用Android中包含的XML Pull API实现手动转换对象。
以下是有关如何使用它的简短教程:http://www.ibm.com/developerworks/opensource/library/x-android/
我不是说这是一个好方法,但这是我能想到的唯一可行的方法,而且我不需要触及原来的课程。