S1000D Schema、BREX 与内容完整性校验有什么区别?
S1000D 项目通常需要同时处理三类质量问题:XML 是否符合 Schema 结构,内容是否符合项目 BREX 业务规则,以及一套手册所需的模块、引用、媒体和适用性是否完整。三者相互配合,但检查范围不同,不能把“结构通过”当成“内容正确”。
三层校验如何分工?
可以把校验想成从“文件能不能被解析”到“项目规则是否满足”,再到“交付内容能不能被完整使用”的逐层检查。不同工具的命名和报告字段可能不同,但分层思路有助于明确责任、设置质量门禁和追踪返工原因。
| 校验层次 | 主要回答的问题 | 典型问题 | 不能替代的工作 |
|---|---|---|---|
| Schema 结构校验 | XML 是否符合选定版本的数据结构? | 元素顺序错误、必填节点缺失、出现次数不符、数据类型不合法。 | 项目业务偏好、技术正确性和现场安全判断。 |
| BREX 与项目规则校验 | 内容是否遵守本项目或组织的编码、字段和使用约束? | 代码表不一致、对象路径不允许、术语或属性值不符合约定。 | 未配置的业务例外、工程判断和实际可操作性。 |
| 内容完整性校验 | 交付范围内的内容是否齐全、连得上、适用得上? | 缺少必需数据模块、引用断链、媒体缺失、适用性覆盖不足、发布物缺页。 | 对维修步骤、警告和型号差异的专业审核。 |
Schema 校验主要检查什么?
Schema 是机器可读的结构约束。它帮助工具判断一个数据模块是否使用了允许的元素和属性,元素是否按规定顺序出现,必填内容是否存在,以及字段值是否符合规定的数据类型或基础格式。Schema 让 XML 在进入协同、审核和发布流程前具备可解析的一致性。
| 检查对象 | 常见检查内容 | 失败示例 |
|---|---|---|
| 元素层级与顺序 | 父子关系、允许的子元素、元素出现顺序。 | 把引用节点放在不允许的位置,或把内容节点放到身份区之外。 |
| 出现次数 | 必填、可选、单次或重复出现的约束。 | 缺少必需的标识信息,或重复出现只能单次出现的元素。 |
| 属性与数据类型 | 属性是否存在、格式是否正确、值是否属于基础类型。 | 日期、布尔值、标识符或枚举字段格式不符合 Schema。 |
| 版本匹配 | 实例文档、Schema、Data Dictionary 和工具配置是否属于同一版本范围。 | 用另一 Issue 的 Schema 校验当前项目,导致误报或漏报。 |
Schema 通常不负责表达完整的项目语义。例如,某个代码值在 XML 层面可能是合法字符串,但项目只允许组织术语表中的有限取值;这类要求需要由 BREX、代码表或其他项目规则补充。
BREX 如何补充 Schema?
BREX(Business Rules Exchange)用于表达项目或组织的业务规则。它可以把“某类数据模块必须使用哪些字段”“某个对象路径不允许出现某种用法”“某个属性只能取项目代码表中的值”等约定转成可执行或可提示的规则,供编辑、导入和批量校验使用。
| 规则概念 | 用途 | 设计时要写清楚 |
|---|---|---|
brexEntry | 承载一条业务规则及其说明。 | 规则编号、来源、适用范围、严重级别和示例。 |
structureObjectRule | 对对象路径、结构或使用方式提出约束。 | 对象路径、上下文、适用的数据模块类型和例外条件。 |
objectPath / objectUse | 定位被约束的对象,以及它在项目中的使用要求。 | 路径是否唯一、上下文是否明确、提示能否被作者理解。 |
objectValue 与取值规则 | 限制代码、属性、文本或对象的允许值。 | 代码表版本、大小写、格式、空值和豁免处理。 |
| 规则元数据 | 帮助管理规则的版本、来源、状态和责任人。 | 变更审批、发布时间、影响分析和回归测试记录。 |
内容完整性校验检查什么?
内容完整性校验关注的是“这套内容能否完整交付和使用”。它通常跨越多个数据模块、引用对象、媒体文件、适用性表达和出版物结构,不能只靠单个 XML 文件的 Schema 校验得出结论。
| 检查范围 | 检查问题 | 可留存的证据 |
|---|---|---|
| 模块覆盖 | DMRL 或项目清单要求的模块是否都已创建、审核并达到可发布状态? | 模块清单、状态报表、缺口和豁免记录。 |
| 引用与版本 | DMRef、ICN、外部对象和交叉引用是否存在、版本是否一致? | 引用解析报告、未解析引用列表、版本对照表。 |
| 媒体与图文 | 图形、视频、热点、零件表与正文是否齐全,文件格式和分辨率是否满足交付要求? | 媒体清单、预览结果、发布包文件校验记录。 |
| 适用性与构型 | 目标型号、批次或配置能否筛选出正确内容,是否出现空章节或冲突条件? | 适用性测试矩阵、构型样例、筛选前后对照。 |
| 出版物与交付 | PM 目录、章节顺序、页眉页脚、搜索、链接和交付包是否完整? | 发布验收清单、PDF/IETP/Word 抽检记录。 |
常见标签和对象怎么放进校验流程?
下面列出项目中经常需要一起检查的代表性标签。具体元素名称、允许组合和层级取决于采用的 S1000D Issue、Data Dictionary、Schema 以及数据模块类型,实施时必须以项目正式配置为准。
| 标签或对象 | 所在环节 | 常见检查重点 |
|---|---|---|
dmIdent、dmAddress | 数据模块身份与地址 | DMC、版本、语言、状态和模块身份是否一致可追溯。 |
content、descr | 描述类内容 | 内容边界、术语、引用和必需段落是否满足项目规则。 |
proceduralStep、warning、caution、note | 程序与安全信息 | 步骤顺序、前置条件、安全信息位置和人工审核状态。 |
dmRef、refs | 引用与重用 | 被引用模块是否存在、版本是否正确、循环或断链是否可控。 |
graphic、figure、ICN | 图形与媒体 | 文件、编号、格式、替代文本、热点和发布包是否对应。 |
applic、PM、pmEntry | 适用性与出版物组织 | 构型筛选、目录顺序、模块覆盖和最终交付物是否一致。 |
brexEntry、structureObjectRule | 业务规则 | 规则路径、严重级别、取值约束、来源和适用范围是否明确。 |
建议的校验实施流程
把自动化校验嵌入创作、审核和发布流程,重点是让每一次失败都能回到明确的责任和证据,而不是在最终发布时集中人工排查。
- 锁定版本:明确 S1000D Issue、Schema、Data Dictionary、BREX、代码表和项目规则的版本。
- 建立规则基线:把合同、型号规范、术语表、DMRL 和交付要求整理成可追踪的规则清单。
- 先做 Schema 校验:在模块进入协同审核前拦截结构、顺序、必填项和数据类型错误。
- 再做 BREX 校验:检查项目编码、字段、对象使用和术语约束,并区分错误、警告和提示。
- 执行完整性检查:解析引用、媒体、适用性、模块覆盖和出版物关系,形成缺口清单。
- 完成专业审核:由技术、维修、安全、语言和配置管理人员确认内容可执行、可理解、可追溯。
- 发布前回归:抽取新增、修订、复用和带适用性过滤的模块,验证变更能正确传递到 PDF、IETP 或其他交付物。
项目检查清单
| 检查项 | 完成标准 | 责任角色 |
|---|---|---|
| 版本基线 | Issue、Schema、Data Dictionary、BREX 和代码表版本已登记并锁定。 | 项目负责人、配置管理员 |
| 结构校验 | 目标模块通过对应 Schema,失败项已修订或有批准的例外。 | 数据模块编写人员、工具管理员 |
| 业务规则 | 强制规则无未处理错误,警告和豁免均有理由与责任人。 | 标准工程师、审核人员 |
| 引用完整性 | DMRef、ICN、图形、外部对象和交叉引用可解析,版本关系清晰。 | 内容管理员、配置管理员 |
| 适用性 | 每个目标构型都有测试样例,筛选结果无空章节、冲突或错误复用。 | 系统工程师、验收人员 |
| 专业内容 | 程序步骤、警告、注意、术语、图文一致性和现场可执行性已审核。 | 技术专家、维修专家、安全人员 |
| 发布验收 | 目录、搜索、链接、媒体、页面版式和交付包在指定环境中抽检通过。 | 发布人员、客户验收人员 |
常见校验结果应该怎么处理?
| 结果 | 含义 | 建议动作 |
|---|---|---|
| 通过 | 当前检查层的规则没有发现问题。 | 继续下一层检查,不要把单层通过当作整套内容验收通过。 |
| 错误 | 违反结构或强制项目规则,可能阻断后续处理。 | 定位到模块、对象路径和规则编号,修订后重新校验。 |
| 警告 | 发现需要人工确认的推荐项、例外或风险。 | 补充说明、批准豁免,或调整内容与规则。 |
| 未覆盖 | 当前 Schema、BREX 或完整性规则没有描述该情况。 | 不能按“未报错”处理;评估是否新增规则或安排人工审核。 |
常见问题
Schema 校验通过,是否代表数据模块内容正确?
不代表。Schema 主要检查 XML 结构、元素顺序、出现次数和数据类型;技术内容、步骤安全性、图文一致性和型号适用性仍需 BREX、完整性检查和专业人员审核。
BREX 能替代 Schema 吗?
不能。Schema 提供基础结构和数据类型约束,BREX 表达项目或组织的业务规则,两者通常按先结构、后规则的方式配合使用。
内容完整性校验通常检查哪些内容?
通常检查必需模块是否齐全、引用对象和媒体是否存在、DMC 与版本是否一致、适用性是否覆盖目标构型、发布物是否缺页,以及关键步骤、警告和术语是否完成审核。
三类校验应该按什么顺序做?
建议先做 Schema 结构校验,再做 BREX 与项目规则校验,然后检查引用、适用性和内容完整性,最后由技术、维修、安全和语言人员完成专业审核。
不同 S1000D Issue 可以共用同一套规则吗?
不能直接假定共用。数据模型、Schema、Data Dictionary 和 BREX 规则可能随 Issue、项目和组织约定变化,规则应绑定明确的版本并经过正例、反例和回归测试。
VizMan 与三层校验
VizMan IETM 面向 S1000D Issue 5.0 与 GJB 6600 场景,提供结构编辑、实时校验、项目规则管理、协同审核、适用性发布和交互阅读能力。具体项目仍需根据合同、业务规则、Schema 版本和交付环境确认校验范围。