马永起,蒙立荣,余 杰,吴家菊,程 铮
(1.中国工程物理研究院计算机应用研究所,四川 绵阳 621900; 2.国防科技大学 计算机学院,湖南 长沙 410073)
面向IETM的PDF文档发布模型研究*
马永起1,蒙立荣1,余 杰2,吴家菊1,程 铮1
(1.中国工程物理研究院计算机应用研究所,四川 绵阳621900;2.国防科技大学 计算机学院,湖南 长沙410073)
针对IETM中PDF文档发布需求,提出了技术出版物模型,并对技术出版物模型进行延伸,提出了PDF文档发布模型。该模型对技术出版物结构树进行逻辑转换,生成数据模块顺序清单,依据清单将所有数据模型文件合并为一个XML文档,并结合对应的XSL样式,通过XEP工具生成PDF文档,实现了IETM中从技术出版物直接生成PDF文档。
IETM;技术出版物模型;PDF文档发布模型;XEP
技术资料和手册是现代武器装备系统的重要组成部分,与武器装备系统的操作使用、维护管理以及人员技能密切相关。IETM(Interactive Electronic Technical Manual)通过对装备的大量书面技术材料进行数字化,形成电子化文档,并加入了表格、图像、图纸、声音、视频、动画等内容丰富、形式多样的信息技术,为终端用户提供交互式电子屏幕显示,其优越性越来越明显[1]。根据 GJB6600 和S1000D[2]标准规定,XML 在 IETM 中可以发布成 HTML格式和 PDF 格式发布[3]。文献[4]中为了更好地进行HTML格式和PDF格式发布,提出在表示层使用XSL技术代替JSP技术,实现了IETM发布系统,但未说明PDF发布模型。文献[5]和文献[6]使用了DocBook XML 发布模型,实现了在IETM中PDF文档发布,其中DocBook XML 发布模型主要基于XML和XSLT生成中间文档DocBook,再基于DocBook和DocBook FO XSL生成PDF文档,但文献中对IETM出版物模块没有进行数据建模,也未描述IETM出版物与DocBook XML 发布模型的衔接关系。文献[7]中主要面向HTML格式的发布,提出了通过出版物模块(Publication Module,PM)目录树进行组织内容和发布显示,但文中未具体说明出版物模块目录树的模型表示。本文为解决IETM中PDF格式文档发布,首先对技术出版物模块进行建模,然后以该模型为基础,提出了PDF文档发布模型。
在IETM中XML和XSL技术是发展主流,XML表示内容,XSL描述呈现的样式[8],在文献[9]中描述了XML技术在IETM中如何应用。将XML文件转化为PDF文件,需要利用样式表。样式表为XML文件添加表示。将内容(XML数据)与表示(样式表)分离,是“模型-视图-控制器”(MVC)成功的范例[10]。数据(模型)、数据如何展示(视图)和它们之间框架(控制器)的分离有助于资源的最大重用。使用这个技术,XML数据仅仅是数据,样式表能够将数据转化成不同的格式[10],将数据的维护与表示的维护分离开来。
基于MVC框架,控制器可以是一个样式表处理器,用于提取一个XML文件和一个样式表生成一个结果。XSL样式表包括两个部分[10]:提供一种机制将一个XML文件转化为一个新的XML文件(XSLT),提供一个词汇表用于样式化对象(XSLFO)。在XSLT中用模块规则规定样式表处理器怎么转化为其他文件。XSLFO是一种编页码置标语言,在XSL中它是定义的形式化词汇。PDF文档发布时,将XML文件和FO.XLS文件转化为XSLFO文件,并对XSLFO文件进行进一步转化,生成PDF文档。XML文件和XSL样式表转化为XSLFO文件原理如图1所示。
图1 XSLT处理引擎转换原理
一个样式表引擎(XSL引擎)将一个原始的XML文件装在一个DOM源树中,并通过样式表中给定的命令对文件进行转化[10]。在规定这些命令时,样式表运行Xpath表达式置于源树的参考部分,并将信息置于结果树中,结果树形式化后就产生了XML结果文件。对结果文件一般需要进行后处理,利用后处理器转化为不同的格式(如PDF)。在文献[11]提到了基于XML和XSL样式转化HTML的流程,文献[12]提出了基于XML和XSLT的模型驱动构架。
由XSLFO文件生成PDF文档分为以下三个步骤,如图2所示:
(1)解析:读取XSLFO文件,在内存中存储XSLFO文件;
(2)格式化:给XSLFO文件添加格式化信息,生成新的XML文件,以便以后进一步处理;
(3)生成文档:将XSLFO文件转化为期望的文件格式。
图2 XSLFO文件生成PDF文档过程
XEP[13]是一个将XML数据转化为PDF文档的Java类库。它可以将XMLFO文件或者XML以及对应的XSL样式表单转化为PDF文档。它内置了XSLT处理器来处理XML和XSL文件,把XML和XSL文件转化为XSLFO文件。XSLFO文件可以通过XEP Engine引擎生成PDF文档。
根据ASD S1000D国际规范,在IETM中编著的技术出版物以数据模块(Data Module,DM)为基本信息单元来组织技术信息,以公共源数据库(Comment Source Data Base,CSDB)管理数据模块和相关信息对象,以出版物模块组织技术信息的发布[7]。研究基于IETM的PDF文档发布技术,首先必须对技术出版物进行建模,通过模型描述该技术出版物的业务逻辑和内容;其次,基于该技术出版模型研究PDF文档发布模型,实现IETM技术出版物的PDF格式发布。
一般情况下,技术出版物的构成由章、节、正文组成,它可以抽象为由若干个“单层结构”组合组成,每个“层次结构”由一个父亲和从属于父亲的一个或多个孩子组成,技术出版物构成如图3所示。
图3 技术手册构成
以图3所示的技术出版物为例,技术出版物作为最上层的父亲是一个技术手册,它由第1章、第n章两个孩子组成。技术出版物同第1章、第n章组成一个“单层结构”。图3中,第1章对于技术出版物来讲是孩子,但它对于第1节、第n节来讲又是父亲,并一起组成一个第二个层次的单层结构。同理,第1节同Process0、Process1,Process0同数据模块DM(文本)、数据模块DM(图形)、数据模块DM(链接)又组成位于不同层次的单层结构。任何一个技术手册都是这样由无数个“单层结构”组成的。父亲同孩子的关系是唯一的,如果章节不同,将视为有不同的单层结构。技术出版物数据模型如图4所示。
图4 技术出版物数据模型
模型描述如下:
输入:技术出版物id
输出:技术出版物结构树
(1)根据技术出版物id,在目录层次结构中判断该节点是否是根节点,如果该节点的父节点pid为空则该节点为根节点,获取根节点的目录层次标识id,执行步骤(2),否则返回技术出版物结构树为空。
(2)根据根目录层次标识id,在目录层次结构中判断根节点是否存在子节点,如果根节点存在子节点,则获取根节点的所有子节点,对根节点的所有子节点循环执行步骤(3),当所有子节点循环完毕后返回技术出版物;否则将根节点添加到技术出版物结构树中并返回技术出版物结构树。
(3)根据节点的目录层次标识id在目录层次内容中判断该节点是否为叶子节点。若是叶子节点,则将该节点以及先辈节点添加到技术出版物结构树中;否则取得该节点的目录层次id后执行步骤(4)。
(4)根据节点的目录层次标识id获取该节点的所有子节点,对该节点的所有子节点循环执行步骤(3)。
为了能在IETM中发布PDF文档,本文采用XEP工具包来实现PDF文档的发布。XEP可以将XML文档以及对应XSL样式文件生成为PDF文档。所以,需要构建一个模型将技术出版物结构树转化为XML文档。由于技术出版物结构树包含了技术出版的目录层次结构信息,在生成XML文档过程中需要保持内容上的先后顺序,这样才能保证PDF文档内容先后顺序的正确性,否则会出现内容先后顺序颠倒的情况。
图5 PDF文档发布模型
模型中最重要的是通过技术出版物结构树生成数据模块顺序清单,当获得到数据模块顺序清单后,从数据库读取所有XML文件,如数据模块清单顺序为DMO、DM1、…、DMN,对应XML的文件为DM0.XML、DM1.XML、…、DMN.XML。将所有的数据模块XML文件合并为一个数据模块XML文件DM.XML。DM.XSL不是模型产生的文件,它是与DM.XML相对应的样式文件,由XSL样式文件编写者提供。
模型描述如下:
输入:技术出版物id
输出:PDF文档
(1)根据技术出版物id,在目录层次结构中判断该节点是否是根节点,如果该节点的父节点pid为空则该节点为根节点,获取根节点的目录层次标识id,执行步骤(2),否则返回PDF文档为空。
(2)根据根目录层次标识id,在目录层次结构中判断根节点是否存在子节点,如果根节点存在子节点,则则获取根节点的所有子节点,对根节点的所有子节点循环执行步骤(3),当所有子节点循环完毕后返回数据模块顺序清单,执行步骤(6);否则返回PDF文档为空。
(3)根据节点的目录层次标识id在目录层次内容中判断该节点是否为叶子节点,若是叶子节点,则执行步骤(5);否则取得该节点的目录层次id后执行步骤(4)。
试验1:毒饵喷撒机挂接在JDT-654型拖拉机后,在发动机空载情况下,分别操纵力、位调节手柄升降毒饵喷撒机10次(升降角度范围0~36°),试验次数2次,记下试验数据。
(4)根据节点的目录层次标识id获取该节点的所有子节点,对该节点的所有子节点循环执行步骤(3)。
(5)判断该叶子节点是否为数据模块,若是数据模块,则将该节点添加到数据模块顺序清单中;否则该节点不添加到数据模块顺序清单中。
(6)根据数据模块顺序清单循环生成XML文件列表。
(7)将XML文件列表中的所有XML文件合并为一个XML文件。
(8)以XML文件和XSL文件作为输入,以XEP工具包为函数,生成PDF文档。
本实验采用Java语言开发,开发工具为MyEclipse 10.0,表示层采用MiniUI 3.0,数据库为Oracle 11g。
该实验的主要目的是验证模型的技术可行性,验证模型能否支持在IETM中PDF文档的发布,准备的数据如表1~表4所示,DMC是数据模块的唯一标识码[15]。
表1 技术出版物表
表2 目录层次结构表(SNS)
表3 目录层次结构内容表(SNS-DM)
表4 数据模块表(dm)
因为XSL文件比较多,这里省略。实验结果显示PDF文档可以正常发布。与文献[5]和文献[6]相比,该模型都能满足技术可行性要求,支持在IETM中进行PDF文档发布。
测试环境:操作系统为Windows 7旗舰版64位;CPU为core i5-3470,主频为3.2 GHz;内存为4.0 GB。在文献[5]给出IETM发布系统性能对比,如表5所示。
表5 IETM 发布系统性能对比
因为文献[5]中对比项为特定XML文件,本文没有该XML文件,但是为了进行比较,本文以XML文件大小为对比项进行性能对比,性能对比分别按文件步进大约为8 KB、17 KB、74 KB以及较大数据进行了性能测试,性能测试结果如表6~表9所示。
通过实验表明,本模型能支持发布的XML文件最大约为7 511 KB,发布的PDF文档最大页数为3 070页左右。文献[5]中性能测试数据比较少,测试所使用的XML文件大小比较小,而且XML文件本文不一致,故本文只能进行大概的性能数据比对。经过比较,本文所使用PDF文档发布模型在性能要优于文献[5]、Bridge工程转换工具、martavioniscs 转换工具的发布性能。
表6 按文件步进大约8 KB时PDF文档发布性能
表7 按文件步进大约17 KB时PDF文档发布性能
表8 按文件步进大约74 KB时PDF文档发布性能
表9 较大数据时PDF文档发布性能
本文提出的PDF文档发布模型可以满足IETM中PDF格式文档发布技术可行性要求,性能较好,能支持单个文件上千页的发布。不足之处是:(1)基于技术出版物模型生成数据模块顺序清单时,不能反映出章节正文等层次结构,即不能反映数据模块是属于哪个章哪一节,这将导致数据模块的章节划分任务传递到XSL样式编写人员身上,而且样式编写人员只能依靠人工对比进行划分;(2)技术出版物与XSL样式文件强耦合, 技术出版物内容或章节层次改变后,相应的XSL也要跟着改变,否则无法正确地生成PDF文档内容;(3)当XML文件大于7 511 KB时,经常出现无法正常发布的情况。下一步将对模型继续优化,设计通过基于技术出版物模型生成具有章、节、正文层次结构的PM.XML,生成的PM.XML文件满足PM.XSD要求,在PM.XML中可以使用到数据模块与章节结构挂接起来,针对PM.XML文件编写一套XSL样式文件,解决本文提到PDF文档发布模型的缺点。
[1] 徐宗昌. 基于公共源数据库的装备IETM技术[M]. 北京:国防工业出版社,2014.
[2] TPSMG. ASD S1000D: international specification for technical publications utilizing a common source database,Issue 2.3[S]. 2007.
[3] 李万勇,许丰娟. 基于Docbook标准的IETM发布平台[J]. 软件,2014,35(5):111-113.
[4] Wang Tao,Jiang Lili. Research on IETM publishing system based on MVC pattern[C]. Wase International Conference on Information Engineering,IEEE,2010:129-132.
[5] 李红静. 基于S1000D标准的IETM发布系统研究与实现[D]. 成都:电子科技大学,2014.
[6] 石景恺. IETM发布系统设计与测试[D]. 成都:电子科技大学,2015.
[7] 雷育生,胡梁勇,王炼.IETM数据资源组织与发布研究[C].全国信息管理与工业工程学术会议, 2008.
[8] Liang Weijie,Jia Jinna,Cai Liying,et al. A survey of common technology and data model standard of equipment IETM[J]. Advanced Materials Research,2014,998-999:553-557.
[9] Sheng Wenping,Wang Ruiqi,Lin Yu,et al. Application and research of XML technology in IETM[J]. Advanced Materials Research,2012,424-425:1062-1064.
[10] DOCONTA M C,OBRST L J,SMITH K T,等. 语义网:XML、Web服务和知识管理的未来[M]. 岳高峰,刑立法,孙文峰,等,译. 北京:中国科学技术出版社,2009.
[11] Huang Guoliang,Jiang Lili. Research on IETM Data processing based on XML[C]. International Conference on Electrical and Control Engineering,IEEE,2010:2941-2943.
[12] 於良伟,袁泉,霍剑青,等. 基于XML和XSLT的模型驱动构架[J]. 计算机工程,2010,36(6):49-51.
[13] XEP Engine[EB/OL].(2015-09-25)[2017-06-20]http://www.renderx.com/tools/xep.html.
[14] 许彩,胡柏青,罗银波. 基于GJB6600的IETM通用开发平台设计研究[J]. 舰船电子工程,2012,32(11):81-83.
[15] 高万春,杨彦明,张锐丽. CGM智能图形在IETM中的应用研究[J]. 计算机与现代化,2013(3):179-183.
Research on PDF document publishing model in IETM
Ma Yongqi1,Meng Lirong1,Yu Jie2,Wu Jiaju1,Cheng Zheng1
(1. Institute of Computer Application,CAEP,Mianyang 621900,China;2. School of Computer,National University of Defense Technology,Changsha 410073,China)
Approach to the requirement of the PDF document issuing in IETM,this paper proposes the model of technique publication,and proposes the model of PDF document issuing based on the technique publication model. The model converts the tree of technique publication structure into the sequence list of the data module,combines all DMs into one XML file based on the sequence list,and corresponding to the XSL style,generates PDF file by XEP kit.
IETM; techique publication model; PDF document publishing model; XEP
NSAF联合基金资助项目(U1630115)
P315.69
A
10.19358/j.issn.1674-7720.2017.24.025
马永起,蒙立荣,余杰,等.面向IETM的PDF文档发布模型研究J.微型机与应用,2017,36(24):87-91.
2017-06-21)
马永起(1986-),男,硕士,主要研究方向:交互式电子手册,装备综合保障。
蒙立荣(1985-),男,硕士,主要研究方向:交互式电子手册,装备综合保障。
余杰(1982-),男,博士,主要研究方向:软件理论与软件工程。