S1000D 数据模块复用与引用怎么管理?版本影响和断链检查
S1000D 通过数据模块、出版物结构和媒体对象的引用,把一份受控内容复用于多个手册、型号或交付物。复用的价值在于减少重复维护,但引用关系也会扩大变更影响范围。稳定的标识、明确的状态、可追溯的版本和发布前断链检查,是安全复用的基础。
哪些对象可以复用?
复用对象不只包括正文数据模块,还可能包括出版物节点、图形、视频、音频、附件、术语、规则和适用性配置。不同对象的版本和审批方式可能不同,项目应为每一类对象定义权威来源、允许的引用方式和变更通知机制。
| 对象 | 常见复用方式 | 复用时要确认什么 | 典型风险 |
|---|---|---|---|
| 数据模块(DM) | 多个 PM 或任务通过引用使用同一份受控内容。 | 模块标识、版本、状态、语言、适用性和直接引用。 | 一次修改影响多个手册,或某个出版物引用了错误状态。 |
| 出版物结构(PM) | 在不同交付物或子出版物中引用已批准的目录节点。 | 目录上下文、读者、适用性、排序和交付范围。 | 目录层级或上下文不一致,读者路径出现重复或缺失。 |
| 图形与媒体(ICN 等) | 多个数据模块引用同一图形、视频、音频或附件。 | 媒体版本、格式、授权、热点、语言和清晰度。 | 替换媒体后热点错位、旧引用缓存或目标环境无法播放。 |
| 规则与代码表 | 项目中的模块、适用性和校验任务共享同一规则基线。 | 生效范围、来源、版本、审批和兼容性。 | 规则改变后大量旧数据出现错误,或不同团队使用不同代码含义。 |
| 术语与翻译资源 | 多个模块和语言版本使用统一术语或翻译记忆。 | 术语批准状态、语言、上下文和更新通知。 | 同一部件在不同页面名称不一致,影响检索和培训理解。 |
常见引用对象和标签
下表用于帮助项目人员理解引用关系的工作概念。实际可用元素、属性和约束取决于项目采用的 Issue、Schema、工具和业务规则,应以正式规范及项目配置为准。
| 对象/标签示例 | 工作概念 | 检查重点 |
|---|---|---|
dmRef、dmRefIdent、dmCode | 在出版物或内容结构中定位一个数据模块及其身份信息。 | 引用是否指向正确的 DMC、版本、状态和适用性。 |
pmRef | 在出版物结构之间建立引用或组织关系。 | 目标出版物是否存在、允许发布,目录上下文是否仍然成立。 |
| 媒体引用与 ICN | 从数据模块连接图形、插图、视频、音频或附件对象。 | 媒体对象、格式、路径/标识、版本、热点和授权是否一致。 |
| 外部对象引用 | 连接项目外部维护的文件、标准、接口或资源。 | 外部来源是否可访问、版本是否锁定、离线交付是否有替代方案。 |
| 交叉引用 | 从一个内容节点指向另一个段落、任务、数据模块或出版物入口。 | 链接文本、目标存在性、适用性筛选后是否仍可达。 |
标签名称只是关系识别的线索,不能代替 Schema 校验。引用“能解析”也不等于引用目标适合当前产品配置或已获准进入交付。
复用策略怎么选?
复用策略应同时考虑语义一致性、适用性边界、变更频率、语言版本、审批责任和交付周期。以下策略可以组合使用,关键是记录选择理由和来源关系。
| 策略 | 适用情形 | 优点 | 注意事项 |
|---|---|---|---|
| 直接引用共享对象 | 内容、适用性和批准责任完全一致。 | 维护一次即可同步到多个出版物,来源清晰。 | 任何修改都可能影响多个交付物,必须建立反向引用查询。 |
| 通过适用性复用 | 主体内容相同,但型号、批次或选装条件不同。 | 减少复制,保留一个受控内容来源。 | 需要测试条件组合、空内容和筛选边界,避免误显示。 |
| 派生新版本 | 结构相近但语义、责任、配置或交付边界已经不同。 | 可独立审批和发布,风险边界更清楚。 | 必须保留来源、差异和后续同步策略,避免分叉失控。 |
| 按交付物封装 | 客户需要固定快照、离线包或受控归档。 | 交付内容稳定,方便校验、部署和回退。 | 封装后源数据更新不会自动进入交付包,需重新发布。 |
不要为了避免一次影响分析就复制全部内容。复制会产生新的审核、翻译、媒体和同步责任;当共享对象确实不再具有相同语义或适用范围时,才将派生作为受控决策。
版本影响如何分析?
被复用对象发生变化时,先查询谁引用了它,再沿出版物、适用性、媒体、规则和输出格式分析影响。影响分析应形成对象清单和验证计划,而不是只在提交信息中写“可能影响相关页面”。
| 分析方向 | 需要回答的问题 | 建议动作 |
|---|---|---|
| 反向引用 | 哪些 DM、PM、交叉引用、语言版本和客户项目使用该对象? | 生成直接/间接引用清单,标出已发布、待发布和废止对象。 |
| 适用性 | 新版本是否改变型号、批次、选装件、条件或筛选结果? | 测试典型配置、边界配置和应当为空的配置。 |
| 媒体关系 | 文本、图形、热点、视频、音频或附件是否共同变化? | 检查媒体版本、路径、热点位置、清晰度和授权。 |
| 规则/工具 | Schema、BREX、代码表、转换器或阅读器是否会改变结果? | 比较校验、转换、渲染、检索和交互输出。 |
| 交付范围 | 哪些 PDF、IETP、离线包或培训材料需要重新发布? | 确定回归范围、通知对象、生效日期和回退包。 |
断链检查清单
断链检查应在源库、候选出版物和最终交付环境分别执行。源库中可解析的引用,经过适用性筛选、路径打包或格式转换后,仍可能在最终输出中失效。
| 检查阶段 | 检查项目 | 通过标准 |
|---|---|---|
| 对象存在性 | DM、PM、媒体、附件和外部对象。 | 每个引用都有唯一目标或被明确批准为可选外部资源。 |
| 身份与版本 | DMC/标识、修订、语言、状态和生效范围。 | 目标对象版本与当前基线一致,不引用草稿、废止或错误语言版本。 |
| 路径与打包 | 相对路径、大小写、文件名、索引和压缩包目录。 | 在目标系统或离线介质上打开路径不依赖作者本机目录。 |
| 适用性筛选 | 目标配置、边界组合和空结果。 | 适用内容显示,非适用内容被正确排除,目录不出现空入口。 |
| 格式转换 | PDF 书签/交叉引用,IETP 导航/检索/媒体。 | 转换后链接、锚点、媒体和检索结果仍可用。 |
| 最终环境 | 桌面、浏览器、离线阅读器、权限和缓存。 | 在交付目标环境中抽检通过,并有截图或日志记录。 |
对外部引用要额外记录来源、版本、访问条件和离线替代方案。不能访问的外部链接如果是交付必需内容,应在发布前解决,而不是把风险留给现场用户。
从复用设计到发布验收
- 建立对象清单:列出共享 DM、PM、媒体、规则、术语和外部资源,并记录权威来源。
- 定义复用边界:确认语义、适用性、语言、审批责任和交付范围是否真的相同。
- 选择策略:决定直接引用、适用性复用、派生版本或固定封装,并记录理由。
- 建立关系索引:保留正向引用和反向引用查询,能够从一个对象找到受影响的出版物。
- 实施变更:在隔离环境更新对象,生成新版本或受控修订,保留原对象和转换日志。
- 执行断链与影响检查:先检查身份/路径,再检查适用性、媒体、输出格式和目标环境。
- 更新发布基线:确认所有受影响交付物已重新生成或明确不受影响,并更新哈希、版本说明和通知。
建议保留哪些复用记录?
- 共享对象清单:对象标识、权威来源、当前状态、语言和适用范围。
- 引用关系清单:引用方、被引用方、关系类型、版本和生效基线。
- 复用决策记录:直接引用/适用性/派生/封装的选择理由、责任人和审批。
- 影响分析与回归记录:受影响出版物、配置、媒体、输出格式、测试样例和结论。
- 断链检查与发布证据:工具版本、日志、候选包、目标环境抽检、哈希和回退位置。
常见问题
复用数据模块是不是复制一份文件?
不一定。复用通常优先通过稳定引用指向受控的数据模块或媒体对象;只有在语义、适用性、版本或交付边界确实不同且项目批准时,才考虑派生或复制,并保留来源关系。
被多个出版物引用的数据模块修改后要检查什么?
应先找出所有直接和间接引用,再检查目录、适用性、媒体、规则、翻译、PDF/IETP 输出和交付环境。根据影响范围安排局部复核、相关出版物回归或完整发布验证。
怎样避免引用旧版本或草稿?
通过状态和基线控制可被引用的对象,发布前按引用解析到的对象版本、状态和适用性做检查,并把引用清单与发布编号一起归档。
断链检查通过就说明交付物完整吗?
不一定。断链检查主要证明引用目标可定位;还要检查目标内容是否适用、状态是否允许发布、媒体是否可见、筛选后目录是否完整以及目标格式是否可用。
共享媒体替换后,所有引用方都要重新发布吗?
取决于媒体变化和项目影响分析。若变化影响清晰度、热点、含义、适用性或输出结果,相关交付物通常需要复核或重新发布;仅影响未使用的对象时,可按记录缩小范围。