基于S1000D标准的线性出版系统的实现

2016-02-22 04:39吴奇峰
航空标准化与质量 2016年6期
关键词:样式手册出版物

吴奇峰

(中航工业综合技术研究所,北京 100028)

基于S1000D标准的线性出版系统的实现

吴奇峰

(中航工业综合技术研究所,北京 100028)

提出并设计实现了一个具有自主知识产权的基于S1000D标准的符合GJB 3968-2000需求的技术资料线性出版系统,该系统作为IETM技术资料编制平台的延伸,共用IETM数据模块,实现IETM数据模块翻译、线性出版、生成Word格式纸质手册等功能。

GJB3968;S1000D;线性出版;翻译器;数据模块

随着社会经济的不断发展,计算机的广泛应用推动了现代化信息技术的蓬勃发展,各行各业都在进行信息化建设,利用高科技的硬件设备和互联网络,提升自身的管理水平和竞争能力。“飞机不但要造得出,而且要买的起、飞得起、飞得好”,这正是航空装备“综合保障”的作用、价值和意义所在。信息化的综合保障正在成为设计院所、制造厂家、采购机关、使用部队等诸多组织的重要职责,目前我国的军用飞机综合后勤保障工作仍然不能脱离对纸质技术资料的依赖,而信息化的到来也对纸质资料的编制和出版提出了要求,研制更强大高效的技术资料线性出版系统,成为一项重要任务。

1 GJB 3968-2000《军用飞机用户技术资料通用要求》

GJB 3968是军用飞机用户技术资料的通用要求。该标准规定了军用飞机用户技术资料的项目及各项资料的主要内容,并规定了资料编制出版及交付的通用要求。

技术资料线性出版系统生成的出版物的版式、内容排版和布局需要符合GJB 3968对技术资料的出版要求。

2 S1000D标准

S1000D标准(International Specification for Technical Publications Using A Common Source Database)是一个采用通用资源数据库来创建技术文档的国际标准,可以用它对任何军用或民用的陆、海、空交通工具和设备制作技术文档。目前,S1000D标准在美国及北约的军事及民用领域有着广泛的应用。

基于S1000D标准的交互式电子技术手册(Interactive Electronic Technical Manual,简称IETM)是装备技术数据的新型载体,也是装备技术数据的主要表现形式,利用信息化手段对技术资料进行存储、管理,研制形成IETM按照S1000D生成的信息是以模块形式出现的,称为“数据模块”。数据模块定义为“技术出版物中最小的独立信息单元”。

技术资料线性出版系统需共用IETM的数据模块,将其导入线性出版系统并翻译出版为纸质格式手册。

3 系统需求

3.1 与IETM编制平台共用IETM数据模块

用户在IETM技术资料编制平台编制资料素材并且导出成DDN数据包,支持将数据包导入到线性出版系统,通过线性出版系统将DDN包的数据出版生成Word文档,最后将Word文档打印装订成纸质的手册。

3.2 符合GJB 3968需求

GJB 3968中列出了多种技术资料的内容结构、样式和版面设计,线性出版系统需符合其规定的多种多样的手册的出版需求。

3.3 高性能,高效率

国外类似的线性出版系统出版一本2 000页左右、内容包含图片表格等的手册需要时间大概在1h到1.5h之间,本系统出版相同内容的手册应将时间压缩在20min左右。

3.4 界面友好

支持通过可视化样式配置设置出版物格式,配置界面应没有繁杂的设置,各个模块的功能分工清晰,界面功能按钮等简洁明了;对于通用手册出版尽可能不需配置,基于模板直接出版即达到出版要求。

4 系统设计与技术框架

4.1 总体框架

线性出版系统使用典型的C/S三层模式结构,将系统分成相对独立的3层,即用户界面层、业务层和数据模型层。这种分层模式可以让开发人员只关注整个结构中的其中某一层,可以降低层与层之间的偶合性,有利于业务逻辑的复用,从而保证了整个系统具有良好的可维护性和可扩展性。系统的体系架构见图1。

图1 体系架构图

4.1.1 用户界面层

界面层使用微软推出的WPF技术开发用户界面,它是新一代的图形系统,运行在.NET Framework3.0及以上版本,为用户界面开发提供了一种全新的开发模式,使得界面显示和代码更好地得到分离。

4.1.2 业务层

业务层由业务逻辑实现、对外接口、服务调用等部分组成。

4.1.3 数据模型层

数据模型层即数据访问层,该层封装了系统中所有的数据库读写访问操作。在线性出版系统中使用了微软推出的ADO.NET Entity Framework框架,该框架以Entity Data Model(EDM)为主,将数据逻辑层切分为3块,分别为Conceptual Schema、Mapping Schema与Storage Schema三层,其上还有Entity Client、Object Context以及LINQ可以使用,封装了增、删、改、查方法,很大程度上提高了开发效率,使得访问数据库异常简便。

4.2 系统功能组成

系统分为公共功能模块和项目功能模块两大类,其中公共功能模块是指在不需要打开项目的情况下,登录的用户能够使用的功能,包括维护手册类型、翻译规则模板管理、样式模板管理、用户管理和修改密码。项目功能模块包括目录设置、出版物设置、样式设置、翻译规则设置、图片设置和项目数据模块设置。

