S1000D DMC 编码示例:如何拆解数据模块代码?

DMC(Data Module Code,数据模块代码)要先服务于稳定的模块身份,再服务于检索和出版物组织。下面用一个虚构的维修任务演示如何从型号、SNS 层级、信息类型和变体建立编码检查表;示例值不代表任何正式标准字段或项目代码表。

本文由北京重子科技 VizMan IETM 团队编写,最后更新:2026-10-22。页面用于中文学习与项目规划,示例不替代 S1000D 正式规范、项目编码基线或验收条款。

示例边界:本文的 ABC-29-10-05-040A-A 只是虚构的分段示意。它不构成正式 DMC、Schema、代码表、BREX、命名空间或可直接交付的 XML;真实项目应从批准的规范包和样例反向确认字段。

DMC 在 S1000D 项目中解决什么问题?

DMC 为数据模块提供可管理的身份,帮助 CSDB 区分模块、处理引用、记录版本并组织出版物。它通常需要与产品型号、系统分解、信息类型、组件或差异范围建立稳定关系。DMC 解决“这个模块是谁”,模块标题解决“读者看到什么”,两者都要和实际内容、适用性及状态一致。

DMC 不是标题、文件路径、版本号或完整的项目配置矩阵。一个稳定的 DMC 可以被多个出版物引用;不同型号或构型的差异,通常应通过项目批准的字段、适用性和配置规则表达,而不是随意把日期、人员或临时版本塞入编码。

如果项目采用 GJB 6600,应另按GJB 6600.2 编码导读核对字段和代码表。本页仅说明 S1000D 场景,不能把示例直接当成 GJB 6600 编码模板。

示例任务:为一个维修模块建立编码需求

假设项目为“ABC-100”装备建立一份液压泵更换程序。项目的系统分解把液压泵放在示意路径 29 / 10 / 05,团队需要编制一个程序类数据模块,供型号 A 构型使用。下面的型号、SNS 路径、任务编号和人员均为虚构值。

需求对象示例值编码前的检查
产品型号ABC-100(虚构)是否已进入项目型号清单,简称和大小写是否统一。
系统层级29 / 10 / 05(示意 SNS 路径)系统、分系统和组件边界是否有批准的定义。
模块主题液压泵更换程序任务边界、受众、先决条件和完成判据是否明确。
信息类型程序类(具体代码待项目确认)信息代码、变体和模块类型是否来自当前 Data Dictionary。
适用性型号 A、构型 1(示意)是否由 ACT/PCT/CCT 或项目规则表达,能否被 PM 筛选。

DMC 示例如何拆解?

将示意编码写作 ABC-29-10-05-040A-A。为避免把外部样例误当成正式模板,下面只展示“字段规划和核对责任”,不宣称每个分隔段在所有 Issue 中有固定长度或固定语义。

示意片段本例的解释项目必须确认
ABC虚构的型号或产品识别片段。对应 modelIdentCode 还是项目映射值;来源、长度、大小写和代码表。
29-10-05虚构的系统、分系统、组件层级路径。与 SNS 的节点、责任边界、型号配置和 DMRL 是否一致。
040A虚构的信息/组件/变体组合片段,用于展示需要拆分核对的区域。当前 Issue 的 assyCode、disassyCode、infoCode 等字段怎样组合,允许值和变体如何定义。
A虚构的差异或位置片段。实际对应 infoCodeVariant、itemLocationCode 或其他项目字段,不能凭字面猜测。

正式项目应把“示意片段”换成 Schema 和数据字典中的正式属性,再用代码表限定允许值。若规则要求无分隔符文件名或不同的显示形式,应在 DMC、文件名、DMRef 和 CSDB 中建立可追踪映射,而不是修改 DMC 语义来适应目录习惯。

常见 DMC 字段如何进入规则?

