ISH 条件发布引擎 · 实时生成

✈ B737NG MEL ATA 27 — 条件发布演示

飞行操纵系统(Flight Controls)最低设备清单 · R15 版 · 一份 DITA 源,按机队配置自动生成专属手册

📋 17 个 DITA 主题 🔧 4 个条件维度:MODEL / WINGLET / LAS / SFP ✈ 10 架飞机 → 4 种代表配置 → 4 份差异化手册
// 条件图例 — ISH 属性在机身上的物理位置
SFP 737-700 / -800 ① WINGLET — 翼尖小翼(有/无) ② LAS — 减速板卸荷系统(有/无) ③ SFP — 短跑道性能(仅 -800) ④ MODEL — 机型/机身长度(-700 / -800)

背景:为什么需要条件发布?

本 DITA 项目描述一批 B737NG 飞机的飞行操纵系统 MEL 放行条款(共 17 个主题), 但机队中 10 架飞机在机型(-700/-800)、翼尖小翼(WINGLET)、减速板卸荷系统(LAS)、 短跑道性能(SFP)等方面各有不同,导致每架飞机适用的具体条款存在差异。

传统方式需要维护 10 份独立的 Word 文档,每次 MEL 修订都要逐份更新,极易出错且工作量巨大。 ISH 条件发布引擎只维护一份 DITA 源文件,通过为每个内容块打上条件标签, 在发布时按机队配置自动生成各架飞机专属的手册。

10 → 1
份文档 归并为 单一信源
ISH 条件表达式示例(DITA Map 中的标注)
 MEL_ATA27_R15.ditamap
<!-- 单属性:仅适用于 -700 机型 --> <topicref href="topics/mel-27-08-04-flap-load-700.dita" ishcondition="MODEL=700"/> <!-- 复合 AND:-800 且非SFP --> <topicref href="topics/mel-27-08-05-flap-load-800-nonsfp.dita" ishcondition="(MODEL=800) AND (SFP=No)"/> <!-- NOT 语法:有翼尖小翼 但 没有 卸荷系统 --> <topicref href="topics/mel-27-13-02-stall-warn-winglet-no-las.dita" ishcondition="(WINGLET=Yes) AND NOT(LAS=Yes)"/> <!-- 嵌套 topicref:父级 (WINGLET+LAS) 与子级 MODEL=700 叠加 --> <topicref ishcondition="(WINGLET=Yes) AND (LAS=Yes)">   <topicref href="topics/mel-27-13-03-01a-700-weight-kias.dita" ishcondition="MODEL=700"/> </topicref> <!-- topic 内部 section 级过滤(SFP 两路分支共存于同一主题)--> <section ishcondition="(MODEL=800) AND (SFP=No)">非SFP操作程序</section> <section ishcondition="(MODEL=800) AND (SFP=Yes)">SFP操作程序</section>
条件 × 主题覆盖矩阵(4 种代表配置)
✔ = 保留 ✗ = 过滤删除 橙色标签 = 同一主题内按条件保留了不同的内部分支
主题 / 条款 BT001-700 无翼尖 BT004-700 翼尖+LAS BT006-800 无翼尖 BT008-800 SFP
通用条款(无 ishcondition,全部保留)
27-04-02A 后顶板LE DEVICES信号牌
无条件 — 全机队通用
✔✔ ✔✔
27-04-02B 前面板灯
无条件(内部按SFP分支)
非SFP分支非SFP分支 非SFP分支SFP分支
27-09 驾驶盘配平电门
(MODEL=700) OR (MODEL=800)
✔✔ ✔✔
按机型(MODEL)区分的条款
27-04-02-02 前缘缝翼指示(-700)
MODEL=700
✔✔ ✗✗
27-04-02-03 前缘缝翼指示(-800)
MODEL=800
✗✗ ✔✔
27-08-04 襟翼载荷限制(-700)
MODEL=700
✔✔ ✗✗
27-08-05 襟翼载荷限制(-800 非SFP)
(MODEL=800) AND (SFP=No)
✗✗ ✔✗
27-08-06 襟翼载荷限制(-800 SFP)
(MODEL=800) AND (SFP=Yes)
✗✗ ✗✔
按 SFP 构型区分的条款
27-07-01 自动减速板(非SFP)
SFP=No
✔✔ ✔✗
27-07-02 自动减速板(-800 SFP)
SFP=Yes
✗✗ ✗✔
按翼尖小翼 + 卸荷系统区分的失速警告条款
27-13-01 失速警告(无翼尖小翼)
WINGLET=No
✔✗ ✔✗
27-13-02 失速警告(翼尖小翼,无LAS)
(WINGLET=Yes) AND NOT(LAS=Yes)
✗✗ ✗✔
27-13-03 失速警告(翼尖+LAS)
(WINGLET=Yes) AND (LAS=Yes)
✗✔ ✗✗
↳ 27-13-03-01A NO.2 SMYD 空中限速(-700)
嵌套:父级(WINGLET+LAS) AND MODEL=700
✗✔ ✗✗
↳ 27-13-03-01B NO.2 SMYD 起飞限重(-700)
嵌套:父级(WINGLET+LAS) AND MODEL=700
✗✔ ✗✗
⚠ 27-13-03-02A/-02B(-800 嵌套子主题)仅在 MODEL=800 AND WINGLET=Yes AND LAS=Yes 时出现(如BT009/BT010),本演示未选入。
📊 主题总数 7 9 ⬆ 7 7
4 种代表配置 — 在线 HTML 手册 + 文件下载
每张卡片上的机身示意图会实时反映该机型的实际条件取值:翼尖小翼、卸荷系统面板与 SFP 标签仅在对应属性为 Yes 时点亮。
737-700基础构型
B-T001
Boeing 737-700 · 基础构型
7 条款
MODEL = 700 WINGLET = No LAS = No SFP = No

