原先以为XStream不支持attribute。最近发现v1.3以后是支持的,使用annotation来定义,而且因为一直在用XStream,就不改成jaxb2.1了。
看见网上介绍得不多,贴一下源码,以供参考。
javabean的attribute使用@XStreamAsAttribute来定义,
同时需要调用 XStream.processAnnotations(YourClass.class);
XML文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<!-- 接口定义-->
<interfaceDefine>
<osUDPairCollectReq>
<version>1.0.0</version>
<providerSID>00600001</providerSID>
<providerEID>0005</providerEID>
<providerECID>0005.01</providerECID>
<providerIFName>osUDPairCollect</providerIFName>
<callingType>01</callingType>
</osUDPairCollectReq>
<!—测试使用attribute -->
<deviceCaps>
<services>
<service name="BMS">
<items>
<item id="160" yes="YES" no="NO" />
</items>
</service>
</services>
</deviceCaps>
</interfaceDefine>
JavaBean如下:
import com.thoughtworks.xstream.XStream;
import com.thoughtworks.xstream.annotations.XStreamAlias;
import com.thoughtworks.xstream.annotations.XStreamAsAttribute;
@XStreamAlias("interfaceDefine")
public class InterfaceDefine {
/**
*测试的子类
*/
public static class OsRequestHeader {
public String version, providerSID, providerEID, providerECID,
providerIFName, callingType;
}
public static class DeviceCaps {
public Service[] services;
@XStreamAlias("service")
public static class Service {
@XStreamAsAttribute
public String name;
public Set<Item> items;
}
@XStreamAlias("item")
public static class Item {
@XStreamAsAttribute
public Integer id;
@XStreamAsAttribute
public String yes = "YES";
@XStreamAsAttribute
public String no = "NO";
}
}
/**
* 操作接口
*/
public OsRequestHeader osUDPairCollectReq;
public DeviceCaps deviceCaps;
/*
* 将对象转换成XML的实现
*/
@Override
public String toString() {
XStream xs = new XStream();
xs.processAnnotations(InterfaceDefine.class);
return xs.toXML(this);
}
}
分享到:
相关推荐
Xstream是一种对象XML映射(Object/XML Mapping)技术,主要用于处理XML文件序列化的工作。通过Xstream可以轻松地将Java对象序列化为XML文档,或者将XML文档反序列化为Java对象。与传统的XML序列化方式相比,Xstream...
在提供的压缩包文件中,可能包含了使用 XStream 进行序列化和反序列化的示例代码,你可以通过运行这些代码更深入地了解其工作原理和使用方式。学习并理解 XStream 的用法,可以帮助你在 Java 开发中更加高效地处理 ...
同时,它也可以在配置文件或者持久化存储中使用XML格式来保存和恢复对象状态。 至于提供的`XstreamTest`文件,这可能是一个包含测试代码的文件,用于演示Xstream的使用。通常,这样的测试会创建一个或多个Java对象...
3. **高性能**:相对于其他序列化工具,XStream 在处理速度和内存占用方面表现出色。 4. **XML 结构清晰**:生成的 XML 输出简洁且易于阅读。 5. **类型适应性强**:序列化的对象可以包含任意复杂的数据结构,包括类...
在这篇文章中,我们将深入探讨如何利用Xstream的注解来处理XML。 首先,要使用Xstream,我们需要在项目中引入其依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>...
本教程资料将带你深入理解和掌握XStream的核心功能和使用技巧。 一、XStream简介 XStream由Johannes Link创建,它通过简单的API提供了高效的序列化和反序列化功能。XStream的亮点在于其自动映射Java对象到XML的能力...
**XStream Java下的使用** ...总之,XStream为Android开发者提供了一种方便的方式来处理XML数据,无论是在本地存储还是网络通信中。理解并熟练使用它的核心功能和扩展选项,将有助于提高代码的可读性和可维护性。
在Java开发中,数据的序列化与反序列化是一个常见的需求,这有助于在持久化存储、网络传输等场景中方便地处理对象。XStream库提供了一个优雅的方式来将Java对象转换为XML,反之亦然,使得处理XML数据变得更加简单。...
XStream开发时使用的包,官网原句:XStream is a simple library to serialize objects to XML and back again. 要使对象转化成xml,使用: XStream xstream = new XStream(); String str = xtream.toXML(Object); ...
在这个场景中,我们将深入探讨如何使用XStream处理对象的序列化和反序列化。 首先,让我们了解什么是XStream。XStream是由Joe Walnes创建的一个开源项目,它提供了一种简单的方式来将Java对象转换为XML,反之亦然。...
本篇将详细讲解XML的解析方式及其在Java中的应用,特别是如何使用XStream库进行JavaBean与XML之间的互转。 1. **XML解析方式** - DOM解析:Document Object Model,它一次性加载整个XML文档到内存,形成一棵树形...
在本文中,我们将深入探讨XStream的使用方法,包括它的核心概念、配置、安全性和性能优化。 **1. 序列化到XML** XStream的核心功能是能够将Java对象转换成XML。首先,我们需要导入XStream库,并创建一个XStream...
本文将深入探讨XStream的使用以及其依赖包xpp3_min-1.1.4c.jar和xstream-1.3.1.jar的相关知识点。 首先,我们来了解核心组件xstream-1.3.1.jar。XStream的核心功能是提供了一种直观的方式来将Java对象转换为XML,并...
XStream-1.4.2可能是一个稳定且广泛使用的版本,对于那些需要处理XML与Java对象之间转换的项目来说,它是一个可靠的选择。 标签"xstream.jar"明确了这是一个Java档案(JAR)文件,通常包含Java类、资源和其他相关...
赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。
在这个场景中,"使用XStream多集合生成xml"是一个关键的技术点,它涉及到如何将多个集合类的对象转换成XML文档。以下是对这一主题的详细说明。 首先,我们需要了解XStream的基本用法。XStream的核心是`XStream`类,...
7. **安全注意事项**:在Android中使用XStream时,要注意避免XSS(跨站脚本攻击)和XXE(XML外部实体注入攻击)。可以使用`xstream.allowTypesByWildcard()`或`xstream.addPermission()`来限制可序列化的类型。 8. ...
XStream的特点和优点使其非常适合在Java项目中使用,例如可以将Java对象序列化为XML文件,以便于数据的存储和传输;也可以将XML文件转换回Java对象,以便于数据的处理和分析。 XStream是一个非常实用的Java库,能够...
在IT行业中,XML(eXtensible Markup Language)是一种被广泛使用的数据交换格式,尤其在Web服务和数据存储中。当需要将数据转换为XML格式以便于传输或处理时,工具如xStream就显得尤为重要。Java中的xStream库提供...
在标题中提到的"Xstream相关的jar包",是指为了使用XStream库,需要引入的依赖文件。在描述中列出的三个jar包分别是: 1. **xstream-1.4.9.jar**:这是XStream的核心库,包含了所有必要的类和方法来实现对象到XML的...