S1000D 实施示例:从 DMRL、DMC、SNS 到校验交付

本文用一个虚构的“液压泵更换程序”小项目,演示需求如何进入 DMRL,如何通过 SNS 和 DMC 建立身份,再经过 Schema、BREX、引用完整性和出版物检查,最后进入交付基线。示例专门压缩了范围,便于理解各对象之间的关系。

本文由北京重子科技 VizMan IETM 团队编写,最后更新:2026-10-19。页面是学习与项目规划用的解释性示例,不替代 S1000D 正式规范。

先确认示例边界

版本与用途声明:本文采用 S1000D Issue 5.0 的常见概念和术语进行说明;表格中的 DMC、SNS、人员、日期、代码和值均为虚构占位内容。它们不构成正式标准条款、项目编码方案、Schema、Data Dictionary、BREX 或验收承诺。实施时应以合同、项目批准的 Issue、Schema、数据字典、代码表、业务规则和配置基线为准。

“示例通过”也不等于“项目符合标准”。这里的通过只表示:在这个简化场景中,需求、身份、内容、规则、引用和交付之间的关系可以被追溯。真实项目还要增加安全、专业内容、配置管理、语言、媒体、权限、目标设备和最终用户验收。

项目假设:一个维修程序模块

假设项目为“ABC-100”装备建立一份液压泵更换程序。用户需要在型号 A 构型下完成拆卸、安装、泄漏检查和功能测试。项目决定用一个程序类数据模块承载步骤,用一个安全信息模块提供前置警告,用一张图形说明接口位置,并将它们编入一个小型出版物模块(PM)。

对象示例内容在链路中的作用
原始需求TA-0237:液压泵更换任务分析说明为什么需要这个模块,并提供可回溯的来源。
目标数据模块液压泵更换程序;类型暂定为 procedural承载可执行的技术步骤和验收条件。
前置依赖安全警告、泵组件 IPC、接口位置图、适用性条件让程序能够安全、完整地被阅读和执行。
出版物PM-ABC100-MAINT-A(项目占位值)组织目录、DMRef、适用性和发布包。

从需求到交付的最小追溯链

可以把这个小项目理解为一条连续的证据链:

TA-0237 原始需求
    ↓
DMRL-0237 需求条目(要编什么、谁负责、如何验收)
    ↓
SNS 层级 + DMC 身份(模块属于哪个系统、如何唯一识别)
    ↓
数据模块 XML + 图形/模块引用(实际技术内容)
    ↓
Schema 结构校验 → BREX 业务规则校验 → 引用/媒体/适用性完整性
    ↓
PM / DMRef 组装 → 交付包与批准基线

DMRL 是管理和追溯入口,DMC 是模块身份的一部分,SNS 提供系统层级背景;Schema、BREX 和引用完整性检查则分别回答“结构是否能解析”“项目规则是否满足”“依赖对象是否真实可用”。任何一环缺失,都可能导致“文件生成了但不能交付”。

DMRL 条目示例:把需求变成可管理任务

下面的条目只展示字段关系。实际项目可以使用表格、数据库、CSDB 对象或项目工具维护,但需要保证稳定标识、责任、状态和证据可以持续追踪。

字段示例值检查重点
DMRL 条目DMRL-0237唯一、稳定,变更标题或负责人时不随意重用。
需求来源TA-0237;维修任务分析第 4.2 节能回到原始需求、章节或批准的变更记录。
模块主题与类型液压泵更换;程序类(procedural)主题边界、受众、模块类型和任务粒度一致。
SNS29 / 10 / 05(示意码段)对应项目批准的系统、分系统和部件层级。
DMCABC-29-10-05-040A-A(示意占位)应按项目 DMC 规则生成;不能把本示例值当作正式编码。
适用性型号 ABC-100;构型 A;序列号范围待项目确认与 ACT/PCT/CCT、模块状态和 PM 筛选逻辑一致。
责任与状态编制:作者 A;技术审核:审核人 B;待审核,版本 1.2状态有进入条件、退出证据、时间和责任人。
依赖安全模块、IPC、接口图、适用性代码表 v2.1每项依赖有标识、版本和可解析的引用。
验收证据Schema/BREX 日志、引用检查报告、PM 预览和批准记录证据能与具体版本、配置和发布包对应。

如果模块暂时还没有正式 DMC,可以在 DMRL 中使用项目临时标识,但必须同时记录转正式编码的规则和责任人。临时标识不能悄悄进入最终发布包。

SNS 与 DMC:从层级到唯一身份

SNS 描述系统、分系统、组件等层级,帮助团队约定“这个模块讲的是哪一部分”;DMC 则按项目规则组合型号、系统层级、信息类型、变型等身份字段,用于唯一识别数据模块。SNS 和 DMC 有关联,但不是同一个对象,也不能把 SNS 路径直接当作完整 DMC。

概念本示例的表达不要这样使用
SNS 层级29 / 10 / 05:系统 / 分系统 / 组件的示意路径不要脱离项目 SNS 规则,自行把数字解释成正式系统编码。
DMC 字段ABC-29-10-05-040A-A:便于展示字段组合的占位值不要复制到生产环境;正式字段、长度、分隔方式和允许值由项目基线决定。
模块标题更换液压泵标题、DMC 和实际内容主题不能互相矛盾。
适用性型号 ABC-100 / 构型 A不要只写在标题中而不进入项目定义的适用性表达。

