民用航空发动机主制造商给客户提供保证航空器持续适航和安全运营的技术出版物,是适航规章要求,也是客户要求。世界上各OEM都采用符合欧洲航空航天与防务工业协会(ASD)的S1000D规范的交互式电子技术出版物(IETP),用于提供给航空公司和大修厂,保证航空器的持续适航和安全运营。在S1000D规范中,数据模块是技术出版物的最小单元,基于国际标准的Schema用XML语言编写,根据需要将数据模块组合成册,也就是广义的技术出版物。出版物贯穿产品的全生命周期,出版物的更改维护至关重要,适航法规要求对出版物的修改要进行更改标记,技术出版物业务规则也规定了更改标记样式。
随着交互式电子技术出版物(IETP)的迅速发展,行业内多采用可扩展标记语言(XML)格式支撑技术出版物的数据存储和交换。可扩展标记语言格式能够灵活转换为其它具有易于阅读和/或操作的格式的电子技术出版物文件,如超文本标记语言(HTML)格式以及可携带文档格式(PDF)。
一般而言,一台航空器的数据模块有大约三万个,由于设计更改和使用过程中的客户意见反馈,出版物数据模块需要频繁更改,为了让使用者清晰识别更改内容,需要进行更改标记,也就是对更改内容进行更改标记的可视指示。技术出版物业务规则也规定要对数据模块更改内容进行更改标记。传统的更改都是手动进行更改内容记录,并且在XML语言中手动对更改内容做标记。这样会导致出版物编写者工作量巨大,同时也会由于人为误差导致更改标记遗漏甚至出错。
因此,如何避免人为误差导致的更改标记漏标或者错标是迫切需要解决的技术问题。同时,针对当前盛行的交互式电子技术出版物的更改标记样式和标记颗粒度的制定也是当前迫切需要解决的技术问题。
1 数据模块自动对比分类
按照S1000D 规范生成的SGML或XML中间格式文件以一种模块化的形式产生,这种模块化的文件称之为“数据模块”。数据模块是一个独立的数据单元,用来描述产品的一部分完整信息,在S1000D概念中,数据模块是描述信息的最小单元,它由两种类型的数据组成:技术类型的内容和非技术类型的内容。
一般而言,非技术类型的内容例如包含技术文档资料所有的管理信息,即文档资料的说明信息(如编号、题目、发行号、发行日期、语言等)和状态信息(如保密等级、适用性、技术标准、质量保证状态、更新原因等)。技术类型的内容包括文档内容主体,例如文字说明、表格和图例等。对“非技术类型的内容”的更改称为“非技术更改”,对“技术类型的内容”的更改称为“技术更改”。技术出版物数据模块标记分为技术更改标记和非技术更改标记,针对数据模块,能够在逐段落的基础上将上一生效版本数据模块与当前更改数据模块进行比对,以标识更改数据模块中针对上一生效版本数据模块的一个或多个技术更改或非技术更改。在针对更改数据模块的电子技术出版物文件被显示时,针对技术更改,应用更改标记以表示哪些内容进行更改;针对非技术更改,直接显示更改后的内容而不应用更改标记。
2 更改标记方法研究
S1000D 规范采用系统划分的方法将技术资料分解为一个个数据模块,这样不但有利于通过数据库对产品技术信息进行管理和维护,而且便于技术资料的生成和使用,因此它的信息处理方法具有更高的通用性。
在现有技术中,数据模块在后台是作为XML文档来存在的。当编写者在后台对某一数据模块进行更改时,该编写者需要打开该数据模块的XML文档进行修改。本文中 “数据模块”特指面向编写者的以XML格式存在的可编辑文档,而将面向读者的用于呈现的文档称为“电子技术出版物文件”(一般而言,为PDF或WORD文档)。
本文研究的模块自动标注更改标记的方法,包括:(a)接收将上一生效版本数据模块与更改数据模块进行比对的指令;(b)响应于该指令,在逐段落的基础上将上一生效版本数据模块与更改数据模块进行比对以标识更改数据模块中针对上一生效版本数据模块的更改,其中更改包括针对技术内容的技术更改或针对非技术内容的非技术更改;(c)在更改数据模块中对发生了更改的元素添加更改信息,更改信息包括指示更改状态以及更改类型的信息,更改状态指示技术更改或非技术更改,更改类型指示添加、修改或删除;(d)基于具有更改信息的更改数据模块,呈现电子技术出版物文件,其中在电子技术出版物文件中,针对技术更改,应用更改标记,而针对非技术更改,不应用更改标记。
3 基于XML的数据模块结构
数据模块以XML文档的形式存在,XML文档中的元素形成了一棵文档树。这棵树从根部开始,并扩展到树的最底端。根元素是所有其他元素的父元素。所有元素均可拥有子元素。父、子以及同胞等术语用于描述元素之间的关系。父元素拥有子元素。相同层级上的子元素成为同胞(兄弟或姐妹)。所有元素均可拥有文本内容和/属性。
当一个元素具有一个属性,它的基本格式为 <元素名 属性名=“属性值”/> 。如果一个元素具有多个属性,则它的基本格式为:<元素名 属性名=“属性值” 属性名=“属性值”>。如果一个元素具有文本,则它的基本格式为<元素名>文本<元素名/>。如果一个元素具有属性和文本两者,则它的基本格式为<元素名 属性名=“属性值”>文本<元素名/>。
图1中,<dmodule>可被视为根元素。在<proceduralStep id="stp-0001">中,“proceduralStep”为元素名,“id”为属性名,“step-0001”为属性值。诸如“id”等具有唯一标识功能的属性也可被称为索引。在<title>DESIGNATION</title>中,“<title>”为元素名,“DESIGNATION”为文本。
图1 XML结构样例
4 数据模块更改自动标记方法
通过设计一套自动化的方案,对数据模块的内容在XML语言中的段落标签的基础上进行自动对比,并且在生成电子技术出版物文件时,技术更改内容被自动应用更改标记来进行突出显示,而非技术更改内容被自动显示更改后的内容,而无需应用更改标记。对数据模块的更改包括例如对数据模块中的内容的新增、修改和/或删除。
4.1标记方案
通过设计一套自动化的方案,对数据模块的内容在XML语言中的段落标签的基础上进行自动对比,并且在生成电子技术出版物文件时,技术更改内容被自动应用更改标记来进行突出显示,而非技术更改内容被自动显示更改后的内容,而无需应用更改标记。对数据模块的更改包括例如对数据模块中的内容的新增、修改和/或删除。
当完成对上一生效版本数据模块的更改数据模块之后,在更改数据模块被保存之际,可自动向系统发出自动更改比对指令。上一生效版本数据模块的内容与更改数据模块的内容进行比对,以标识出更改数据模块中针对上一生效版本数据模块的更改。上一生效版本数据模块中的XML语言段落标签与更改数据模块中的XML语言段落标签进行对比,以针对段落标签所标记的段落中的内容进行自动比对。
当发现更改数据模块中被更改的元素时,进入标记进程。标记模块被配置为基于标记规则,针对相应对比结果和更改类型,在更改数据模块中对被标识为被更改的元素添加更改信息。
4.2标记规则
在被更改的元素处补充Change Mark信息,该信息包括指示更改状态的“changeMark”属性(指示更改属于技术更改还是非技术更改)以及指示更改类型的“changeType”属性。若更改为技术更改,则changeMark设置为1,若更改为非技术更改,则changeMark设置为0。若更改类型为新增,则changeType设置为add。若更改类型为修改,则changeType设置为modify。若更改类型为删除,则changeType设置为delete,并在原位置补全原有内容,即上一生效版本数据模块中该位置处的内容。更改标记呈现样例见图2。
针对数据模块中的每一段落来重复地进行比对并在发现更改元素时在更改数据模块中进行标记,直到最后一个段落比对完成。当针对整个更改数据模块进行完对比和标记进程后,生成了具有更改信息的更改数据模块。在呈现电子技术出版物时,基于更改数据模块中的更改信息,在电子技术出版物文件中针对具有更改信息的元素应用突出显示,以在视觉上告知读者该元素相较于上一生效版本数据模块进行了更改。
更改标记可包括突出显示标记(例如,针对“添加”和“修改”的更改类型)和删除标记(例如,针对“删除”的更改类型)。突出显示标记可包括以下中的一者或多者:高亮显示、更改颜色、下划线等等。删除标记可包括删除线。在生成电子技术出版物文件时,基于更改数据模块的更改信息,对于changeMark值为1且更改类型为“添加”或“修改”的元素(即,具有属性值“changeMark=1 changeType=add”或属性值“changeMark=1 changeType=modify”的元素),在电子技术出版物文件中呈现该元素的更改后的内容。
对于changeMark值为1且更改类型为“删除”的元素(即,具有属性值“changeMark=1 changeType=delete”的元素),在电子技术出版物文件中呈现该元素的原有内容(即,上一生效版本数据模块中的内容)。其中,将删除标记应用于该原有内容,使得读者可以明确知晓哪些内容被删除了。
对于changeMark值为0的元素(即,具有属性值“changeMark=0”的元素),在电子技术出版物文件中呈现该元素的更改后的内容。其中针对changeMark值为0的元素,不采用任何更改标记来进行标注。
图2 数据模块自动更改标记样例
5实施效果
技术内容的更改用户是最值得关注的内容,通过基于XML语言的技术出版物数据模块更改自动标记的方式,可节约经济成本和人力成本,避免人为误差导致的更改标记漏标或者错标,提供技术出版物编制质量,同时,可以使用户在阅读数据模块呈现文档时更加关注于技术内容的更改,而无需被非技术内容的更改分散注意力。
参考文献
【1】 Aerospace and Defense Industries Association of Europe,Aerospace Industries Association ,Air Transport Association. S1000D:International Specification for Technical Publications utilizing a Common Source Database (Issue 4.1) [S].2012
【2】 Aerospace and Defense Industries Association of Europe,Aerospace Industries Association ,Air Transport Association. S1000D:International Specification for Technical Publications utilizing a Common Source Database (Issue 4.2) [S].2016
【3】 马小骏 等,基于S1000D规范的民用飞机维修类技术出版物开发技术[M],科学出版社,2017
【4】 赵胜平,密井网条件下砂岩储层自动对比方法研究[J],内蒙古石油化工,2011(14):145-147