字段或对象应回答的问题推荐证据
modelIdentCode模块属于哪个型号或产品识别范围?多个供应方如何区分?型号清单、代码表、申请与变更记录。
systemCode、subSystemCode、subSubSystemCode模块在哪个系统层级,是否与 SNS 和责任边界一致?SNS 分解、节点责任表、DMRL 映射。
assyCode、disassyCode、disassyCodeVariant组件、拆装组件及其变体如何区分,是否可维护和复用?装配树、组件代码表、代表性 DMC。
infoCode、infoCodeVariant模块承载哪种信息,变体是否有稳定的业务含义?信息类型矩阵、Data Dictionary、代码表和 Schema。
itemLocationCode对象位置或项目定义的定位信息如何表达?项目规则、适用性/配置映射和样例校验报告。

字段名称只是检索和理解入口,是否必填、字段顺序、长度、取值、组合关系和允许扩展均由采用的 Issue、Schema、Data Dictionary、BREX 和项目规则决定。实际编制前应使用工具加载批准基线,避免按网页片段手工拼码。

DMC、标题、文件名、DMRL 和 DMRef 的关系

同一个模块的身份、内容和交付路径需要形成可追溯链,但每个对象承担的职责不同:

对象回答的问题不应承担的职责
DMC模块的结构化身份和编码关系是什么?不替代标题、内容、版本状态和适用性矩阵。
模块标题读者和编制人员如何理解主题?不替代可校验的编码和唯一身份。
文件名/路径源文件或交付包如何存放、传输和查找?不应悄悄改变 DMC 语义或破坏引用。
DMRL需要编制什么模块、由谁负责、处于什么状态?不替代正式数据模块和 CSDB 对象。
DMRef / PM出版物如何引用模块并按顺序和适用性组织?不把临时文件名当作已批准模块身份。

对本例,可建立一条虚构追溯链:DMRL-0237(液压泵更换需求)→ 示例 DMC → 程序类数据模块 → 安全模块和接口图引用 → PM/DMRef → 型号 A 交付包。每一环都应记录版本、状态和校验证据;示例编号不代表实际项目编号。

DMC 编码发布前检查清单

  1. 规则基线:确认 Issue、Schema、Data Dictionary、代码表和 BREX 是同一批准版本。
  2. 唯一性:检查 DMC 在当前 CSDB、历史版本和项目范围内不重复,变更有审批轨迹。
  3. 层级一致:确认系统码、组件码和 SNS 节点对应同一设备分解和责任边界。
  4. 内容匹配:检查 DMC、模块标题、信息类型、实际任务和引用对象没有互相矛盾。
  5. 适用性正确:确认型号、构型、序列范围和变体通过项目适用性规则筛选,不把配置写成临时编码。
  6. 引用可解析:扫描 DMRef、PM、媒体、代码表和相关模块,确认版本和交付包清单一致。
  7. 工具回归:用代表性描述、程序、零件和故障隔离模块执行 Schema/BREX 校验和目标环境预览。

常见问题

下面的 DMC 示例可以直接用于项目吗?

不可以。示例中的型号、系统码、信息码和变体都是虚构占位值,只用于展示字段规划和检查思路。正式编码必须以项目批准的 Issue、Schema、Data Dictionary、代码表和业务规则为准。

DMC 和文件名是一回事吗?

不是。DMC 是数据模块的结构化身份,文件名是存储或交付环境中的路径标识。项目可以建立映射,但不能让文件名变化破坏 DMC、DMRef、CSDB 和历史追溯。

DMC 中可以放设备序列号或发布日期吗?

不能随意放入。序列号、发布日期和软件版本是否属于 DMC 字段,必须由采用的规范和项目规则决定;通常应通过适用性、状态或配置管理表达,并保留稳定的模块身份。

制定 DMC 规则前要先做什么?

先确定产品型号、系统分解、信息类型、差异管理、SNS 映射、代码表、责任边界和复用策略,再用代表性模块试编并经过 Schema、BREX 和引用检查。

相关页面