跳到主要内容

Schema 校验方法

TIDAS 数据结构基于 JSON Schema 进行定义与实现,提供标准化、自动化的数据校验机制,以确保生命周期数据在编制、交换与共享过程中的准确性、一致性和可扩展性。

JSON Schema 是一种通用、开放的结构定义标准,不依赖特定平台或语言,验证方式灵活多样。用户可以使用 JavaScript 的 ajv、Python 的 jsonschema、Java 的 everit 等多种语言和工具进行数据结构校验,只需几行代码即可完成验证,非常适合快速集成与调试使用。

TIDAS 项目基于此能力开发了一个增强型工具 tidas-tools,其中的 validation.py 脚本在标准 JSON Schema 校验的基础上,增加了针对 TIDAS 数据结构的分类层级逻辑校验与模块间引用解析,适合批量、多模块、高复杂度的数据验证需求。


验证方式

方式一:简单使用 JSON Schema 校验(以 Python 为例)

from jsonschema import validate, ValidationError

with open("schema.json") as s:
schema = json.load(s)
with open("data.json") as d:
data = json.load(d)

try:
validate(instance=data, schema=schema)
print("验证通过")
except ValidationError as e:
print("验证失败:", e.message)

适合开发调试阶段的单文件快速验证。

方式二:使用 TIDAS 工具批量验证

python validation.py --input-dir ./test_data --verbose
  • --input-dir:待验证的 JSON 文件目录(包含 flows、processes 等子目录)
  • --verbose:输出详细日志信息

更多信息参考 TIDAS 工具介绍


验证内容概览

TIDAS 的数据验证机制结合了两类校验能力:

1. 结构校验(JSON Schema 标准)

  • 校验字段是否缺失(required)
  • 校验字段类型是否匹配(string, number 等)
  • 校验字段值是否符合定义(format, enum 等)
  • 支持模块间引用解析($ref)

2. 分类结构逻辑校验(TIDAS 特有)

适用于 flows、processes、sources 等分类结构:

  • 层级检查:字段 @level 顺序是否正确
  • 代码规则:子项是否以父项代码为前缀
  • 流程分类行业匹配规则:行业编码是否满足国家标准映射逻辑

验证结果输出

以下是典型错误输出信息示例:

{
"message": "'name' is a required property",
"path": ["flowDataSet", "flowInformation", "dataSetInformation"],
"schemaPath": "#/required"
}

此错误表示 name 字段缺失,路径信息帮助定位具体出错位置。

验证完成后,输出每个文件的验证状态:

  • PASSED.:验证成功
  • ERROR::指出出错文件及详细错误位置

建议调试阶段使用 --verbose 查看详细错误信息,快速定位问题。


如需了解 JSON Schema 的结构定义方式、字段命名规范与模块说明,请前往 数据结构(JSON Schema)。如需了解 TIDAS 验证工具更多细节,请参考 TIDAS工具包介绍