包含主题

27-04-02A 27-04-02B 27-04-02-02(-700缝翼) 27-07-01(非SFP) 27-08-04(-700襟翼) 27-09 27-13-01(无翼尖)
737-700翼尖小翼 + 卸荷系统
B-T004
Boeing 737-700 · 翼尖小翼 + 卸荷系统
9 条款 ⬆
MODEL = 700 WINGLET = Yes LAS = Yes SFP = No

包含主题(含嵌套子主题)

27-04-02A 27-04-02B 27-04-02-02(-700缝翼) 27-07-01(非SFP) 27-08-04(-700襟翼) 27-09 27-13-03(翼尖+LAS) 27-13-03-01A(限速) 27-13-03-01B(限重)
737-800基础构型
B-T006
Boeing 737-800 · 基础构型
7 条款
MODEL = 800 WINGLET = No LAS = No SFP = No

包含主题

27-04-02A 27-04-02B 27-04-02-03(-800缝翼) 27-07-01(非SFP) 27-08-05(-800非SFP襟翼) 27-09 27-13-01(无翼尖)
737-800短跑道性能 (SFP)
B-T008
Boeing 737-800 · 短跑道性能(SFP)
7 条款
MODEL = 800 WINGLET = Yes LAS = No SFP = Yes

包含主题

27-04-02A 27-04-02B(SFP分支内容) 27-04-02-03(-800缝翼) 27-07-02(SFP减速板) 27-08-06(-800 SFP襟翼) 27-09 27-13-02(翼尖无LAS)

🎯 条件发布的核心优势(以本 MEL 项目为例)

  • 单一信源,多份输出:17 个主题只维护一次,4 架飞机(乃至整支机队)的手册同时自动生成
  • 内容精确性保证:BT001 手册中绝不会出现 SFP 专属条款;BT008 的失速警告章节仅含"有翼尖、无LAS"一路——错误无处藏身
  • 修订一次,全队更新:MEL R16 修订只需更新对应 DITA 主题,重新批量发布即可,无需逐份 Word 文件手工修改
  • 嵌套条件支持:BT004 获得额外的 NO.2 SMYD 空中限速/起飞限重子主题(父级 WINGLET+LAS 与子级 MODEL=700 自动叠加过滤)
  • 段落级过滤:27-04-02B 前面板灯主题仅在顶层保留,但其内部的操作程序段落根据 SFP 条件各自输出不同内容
  • 多格式一键输出:同一批任务同时生成 HTML5(在线阅读)、DOCX(Word 打印);PDF 同样支持