# XMLParamtersLib **Repository Path**: xymys_c/XMLParamtersLib ## Basic Information - **Project Name**: XMLParamtersLib - **Description**: 基于XML的通信数据解析、反解析的库,使用C++/Qt开发 - **Primary Language**: C++ - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 1 - **Created**: 2023-11-12 - **Last Updated**: 2023-11-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # XMLWithXPath **Copyleft**

# 简介 XMLParamtersLib是基于XML化的参数解析库 # 功能介绍 基于XML化的参数解析可以完成 - 参数组成可通过XML配置文件动态生成 - 参数/二进制数据之间的序列化、反序列化 - 根据参数动态生成对应的控件 # 特性介绍 - 为了保持本库的通用性,XML节点的定义只针对参数的属性做了规定,参数节点名称默认为Param
参数定义示例:
![](./images/param_define.png)

```ParamItemReader```类提供了从XML节点```XMLResolve::stNodeInfo```解析出参数```ValueItem```及其属性的功能: ```cpp //将XMLNode解析为Item //static bool resolveNodeToParam(DataBuilder::ValueItem& item, const XMLResolve::stNodeInfo& node); //示例 //从XML解析出来的node //node DataBuilder::ValueItem item; ParamItemReader::resolveNodeToParam(item, node); if(!item){ //参数无效 } ```
- 参数节点属性支持(详细参见[type.xlsx](./type.xlsx)中的<通用属性>页) - 支持节点属性的覆盖 - 参数生成控件支持(详细参见[type.xlsx](./type.xlsx)中的<特殊控件类型说明>页) - 参数数据类型支持(详细参见[type.xlsx](./type.xlsx)中的<类型特殊属性说明>页) - 枚举类型支持(提供了默认的读取方式,可以通过继承```IEnumDataLoader```来重写枚举文件的读取方式) - 参数组的支持(暂未支持,待完善) - 参数序列化/反序列化支持(```DataSerialization```类支持,暂时未支持数据类型为```String```类型的参数(因为可变长)) - 动态控件创建,由```CtrlCreator```类支持 ```cpp DataBuilder::ValueItem item = xxxx; ICtrlBase* ctrl = CtrlCreator::createWidgetWithParam(item); if(ctrl && ctrl->widget()){ //操作窗体 } ``` - XML参数节点解析说明 - 所有类型字符串不区分大小写,例如: type="CHAR"、type="char"、type="ChAr"是等效的 - 对于Bool类型的值,“TRUE”、“YES”、“1”都识别为true - 数据类型解析表 字符|类型 ----|---- B、BYTE | DataBuilder::DataType::Byte STRING、STR | DataBuilder::DataType::String D、DOUBLE | DataBuilder::DataType::Double F、FLOAT | DataBuilder::DataType::Float I8、INT8 | DataBuilder::DataType::Int8 I16、INT16| DataBuilder::DataType::Int16 I32、INT32| DataBuilder::DataType::Int32 I64、INT64| DataBuilder::DataType::Int64 UI8、UINT8| DataBuilder::DataType::UInt8 UI16、UINT16| DataBuilder::DataType::UInt16 UI32、UINT32| DataBuilder::DataType::UInt32 UI64、UINT64| DataBuilder::DataType::UInt64 BOOL| DataBuilder::DataType::Bool - 控件类型解析表 字符|类型 ----|---- DIR | DataBuilder::CtrlType::DirSelect OPENFILE | DataBuilder::CtrlType::OpenFileSelect SAVEFILE | DataBuilder::CtrlType::SaveFileSelect IP | DataBuilder::CtrlType::IPAddr DATETIME | DataBuilder::CtrlType::DateTime DATE| DataBuilder::CtrlType::Date TIME| DataBuilder::CtrlType::Time CHECK| DataBuilder::CtrlType::CheckBox RADIO| DataBuilder::CtrlType::RadioBox COMBO| DataBuilder::CtrlType::ComboBox # 计划支持的特性 - 控件间联动规则定义及开发 # 软件架构 C++/QT/XML
# 支持平台 - 全平台
# 性能指标 无
# 第三方库依赖 - XMLWithXPath
# 支持者 Name:代小兵 Email:daixb@sinux.com.cn Tel:13982071922
You...