`
m635674608
  • 浏览: 5027616 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

JAXB vs XStream

    博客分类:
  • java
 
阅读更多

JAXB vs XStream

这两东东本质上是有差别的,JAXB称为OX binding工具,XStream应该算序列化工具,但OX binding工具也会marshallunmarshall,所以包含了序列化这一部分。序列化工具不一定需要提供binding的功能。既然都玩序列化,那就简单地比较一下它们两在序列化方面的强弱吧。

JAXBToplink JAXB 10133,应该是JAXB 1.1标准 (取消了schema的validation功能)

XStream1.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</ns0:age><ns0:salary>20000.0</ns0:salary><ns0:sexy>F</ns0:sexy><ns0:isActive>false</ns0:isActive><ns0:address><ns0:street>Zhaojiabang</ns0:street><ns0:country>China</ns0:country><ns0:city>Shanghai</ns0:city><ns0:doorNum>789</ns0:doorNum><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,拿过来就转
  • 数据量稍小

缺点:

  • 非标准
  • 时间性能差

 http://www.blogjava.net/ldd600/archive/2009/03/04/257832.html

分享到:
评论

相关推荐

    xstream和betwixt对xml、object的互转

    为了方便地将Java对象与XML进行转换,开发者常常使用一些库,如XStream和Betwixt。这两个工具都提供了简单易用的API,帮助我们实现XML到对象(Object-to-XML)和对象到XML(XML-to-Object)的转换。 **XStream** ...

    、jackson、xStream、castor、jibx、jaxb2.docx

    在给定的文档中,提到了几种用于Java对象与XML之间转换的技术,包括Jackson、xStream、castor、Jibx和Jaxb2。以下是对这些技术和Spring MVC整合的详细说明: 1. **Jackson**: Jackson是一个高性能的JSON库,支持...

    XML开发包xstream.zip

    此外,与JAXB相比,XStream的API更简洁,更易于理解和使用。 **应用场景:** 1. 数据持久化:将Java对象保存到XML文件,便于数据备份或跨进程通信。 2. Web服务:在RESTful API中,XML作为数据交换格式。 3. 配置...

    xml操作之xstream

    尽管XStream不能像DOM或JAXB那样对生成的XML结构进行深度定制,但它简化了对象到XML的映射过程,使得代码更加简洁。 下面我们将详细探讨XStream的主要功能和使用方法: 1. **对象到XML转换**: 使用XStream,你...

    o-x-mapping测试

    这种映射机制是许多框架和库的核心功能,如JAXB(Java Architecture for XML Binding)和XStream等,它们简化了Java应用与XML之间的交互。 在"o-x-mapping测试"的场景中,描述中提到的"通过schema生成java对象,...

    xstream-src

    - **与 JAXB**:虽然两者都可以将 Java 对象转换为 XML,但 JAXB 更侧重于基于注解的自动绑定,而 XStream 提供了更多的控制权和灵活性。 深入研究 XStream 的源码,开发者可以学习到如何利用反射、流处理和类型...

    XStream两分钟教程(译)

    XStream支持JAXB注解,可以利用这些注解来自定义序列化和反序列化的逻辑。 总的来说,XStream提供了一个简单而强大的方式来处理Java对象和XML之间的转换。无论是在存储数据、传输数据还是在XML配置文件中保存状态,...

    JavaXml及Bean互转

    本篇将详细介绍两种常用的Java XML与Bean互转方法:XStream库和JAXB(Java Architecture for XML Binding)框架。 一、XStream库 1. **XStream简介**: XStream是一个用于Java的轻量级库,它提供了一种简单的API来...

    如何将java对象转换成xml

    - 使用合适的库,根据项目需求选择JAXB、XStream或其他库。 - 对于大型项目,考虑使用XML Schema(XSD)来定义和验证XML结构。 总之,Java对象到XML的转换是一个重要的技能,理解不同的转换方法和库可以帮助我们...

    java对象转Xml

    虽然具体的代码不可见,但通常会包含创建Java对象、配置和使用JAXB或XStream实例,以及生成XML输出的步骤。 8. **产品标准化.vsd**: 这个文件名可能是一个Visio绘图文件,可能与设计数据结构、类图或者流程图有关...

    dom4j api和jar包

    此外,DOM4J还能与JAXB和XStream等序列化库配合,将Java对象转换为XML或反之,这对于数据交换和持久化非常有用。 总的来说,DOM4J是一个功能丰富的XML处理工具,无论你是新手还是经验丰富的开发者,都可以通过其...

    基于java的开发源码-转换xml.zip

    虽然XStream是一个强大的工具,但Java还有其他处理XML的库,如JAXB(Java Architecture for XML Binding),DOM(Document Object Model),SAX(Simple API for XML),以及StAX(Streaming API for XML)。...

    drools 开发所需要的程序包集合

    6. **JAXB和XStream**:`jaxb`和`xstream`库用于XML数据的序列化和反序列化,这对于规则的导入导出和持久化至关重要。 7. **Guava和Commons**:`guava`和`commons-lang`等库提供了通用的Java工具类,增强代码的功能...

    XML动态转化为ObjectDemo

    6. **其他库**:除了JAXB,Java还有其他库可以实现XML到Object的转换,例如Apache的`XStream`和Google的`Gson`。这些库提供了不同的功能和性能,可以根据项目需求选择。 7. **性能优化**:对于大型XML文件,可以...

    Java转换xml.rar

    此外,它支持JAXB注解,这使得XML映射更加灵活。 总的来说,"Java转换xml.rar"的资源可能包含使用XStream进行Java和XML转换的示例,这对于理解和实践Java中的XML处理非常有帮助。通过学习和掌握这一技术,开发者...

    Java绑定XML架构的技术内涵

    - **特点**:相比于JAXB,XStream更加轻量级,易于使用。 - **应用场景**:适用于小型项目或对性能要求不高的场景。 3. **XMLBeans**: - **定义**:XMLBeans是由Apache提供的一个开源项目,用于实现Java对象与...

    Drools5.3官网手册

    - **DroolsPolicy**:增强任何 JAXB 或 XStream 数据加载器。对于 JAXB,它会添加与 Drools 相关的路径到上下文路径;对于 XStream,则会添加针对 Drools 类的自定义转换器和别名,并负责设置目标 kSession 的 ...

    基于java的转换xml.zip

    在Java中处理XML,我们可以使用多种库和API,如JAXB (Java Architecture for XML Binding),DOM (Document Object Model),SAX (Simple API for XML) 和StAX (Streaming API for XML)。但根据提供的文件名"XStream-...

    java对象与xml的互相转换

    要使用JAXB,你需要定义一个Java类,该类的字段对应于XML元素,然后使用JAXB提供的API将该对象转换为XML。 以下是一个简单的例子: ```java import javax.xml.bind.JAXBContext; import javax.xml.bind.Marshaller;...

    json、javaBean、xml互转的几种工具介绍

    XStream xstream = new XStream(); String xmlString = xstream.toXML(myObj); MyClass anotherObj = (MyClass) xstream.fromXML(xmlString); ``` XStream还支持JSON转换,但默认不是启用的,需要额外配置。 5...

Global site tag (gtag.js) - Google Analytics