# android-xml-serializer-deserializer
**Repository Path**: mirrors_tencentyun/android-xml-serializer-deserializer
## Basic Information
- **Project Name**: android-xml-serializer-deserializer
- **Description**: Android XML自动 序列化/反序列化
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2021-01-12
- **Last Updated**: 2025-08-02
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# android-xml-serializer-deserializer
使用注解处理为Java模型类生成xml序列化器/反序列化器(解析器)
### Gradle引入
```
implementation project(':xmlAnnoation')
implementation project(':xmlCore')
annotationProcessor project(':xmlCompiler')
```
### 项目说明
- xmlAnnoation:定义注解
- xmlCore:给外部提供XML序列化与反序列化的方法
- xmlCompiler:编译时生成Java模型类的Xml Adapter
### 使用说明
1. 按照XML规则定义Java模型类并添加注解
```
string
string
string
Enum
date
string
Enum
date
```
```
@XmlBean(name = "ListAllMyBucketsResult")
public class ListAllMyBuckets {
/**
* 存储桶持有者信息
*/
public Owner owner;
/**
* 存储桶列表
*/
public List buckets;
/**
* 存储桶持有者
*/
@XmlBean
public static class Owner{
/**
* 存储桶持有者的完整 ID
*/
@XmlElement(name = "ID")
public String id;
/**
* 存储桶持有者的名字
*/
@XmlElement(name = "DisplayName")
public String disPlayName;
}
/**
* 存储桶
*/
@XmlBean
public static class Bucket{
/**
* 存储桶的名称
*/
public String name;
/**
* 存储桶所在地域
*/
public String location;
/**
* 存储桶的创建时间,为 ISO8601 格式,例如2019-05-24T10:56:40Z
*/
@XmlElement(name = "CreationDate")
public String createDate;
public String type;
}
}
```
2. 反序列化
```
ListAllMyBuckets listAllMyBuckets = QCloudXml.fromXml(inputStream, ListAllMyBuckets.class);
```
3. 序列化
```
String xmlStr = QCloudXml.toXml(listAllMyBuckets);
```
### 映射规则
默认规则:
XML节点名---类名
XML节点名---字段名首字母大写
可以通过注解的name属性进行映射自定义,比如:
@XmlElement(name = "CreationDate")