程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> 關於JAVA >> JAXB vs XStream

JAXB vs XStream

編輯:關於JAVA

這兩東東本質上是有差別的,JAXB稱為OX binding工具,XStream應該算序列化工具,但 OX binding工具也會marshall和unmarshall,所以包含了序列化這一部分。序列化工具不一 定需要提供binding的功能。既然都玩序列化,那就簡單地比較一下它們兩在序列化方面的強 弱吧。

JAXB:Toplink JAXB 10133,應該是JAXB 1.1標准 (取消了schema的validation功能)

XStream:1.3.1

數據長度:

類型 長度 內容 XStraem 351 <com.oocl.frm.ws.sample.Employee>

 <name>Liufei</name>

 <age>40</age>

 <address>

    <street>Zhaojiabang</street>

    <country>China</country>

    <city>Shanghai</city>

    <doorNum>789</doorNum>

    <empName>Afka liu</empName>

 </address>

 <salary>20000.0</salary>

 <isActive>false</isActive>

 <sexy>F</sexy>

</com.oocl.frm.ws.sample.Employee> Toplink JAXB 589(已經去掉了white space) <?xml version="1.0" encoding="UTF-8"?>

<ns0:employee xsi:schemaLocation="http://www.oocl.com/frm/ws/jaxb" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns0="http://www.oocl.com/frm/ws/jaxb" xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance"><ns0:name>Liufei</ns0:name><ns0:age>40</ns 0:age><ns0:salary>20000.0</ns0:salary><ns0:sexy>F</ns0:se xy><ns0:isActive>false</ns0:isActive><ns0:address><ns0:st reet>Zhaojiabang</ns0:street><ns0:country>China</ns0:country> ;<ns0:city>Shanghai</ns0:city><ns0:doorNum>789</ns0:doorNum& gt;<ns0:empName>Afka liu</ns0:empName></ns0:address></ns0:employee>

時間:序列化和反序列化1000000次。

類型 序列化(ms) 反序列化(ms) XStraem 90148 135878 Toplink JAXB 34872 56557

結果對比:數據量XStream占優勢,時間性能上Toplink Jaxb占明顯優勢

總結(只從序列化功能角度看)

JAXB: 優點

J2EE標准

運行時間比XStream少

缺點

用起來不方便:需要把手動的把business object轉換成schema object,當然也可以直接 將schema object作為business object,或者采用反射的方法。

有一定的局限性:需要schema或者annotation

數據量稍大

XStream優點:

用起來方便

不需要schema,拿過來就轉

數據量稍小

缺點:

非標准

時間性能差

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved