S1000D BREX 是什么?业务规则、结构校验与常用标签
BREX 用于表达项目或组织的业务规则,让 Schema 之外的项目约束可以被工具检查。它可以约束元素路径、字段取值、对象使用方式和项目禁用项,但 BREX 不能替代专业人员对技术内容、安全性和完整性的审核。
BREX 解决什么问题?
Schema 主要描述 XML 的结构、元素顺序、数据类型和基本允许范围;项目还会有更细的约定,例如某个节点必须使用哪些代码、某类模块不能出现某个对象、某个字段要采用组织术语。BREX 把这类规则集中表达,使编辑、导入和批量检查有一致依据。
边界:BREX 能检查“结构和规则是否符合约定”,不能证明维修步骤在真实设备上安全,也不能替代工程师、语言专家和配置管理人员的审核。
BREX 常见标签和作用
| 元素或概念 | 作用 | 检查重点 |
|---|---|---|
brex | BREX 数据模块的根结构。 | 采用的 Schema、版本和模块身份。 |
brexEntry | 承载一条或一组业务规则。 | 规则说明、适用范围和唯一标识。 |
structureObjectRule | 针对对象路径表达结构和使用约束。 | 对象路径是否准确、规则是否可执行。 |
objectPath、objectUse | 定位被约束的对象及其使用要求。 | 路径、上下文和模块类型是否匹配。 |
objectValue、断言或取值规则 | 约束属性、代码、文本或对象的允许值。 | 代码表、大小写、格式和例外处理。 |
不同 Issue 的 BREX 模型和元素细节可能不同。实施时必须以对应 Data Dictionary、Schema 和正式样例为准,不要把其他版本的标签直接复制到当前项目。
如何设计可维护的 BREX?
- 先把合同、型号规范、术语表和项目管理要求整理成规则清单。
- 区分强制规则、推荐规则和仅用于提示的规则,避免把所有偏好都做成阻断项。
- 每条规则写明来源、目的、适用范围、责任人和示例。
- 用正例和反例验证规则,确认编辑器提示能被作者理解。
- 为 BREX 本身建立版本、审批、变更影响和回归测试记录。
BREX 校验的常见结果
| 结果 | 含义 | 处理方式 |
|---|---|---|
| 通过 | 当前对象满足已配置的结构与业务规则。 | 仍需继续做内容、引用和专业审核。 |
| 警告 | 发现推荐项或需要人工确认的例外。 | 补充理由、记录豁免或修改内容。 |
| 错误 | 违反强制结构、字段或取值规则。 | 修订模块,重新校验并保留修订记录。 |
| 规则未覆盖 | 当前项目没有对该情况配置规则。 | 不要误认为“未报错”等于“符合要求”。 |
常见问题
BREX 是 Schema 吗?
不是。Schema 主要定义结构和数据类型,BREX 表达项目或组织的业务规则,两者通常配合使用。
BREX 能自动判断技术内容正确吗?
不能。BREX 可以检查结构、字段和规则,但不能替代工程技术审核、现场验证和安全评审。