可先用一张映射表做评审:每个 DMRL 条目对应一个目标模块身份,每个 SNS 节点都有责任边界,每个正式 DMC 都能回到条目、需求和出版物引用。详细概念可参考DMC 数据模块代码和SNS 系统划分码。

三层校验:Schema、BREX 与引用完整性

三类校验解决的问题不同,不能用其中一类代替其他两类。实际工具可能合并报告界面,但项目验收时仍建议把范围、规则和证据分开记录。

校验层回答的问题本示例的检查输出证据
Schema 结构校验XML 是否符合采用的结构、元素顺序、属性和数据类型?程序模块的身份状态区、内容区和允许的步骤结构是否能解析。Schema 版本、校验日志、错误位置和修订记录。
BREX 业务规则是否满足项目额外的必填项、值域、命名、警告和内容规则?程序必须包含安全前置条件;模块状态和安全分类满足项目规则。BREX 版本、规则编号、通过/失败结果和豁免批准。
引用完整性模块引用的对象是否存在、版本匹配并能进入交付包?安全模块、IPC、图形、代码表、适用性和 PM/DMRef 均可解析。引用清单、媒体清单、断链报告、PM 预览和交付包清单。
最小放行条件:只有当三层校验结果与内容审核、适用性筛选和出版物组装结果都达到项目定义的门槛,DMRL 条目才可以从“待审核”进入“已批准”或“已发布”。

若 Schema 通过但引用断链,模块仍不能交付;若引用完整但 BREX 失败,也不能用“文件可以打开”作为放行理由。三层结果应与同一版本和配置基线关联。

一个最小的关系示意

下方使用项目自定义的伪代码展示对象关系,不是 S1000D 正式 XML,也不会通过任何正式 Schema:

<project-example>
  <dmrl-item id="DMRL-0237" source="TA-0237" status="待审核">
    <topic>液压泵更换</topic>
    <sns path="29/10/05" />
    <dmc placeholder="ABC-29-10-05-040A-A" />
    <depends-on ref="safety-warning-01" />
    <depends-on ref="pump-ipc-01" />
    <depends-on ref="pump-interface-icn-01" />
  </dmrl-item>
  <quality-gate>
    <schema result="pass" baseline="project-schema-v1" />
    <brex result="pass" baseline="project-brex-v2" />
    <reference-integrity result="pass" />
  </quality-gate>
</project-example>

真实数据模块应使用正式命名空间、元素结构、编码、状态和内容模型;真实质量门禁也应由项目工具和批准流程产生证据。这里的伪代码只适合培训、评审和需求沟通。

发布前最小检查清单

  1. 需求覆盖:原始需求、任务分析和变更记录是否都能追溯到 DMRL 条目?是否有遗漏或重复模块?
  2. 身份一致:每个条目的标题、SNS、DMC、模块类型、适用性和 PM/DMRef 引用是否指向同一个主题?
  3. 结构通过:使用项目批准的 Schema 和对应版本校验,错误是否全部处理并保留日志?
  4. 规则通过:BREX 必填项、值域、命名、警告和项目约束是否满足?例外是否有正式批准?
  5. 引用完整:被引用的数据模块、图形、媒体、代码表和外部资源是否存在、版本一致且会进入交付包?
  6. 适用性正确:ACT/PCT/CCT 或项目定义的条件组合是否筛选出正确型号、构型和序列号范围?
  7. 出版物可用:PM、DMRef、目录、搜索、交叉引用和离线交付是否能在目标环境中阅读?
  8. 基线可追溯:模块、规则、媒体、工具、发布包、批准记录和版本是否绑定到同一交付基线?

建议先用少量代表性模块走通这份清单,再批量编制。这样可以在投入大量内容前发现 DMC、Schema、BREX、引用和出版物规则之间的不一致。

常见问题

这个实施示例可以直接作为正式 S1000D 文件吗?

不可以。示例中的编码、字段和值是为了说明关系而设置的占位内容,不是可直接交付的 XML、DMC、Schema 或 BREX。正式项目必须使用合同和项目批准的 Issue、Schema、数据字典、代码表及业务规则。

DMRL、DMC 和 SNS 在示例中分别做什么?

DMRL 记录需要编制和交付哪些模块,DMC 为数据模块提供身份编码,SNS 表示系统和部件的层级。三者通过项目批准的映射和追溯关系连接,而不是互相替代。

Schema 通过后还需要做 BREX 和引用完整性检查吗?

需要。Schema 主要检查结构,BREX 检查项目业务规则,引用完整性检查模块、媒体、代码表、适用性和出版物引用是否存在且版本匹配。三类检查共同构成质量门禁。

这个示例采用哪个 S1000D 版本?

页面使用 S1000D Issue 5.0 的常见术语来帮助理解,但不提供某个项目可执行的 Schema 或完整 XML。实际项目应以合同和经批准的版本基线为准。

小项目也需要 DMRL 和三层校验吗?

范围可以按项目规模裁剪,但仍应保留需求覆盖、模块身份、结构规则、业务规则、引用完整性和交付验收的证据。用一张简化清单替代复杂工具可以,但不能让关键关系只存在于个人记忆中。

相关页面