基本介紹
- 中文名:Xstream
- 性質:Java類庫
- 目的:處理XML檔案序列化
- 領域:計算機
簡介,XStream庫,對象圖的序列化,
簡介
Xstream 使用最新的圖形卡技術來大幅度提升計算速度,速度甚至可以和MPI分散式計算相媲美。
另外,Xstream是一種OXMapping 技術,是用來處理XML檔案序列化的框架在將javaBean序列化,或將XML檔案反序列化的時候,不需要其它輔助類和映射檔案,使得XML序列化不再繁瑣。
XStream庫
XStream在運行時使用Java反射機制對要進行序列化的對象樹的結構進行探索,並不需要對對象作出修改。XStream可以序列化內部欄位,包括私private和final欄位,並且支持非公開類以及內部類。
在預設情況下,XStream不需要配置映射關係,對象和欄位將映射為同名XML元素。但是當對象和欄位名與XML中的元素名不同時,XStream支持指定別名。XStream支持以方法調用的方式,或是Java 標註的方式指定別名。
XStream在進行數據類型轉換時,使用系統預設的類型轉換器。同時,也支持用戶自定義的類型轉換器。
對象圖的序列化
當序列化一個對象時,XStream將序列化整個對象圖。如果在對象圖中遇到重複引用,在生成的XML中將保留這些引用。以下面的CD類為例:
package com.thoughtworks.xstream;public class Cd { private String id; private Cd bonusCd; Cd(String id, Cd bonusCd) { this.id = id; this.bonusCd = bonusCd; } Cd(String id) { this.id = id; } public String getId() { return id; } public Cd getBonusCd() { return bonusCd; }}
並且向列表添加一些Cd對象:
Cd bj = new Cd("basement_jaxx_singles");Cd mr = new Cd("maria rita"); List order = new ArrayList(); order.add(mr);// 兩次添加同一個CD(兩個引用指向同一個對象) order.add(bj);order.add(bj);// 添加自己 (循環) order.add(order); XStream xstream = new XStream(); xstream.alias("cd", Cd.class); System.out.println(xstream.toXML(order));
如果在XStream的預設的相對引用模式下執行以上程式,程式將生成下面的XML:
<list> <cd> <id>maria rita</id> </cd> <cd> <id>basement_jaxx_singles</id> </cd> <cd reference="../cd[2]"/> <list reference=".."/></list>