系统功能组成见图2。

· 项目管理:线性出版系统以项目的方式管理多种类型的手册,每种手册可以包含多个目录,而每个目录又可以导入多个出版物,这样的组织方式,有利于更有弹性地让用户根据实际情况去组织和管理众多不同类型或者是多个版本的出版物。

· 手册类型维护:维护手册类型,定制每个项目中能够包含的手册种类,这些种类通常是GJB 3968中提到的技术资料种类,因为系统是根据GJB 3968而设计的,当然为了让系统更具灵活性,用户也可以自定义超出GJB 3968的技术资料类型。此模块为“项目管理”模块服务,方便用户按实际需要定义手册类型。

图2 功能组成图

· 样式模板管理:样式管理是系统的核心模块之一,它包含了所有GJB 3968中要求的特定内容的出版样式(字体、字号、颜色、对齐方式等),并且允许用户根据需要对样式进行调整。样式模板为出版物出版时使用的样式提供模板,方便用户在出版时从模板导入需要的样式,而不需要去重复相同的工作,提高工作效率。

· 翻译规则管理:翻译规则它负责控制编制好的内容是否展示出来,如何展示,如何排版布局,它也是系统的核心模块之一。

· 用户管理:提供对使用该系统的所有用户的管理,包括增、删、改等功能。

· 密码修改:提供让当前登录用户修改自己的密码的功能。

· 目录设置:实际上是出版物(PM)结构设置,包括调整出版物的结构,正文前、正文和附录的设置;设置内容包括名称、SNS、章节(成章或者成节)、章节起始页的方式(奇数页或者偶数页开始等等),章节的起始页码、页号组、是否显示标题和是否无效(不出版)等等。

· 出版物设置:设置出版物的编码类型,是标准编码还是非标准编码,正文的编号样式、目录生成样式、图、表号和页码的格式、附录编号规则、目录样式设置、数据模块内部元素编号规则等,其中数据模块内部元素编号规则包含了S1000D标准中的7类数据模块的元素编号设置,用于满足不同类型数据模块内部的编号样式的需求。

· 样式设置:配置出版物的样式,包括字体、字号、对齐方式、标题、列表、表格、多级编号等;用户可以从模板导入样式设置,稍作修改就能完成这步工作继续下面的工作,也可以将当前的配置保存为模板,供其它相似的出版物出版时导入使用 。

· 翻译规则设置:提供了配置和管理翻译规则设置功能,根据GJB 3968的样式要求,数据模块中各种元素要求展现成具有一定格式和样式的内容,系统将这些抽象出来对特定元素进行转换翻译的类叫做翻译器,数据模块元素与翻译器的对应关系叫做翻译规则,元素与翻译器的对应关系不是固定不可变的,系统允许对数据模块中各种元素所使用的翻译器进行指定配置,以达到相同名称的元素在不同的上下文中能够实现不同展现的效果。

· 图片设置:由于数据包中的部分图片可能原本分辨率比较大超出了手册版面的高宽大小,要是不提供调整图片大小就按原尺寸出版的话,部分图片的内容将可能显示不全,所以此功能模块提供了让用户根据需要及时调整图片大小的功能。

· 项目数据模块管理:提供对特定的数据模块标识设置相应的SNS(标准编码系统)、页号组和出版物类型属性的功能;除此之外还可以将这些设置导出到某一出版物的设置,或者从某一设置好这些信息的出版导入,从而减少重复操作。

· 出版:生成出版物,在前面的设置都完成后,交由翻译引擎执行出版,经过对原始出版物的预处理、翻译(包括翻译器的实例化、执行,样式对象的实例化、应用)和后处理等复杂的流程,最终生成Word 2007格式的文档。

5 系统数据存储设计

系统数据库使用微软的SQL Server 2008R2。

导入的DDN数据包则使用FTP上传到服务器存储于文件系统中。

5.1 系统数据库

· 用户表(Users):存储系统中所有用户的基本信息;

· 翻译器表(Translator):存储系统中所有翻译器的信息,包括实例化时需要使用到的库文件名称、类型名称(包括命名空间)、标准信息等;

· 翻译器模板与翻译规则映射表(Translate TemplateRuleMap):存储翻译模板中对应的翻译规则信息,这些翻译规则主要是元素的Xpath和相关的翻译器标识;

· 翻译器模板表(TranslateTemplate):存储翻译模板信息,主要包含翻译器模板的基本属性;

· 样式模板表(StyleTemplate):存储样式模板信息,主要包含样式模板的基本属性;

· 出版物结构表(PublicationSetting):存储出版物的结构信息,包括出版物树状结构,每个节点的属性设置等;

· 出版物规则设置表(PublicationRuleMap):存储出版物的正文、附录、数据模块内部元素的编号样式等设置;

· 出版物表(Publication):存储出版物信息,主要包含出版物的基本属性;

· 项目表(Project):存储项目信息,主要包含项目的基本属性;

· 手册类型表(ManualType):存储手册类型信息,主要包含类型名称和版本等基本属性;

