/** 这里应用了JAVA的Marshall方法
* 对象转xml
* 返回xml
* @param tXLife
* @return
*/
public static String tXLiftToXML(com.TXLife tXLife){
String xml=""
try {
ByteArrayOutputStream out = new ByteArrayOutputStream()
JAXBContext jc = JAXBContext
.newInstance("com") //包的命名空间
Marshaller m = null
synchronized (jc) {
m = jc.createMarshaller()
}
m.setProperty(Marshaller.JAXB_ENCODING, "GBK")
m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE)
m.marshal(tXLife, out)
xml=out.toString() //赋值
} catch (Exception e) {
xml=null
}
return xml
}
序列化,指将对象转换为字节序列的过程。用途:
当你想把内存中的对象状态保存到一个文件中或者数据库中时候。
在webservice里面我用到过,将java
object和field塞到xml里面去。。。其他的不清楚
这项技术主要应用于RMI(对象作为参数远程传递及返回)和JavaBeans中。Java中还提供了XMLEncoder和XMDecoder类来将JavaBeans对象序列化到XML文件,但是此种方法有诸多不便对Java类有很多限制(要满足get/set方法等等,否则可能丢失该属性值)。一个很强大的开源工具XStream,也能够将对象保存到一个XML文件,并能从中恢复而且没有那么多限制。将XML作为一种进行对象传递的公共数据格式实现跨平台的进程通信。序列化和反序列化机制的强大在于能够自动处理序列化对象之间的复杂关系(对象之间的相互引用,形成了复杂的对象网,因此要保证这种关系准确无误的存储起来。)。通过反序列化获取对象的方式可以达到深度克隆对象一样的效果,当然在性能上肯定有较大损失。