XML文档构建

发布人:仓颉技术交流平台官方
分类:数据序列化与解析 / XML

需要提供一种简单而直观的解决方式,来创建和生成符合XML标准的文档。

等待接取
2025-11-19
39

悬赏内容

招募内容

项目背景

我们需要开发一个基于仓颉语言的 OpenHarmony 原生序列化组件,类似于现有的 protobufjs 组件,但完全使用仓颉语言重写,为 OpenHarmony 应用提供高性能的数据序列化/反序列化能力。

核心需求

1. 基础功能要求

  • 协议支持:完整支持 Protocol Buffers v3 语法规范

  • 代码生成:提供仓颉语言版的 .cangjie 代码生成工具

  • 序列化:实现高效的二进制编码/解码

  • 类型安全:充分利用仓颉语言的强类型特性

2. 技术规格

// 目标接口示例
protocol ProtoSerializable {
    encode(): Uint8Array
    decode(data: Uint8Array): void
    verify(): boolean
}

// 消息构建接口
class MessageBuilder<T> {
    static create(fields: Map<string, any>): T
    static fromObject(obj: any): T
    toObject(): any
}

3. 工具链要求

  • 代码生成器:将 .proto 文件转换为仓颉类定义

  • CLI 工具:支持命令行参数解析和批量处理

  • 依赖管理:兼容 ohpm 包管理生态

开发交付物

第一阶段:核心库

protobuf-cangjie/
├── library/           # 核心序列化库
├── compiler/          # 代码生成器
├── cli/              # 命令行工具
├── examples/         # 使用示例
└── docs/            # 开发文档

第二阶段:生态集成

  • ohpm 包发布配置

  • DevEco Studio 插件支持

  • 单元测试和性能测试套件

相关附件

质量认证要求

交付件

NO

交付件描述

备注

1

三方库源代码

源代码

2

三方库测试方案和用例

测试用例和文档

3

用户手册,API文档,设计文档,license文档

 资料和文档

验收标准

1.功能

  1. 三方库必须有明确的功能;

  2. 如果参考对标库移值开发,功能与参考三方库保持一致。

2.资料

  1. Readme:包含简介,软件架构,目录结构,下载安装(编译构建),接口说明,使用示例,约束限制,开源协议,参与贡献等内容;

  2. Changelog,三方库版本需包含基本的修改说明。

3.标准遵从性(可选),三方库实现需满足对应协议或行业标准,举例

  1. appquth:支持对OAuth 的PKCE扩展;

  2. icu4j:支持unicode标准库,通用字符集ISO/IEC 10646。

4.性能目标

  1. 性能敏感三方库接口运行性能持平对标三方库

5.开源协议遵从,必须包含License文件

  1. 放置合适的开源License协议,建议Apache License Version 2.0;

  2. 引用或参考开源三方库,需遵从开源协议。

6.网络安全要求

  1. 满足基础的网络安全红线及隐私要求,符合安全编码规范。

过程质量要求

指标分类

指标名称

指标要求

度量工具

牵引 OR Must

代码度量

平均文件代码行

≤300 LOC

CMetricsPlus,CJMetric

Must

总文件重复率

C/C++≤4%;相比开源不劣化

CMetricsPlus,CJMetric

Must

源文件重复率

C/C++≤4%;相比开源不劣化

CMetricsPlus,CJMetric

Must

平均函数或方法代码行*

≤30  LOC

CMetricsPlus,CJMetric

Must

总代码重复率

C/C++≤10%;相比开源不劣化

CMetricsPlus,CJMetric

Must

源文件代码重复率

C/C++≤10%;相比开源不劣化

CMetricsPlus,CJMetric

Must

平均圈复杂度

≤5;相比开源不劣化

CMetricsPlus,CJMetric

Must

冗余代码

“0” 【2】;

CMetricsPlus,CJMetric

Must

不安全函数

NA

CMetricsPlus,CJMetric

Must

静态检查

编译告警

“0” 【2】

Compile工具

牵引

通用静态告警

“0” 【2】

Pclint plus,CJLINT

Must

开发者测试

DT用例密度(个/KLOC)

> 40

手工

牵引 

DT代码语句覆盖率

>=85%

Gcov,cjcov

牵引

DT代码分支覆盖率

>=50%

Gcov,cjcov

牵引

未做DT文件数

0

手工

牵引

问题解决率

遗留问题DI

整体<10

Issue

牵引 

遗留致命缺陷数(0)

0

Issue

Must

累计缺陷解决率

85%

Issue

牵引 

软件开发

每日构建成功率

100%

CI

牵引

测试评估

测试缺陷密度(/KLOC)

5-9

人工

牵引

测试用例密度(个/KLOC)

20-40

人工

牵引

初验用例自动化率

100%

CIDA

牵引 

HLT自动化用例比率

【85%,95%】

CIDA

牵引 

开源第三方(含构建工具)

开源片段引用

0(除例外备案类)

FOSSBOT+人工

Must

可信构建

二进制一致性

0(含可澄清)

人工

Mus