· 手册表(Manual):存储手册信息,主要包含手册的手册类型和所属项目等基本属性;

· 数据模块信息表(DMInfo):存储数据模块信息,包括UDMC、技术名、信息名、SNS、页号组等;

· 数据模块/ICN映射表(DMIcnMap):存储数据模块与ICN之间的对应关系,以区分哪些ICN属于哪些数据模块;

· 书签设置表(Bookmark Variant Defne):存储书签设置信息,主要包含书签名和书签描述。

6 关键技术

6.1 翻译引擎

翻译引擎在系统中占据着举足轻重的作用,是系统的核心;而出版器和翻译器更是系统的核心部件,导入的数据通过翻译引擎的执行生成Word文档,获取我们最终需要的手册。

翻译引擎执行的步骤大致分3个步骤(翻译引擎结构图见图3)。

第1个步骤是前处理,主要是初始化一些对象和服务,如“出版器上下文”、“编号规则对象”、“翻译器提供者服务”、“图像处理服务”、“书签生成服务”、“样式服务”和“代码表服务”等。

第2个步骤是翻译,经过前面步骤的初始化,出版器、翻译器和服务都已经初始化完毕,翻译引擎调用出版器执行出版,出版器调用相应的翻译器服务获取需要的翻译器并且调用翻译器执行翻译,各翻译器根据数据模块文档的结构不断地遍历,调用相应的翻译器执行翻译,在翻译过程中调用样式服务给翻译的内容应用样式,调用图片服务给图片计算大小和缩放比例等让图片能够在有限的版面中恰到好处地展现出来。

第3个步骤是后处理,执行完前面的步骤后,文档已大致生成,但是有些元素和操作需要在后处理完成,在前面的步骤是无法完成的。比如页码、图号、表号、引用段落的编号等,这些元素需要在Word程序加载并且展示Word文档后才能计算得出,所以在这一步骤,系统会调用Office程序提供的COM接口操作Word程序完成页码、图号、表号等的计算,然后更新、刷新文档内容,至此Word文档生成操作全部完成。

图3 翻译引擎结构图

6.2 翻译器

符合S1000D标准的数据包,是一系列标准的XML文档,其内容以XML文本形式描述并存储。通过元素名可以识别其内容的类型,如:“Paragraph Content”表示的是一个段落,“”表示的是一个标题。

翻译器是一种设计为将一种类型的内容从一种表现形式转换到另一种表现形式的程序,如上面例子中的段落,在原始的xml文档中并没有规定其表现形式,因为上面并没有任何字体、字号大小、颜色、缩进等的信息,但是通过翻译器的翻译后,我们看到的内容将会是一段直观易懂的文字,其相应地应用了字体、字号、颜色、行距、缩进等(见图4)。GJB 3968规定了多种手册的类型,而这些不同类型手册的内容展现形式也不尽相同,再加上S1000D中元素的多样化,每种元素可能对应不同类型手册中不同的内容,因此多样化的手册内容需要许多不同的翻译器协同完成翻译工作。在本系统中,翻译器的数量相对比较庞大,所有翻译器都设计为从相同的基类—“BaseNodeTranslator”派生,这个抽象基类实现了大部分翻译器的相同功能,其中很重要的一点是实现了翻译器能够根据文档结构递归遍历翻译节点的功能。

以下是构成翻译器的主要方法:

PreTranslate(前翻译):公共的虚方法,用于执行一些翻译前的处理,比如删除不需要的节点,调整xml文档顺序结构,初始化翻译器内部需要使用到的类或者服务等,需要执行预处理的翻译器可以重写此方法;

TranslateInternal(翻译):受保护的抽象方法,此方法是翻译器的主要方法,负责将输入的xml片断解析转换生成相应的Word文档片断,并且应用上样式和编号然后输出;其派生类都必须实现此抽象方法;

Post Translate(后翻译):公共的方法,用于组织翻译流程,其内部实现主要先后调用执行了“PreTranslate”、“TranslateInternal”和“PostTranslate”方法;

PostTranslate(后处理):公共的虚方法,主要是翻译后对输出的Word文档做后期处理,释放对象回收资源等,需要执行预处理的翻译器可以重写此方法。

图4 翻译器翻译示例

7 结束语

本文设计和实现基于S1000D标准符合GJB 3968需求的技术资料线性出版系统,适用于各种型号飞机和武器设备的手册、说明书、图册等技术资料纸质手册的出版,完全符合GJB 3968标准要求。目前该系统已经在国内多个型号飞机正式应用。

(编辑:雨晴)

T-65

C

1003-6660(2016)06-0046-05

10.13237/j.cnki.asq.2016.06.011

猜你喜欢
样式手册出版物
CPMF-I 取样式多相流分离计量装置
CPMF-I 取样式多相流分离计量装置
取样式多相流分离计量装置
2018年向全国青少年推荐百种优秀出版物目录
第六届中华优秀出版物奖获奖名单
这是巴黎发布的新样式
当代贵州期刊传媒集团系列出版物
首届向全国老年人推荐百种优秀出版物公布
School Admission择校
兔兔自杀手册