`
csbison
  • 浏览: 154778 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

XStream中使用annotation处理attribute

XML 
阅读更多

原先以为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使用说明

    Xstream是一种对象XML映射(Object/XML Mapping)技术,主要用于处理XML文件序列化的工作。通过Xstream可以轻松地将Java对象序列化为XML文档,或者将XML文档反序列化为Java对象。与传统的XML序列化方式相比,Xstream...

    xstream使用案例

    在提供的压缩包文件中,可能包含了使用 XStream 进行序列化和反序列化的示例代码,你可以通过运行这些代码更深入地了解其工作原理和使用方式。学习并理解 XStream 的用法,可以帮助你在 Java 开发中更加高效地处理 ...

    xstream使用小记

    同时,它也可以在配置文件或者持久化存储中使用XML格式来保存和恢复对象状态。 至于提供的`XstreamTest`文件,这可能是一个包含测试代码的文件,用于演示Xstream的使用。通常,这样的测试会创建一个或多个Java对象...

    XStream使用文档 wd.docx

    3. **高性能**:相对于其他序列化工具,XStream 在处理速度和内存占用方面表现出色。 4. **XML 结构清晰**:生成的 XML 输出简洁且易于阅读。 5. **类型适应性强**:序列化的对象可以包含任意复杂的数据结构,包括类...

    java 利用Xstream注解生成和解析xml

    在这篇文章中,我们将深入探讨如何利用Xstream的注解来处理XML。 首先,要使用Xstream,我们需要在项目中引入其依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml &lt;groupId&gt;...

    xstream教程资料.rar

    本教程资料将带你深入理解和掌握XStream的核心功能和使用技巧。 一、XStream简介 XStream由Johannes Link创建,它通过简单的API提供了高效的序列化和反序列化功能。XStream的亮点在于其自动映射Java对象到XML的能力...

    XStream Java下的使用

    **XStream Java下的使用** ...总之,XStream为Android开发者提供了一种方便的方式来处理XML数据,无论是在本地存储还是网络通信中。理解并熟练使用它的核心功能和扩展选项,将有助于提高代码的可读性和可维护性。

    使用XStream操作xml教程

    在Java开发中,数据的序列化与反序列化是一个常见的需求,这有助于在持久化存储、网络传输等场景中方便地处理对象。XStream库提供了一个优雅的方式来将Java对象转换为XML,反之亦然,使得处理XML数据变得更加简单。...

    XStream开发使用的包

    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。XStream是由Joe Walnes创建的一个开源项目,它提供了一种简单的方式来将Java对象转换为XML,反之亦然。...

    xml解析及使用XStream实现javaBean与xml之间的转换

    本篇将详细讲解XML的解析方式及其在Java中的应用,特别是如何使用XStream库进行JavaBean与XML之间的互转。 1. **XML解析方式** - DOM解析:Document Object Model,它一次性加载整个XML文档到内存,形成一棵树形...

    XStream使用例子

    在本文中,我们将深入探讨XStream的使用方法,包括它的核心概念、配置、安全性和性能优化。 **1. 序列化到XML** XStream的核心功能是能够将Java对象转换成XML。首先,我们需要导入XStream库,并创建一个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.jar

    XStream-1.4.2可能是一个稳定且广泛使用的版本,对于那些需要处理XML与Java对象之间转换的项目来说,它是一个可靠的选择。 标签"xstream.jar"明确了这是一个Java档案(JAR)文件,通常包含Java类、资源和其他相关...

    xstream-1.4.11-API文档-中文版.zip

    赠送jar包:xstream-1.4.11.jar; 赠送原API文档:xstream-1.4.11-javadoc.jar; 赠送源代码:xstream-1.4.11-sources.jar;...人性化翻译,文档中的代码和结构保持不变,注释和说明精准翻译,请放心使用。

    使用XStream 多集合生成xml

    在这个场景中,"使用XStream多集合生成xml"是一个关键的技术点,它涉及到如何将多个集合类的对象转换成XML文档。以下是对这一主题的详细说明。 首先,我们需要了解XStream的基本用法。XStream的核心是`XStream`类,...

    android XMl 解析神奇xstream 二: 把对象转换成xml

    7. **安全注意事项**:在Android中使用XStream时,要注意避免XSS(跨站脚本攻击)和XXE(XML外部实体注入攻击)。可以使用`xstream.allowTypesByWildcard()`或`xstream.addPermission()`来限制可序列化的类型。 8. ...

    XStream使用文档.docx

    XStream的特点和优点使其非常适合在Java项目中使用,例如可以将Java对象序列化为XML文件,以便于数据的存储和传输;也可以将XML文件转换回Java对象,以便于数据的处理和分析。 XStream是一个非常实用的Java库,能够...

    Java用xStream拼接xml

    在IT行业中,XML(eXtensible Markup Language)是一种被广泛使用的数据交换格式,尤其在Web服务和数据存储中。当需要将数据转换为XML格式以便于传输或处理时,工具如xStream就显得尤为重要。Java中的xStream库提供...

    xstream相关的jar包

    在标题中提到的"Xstream相关的jar包",是指为了使用XStream库,需要引入的依赖文件。在描述中列出的三个jar包分别是: 1. **xstream-1.4.9.jar**:这是XStream的核心库,包含了所有必要的类和方法来实现对象到XML的...

Global site tag (gtag.js) - Google Analytics