# config-loader-xml
**Repository Path**: directxm/config-loader-xml
## Basic Information
- **Project Name**: config-loader-xml
- **Description**: game of xml config loader
- **Primary Language**: Java
- **License**: Apache-2.0
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2019-05-29
- **Last Updated**: 2020-12-19
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# config loader xml
---------------------------
## dependencies
---------------------------
```xml
org.simpleframework
simple-xml
${simple-xml.version}
provided
```
## usage
---------------------------
* 数据类定义 (对应注解查看 simple-xml)
```java
@Root(strict = false)
public class Task extends Config
{
@Root(strict = false)
public static class Bonus
{
@Element
public Constant.BonusType type;
@Element(required = true)
public int id;
@Element(required = false)
public int count;
}
@Element
public int id;
@Element(name = "desc")
public String desc;
@Element
public Constant.TASK_REFRESH_TYPE task_refresh_type;
@Element
public Constant.TASK_FORM_TYPE task_form_type;
@Element
public Constant.SUB_TASK_REFRESH_TYPE sub_task_refresh_type;
@ElementList(entry = "int", inline = false, name = "subTasks", required = false)
public ArrayList subTasks = new ArrayList();
@ElementList(entry = "bonus", inline = false, name = "bonuses")
public ArrayList bonuses = new ArrayList<>();
@Override
public Integer getID()
{
return this.id;
}
@Root
public static class Tasks extends ConfigList
{
@ElementList(inline = true, entry = "tasksitem")
private ArrayList list = new ArrayList<>();
private Map map = new HashMap<>();
@Override
protected List list()
{
return list;
}
@Override
protected Map map()
{
return map;
}
@Override
public void postLoad() throws Exception
{
}
}
}
```
* 加载代码
```java
public class CustomConfigFactory implements ConfigFactory
{
@Override
public void registerConfigs() throws ConfigException
{
ConfigLoader.registerConfig(Task.Taskes.class, false);
}
}
```
### 配置文件格式
```xml
100001
task_100001_name
task_100001_desc
TASK_REFRESH_DAY
10
MONEY
0
1000
```
### 导出模板说明
* 操作页面(据配置,导出页面)
excel 第二行为数据字段描述
每一行代表一条完整数据
* 默认直接类型
支持类型参看 simple-xml
Date 2010-10-10T10:10:10
TimeSpan 0.00:00:00
并可以通过实现 Transform 增加自定义类型
* 模版格式(数据模版配置页面)
每一行代表一个属性的配置, 每行需要配置缺省值、前缀、后缀、文本名、映射
每个XML 节点的输出内容为 <前缀> + <数据值> + <后缀>
<缺省值> 数据值为空时使用此列
<映射> 映射sheet页的对应的列,值相同则替换为,映射sheet页对应列右边一列的对应值
<文本名> 本地化文件输出的节点名称
操作页面相对数据列为空则本字段不导表 操作页面sheet页一行数据中 相对本列右边(正数)或左边(负数)的那一列为空则本列不导出
* 文件输出配置
配置导出
文件头、结尾、每条数据开头、结尾、文件生成路径、ID位置(代表id的字段放在操作页面sheet页的第几列)等
模版长度会根据模版sheet页自动生成
路径目录不会自动生成,需要先自行创建
导出文件在插入数据时会被清空
[文件输出配置]
* 映射页(普通数据的类型映射)
配置数据映射,在导表时应用
[类型映射]
* 映射列表绑定
[展式]
[配置]
[模板]
* 本地化
*.txt [本地化1] 输出的节点名称 (模版名称_ID_文本名称)
*.xml [本地化2]
[本地化1]
[本地化2]
## change log
---------------------------