基于XML的电子公文交换和排版技术
发布时间:2008/4/1 11:56:20

跨越电子政务信息交换的屏障,实现数据合适的统一

------基于XML的电子公文交换和排版技术

北京红樱枫软件有限公司 总经理 金坚

一、引言
  随着网络信息技术的飞速发展,计算机技术已经从以计算为中心向以信息处理为中心的方向发展,信息成为计算机网络系统赖以生存的血液。在经济信息化和社会信息化的前提下,信息交换变得日益频繁。电子政务作为面向大众、面向社会提供高效率信息交换和服务的职能机构在这场变革中更是受到了全球范围内的广泛重视。
  我国政府的信息化建设起步于20世纪80年代,当时各机关企业开展了办公自动化工程,建立了内部信息办公网络。90年代,国家重点建设金税、金关、金卡等信息工程,我国的信息化发展取得了长足的进步。特别是互联网的出现,开始实施政府上网工程和电子政务工程。
  在电子政务中,电子公文交换占据着非常重要的地位。政府公文——顾名思义,就是我们通常俗称的“红头文件”,它在日常办公中担负着重要的作用。利用IT技术,把纸制的"红头公文"转换为数字信息,并通过Internet等网络媒介进行传输交换;把红头文件以电子数据的形式发送到使用者手中,实现网络化安全传输红头公文,提高政府的办公效率。

二、电子公文数据交换中的困惑
  在电子政务的建设中,特别在电子公文的制作和交换中,不同的历史阶段,不同的地区根据自己的需要采用了许多不同的文件格式作为自己的电子公文格式,这些丰富多彩的文件格式虽然为信息化建设发挥了重要的作用,但在更广泛的信息交换过程中产生了一个突出的问题,就是数据格式多种多样,这给信息的有效使用带来了障碍。虽然信息高速公路已经发展到百兆、千兆的速度,为及时得到数据扫清了障碍。但由于数据表现形式的不同,大量的数据无法应用,还是未能解决真正意义上的数据交换,信息孤岛依然存在。
  为了解决这个问题,一种方法是建立统一的信息规范,让大家都用相同的方法描述自己的数据,但这有困难,试想丰富的大千世界怎能用一种统一的形式来描述?另一种解决方法就是对数据格式进行转换,即因需而变,可见数据格式的转换,也是信息社会的一个必然产物。

三、建立统一的电子公文规范
  为了有效解决网络数据交换的问题,人们找到了XML。XML(eXtensible Markup Language,可扩展符号化语言)是由W3C于1998年2月发布的一种标准,它是SGML的一个简化子集,它以一种开放的自我描述方式定义了数据结构,在描述数据内容的同时能突出对结构的描述,从而体现出数据之间的关系。这样所组织的数据对于应用程序和用户都是友好的、可操作的。XML与HTML等其他文件格式不同,它可以精确地表现信息的各种含义,而且可以对信息进行多点操作。
  XML的出现给数据交换带来了一场革命,它将席卷全球成为下一代网络发展的基石。首先,让我们来看看XML都具备了那些特点。
1.XML具有非常优秀的数据描述特点
  XML是以文本形式来描述的一种文件格式,适合于各种平台环境的数据交换;XML使用了有意义的标记(Tag)使其可以保持原数据的意思和构造,从而保证了不同系统之间数据交换的灵活性;XML中用标记符号化的元素可以作为子元素形成数据嵌套,使数据可以很好的描述要表现内容的层次关系;XML的标记名和关系可以自由定义,使其成为“定义语言的语言”,也就是一种元语言。另外,就象我们使用的自然语言,讲这种语言的人多了就会把它当作初次交流时的工具。同样在特定的企业之间或在业界内归纳出一套标记集合,即约定用一套特定的XML应用语言作为交流工具是很有价值的。

2.使用XSL对XML进行可视化处理
  XSL Extensible Stylesheet Language是用于描述显示信息的规范。此标准不仅对XML电子文档的排版有着重要的意义,对XML电子表格的排版处理也将起到重要的作用。XSL直接描述了XML文档的显示方法。XSL提供的格式化规则非常复杂,但又是非常全面和精确。所以如果浏览器能够完全支持这种规则的话,那么XML文档的版面设计将会提高到崭新的高度。

3.其他众多规范的相继推出形成了完整文件描述体系
  W3C还在不断的开发关于XML的其他规范,其中描述XML链接功能的有XLink(XML Linking Language)和XPointer(XML Pointer Language)规范。Xlink可以指向多个文件,在数据模型化、数据交换、超文本链接等方面都能发挥重要的作用。Xpointer和Xpath则是用来寻址到文件中的内部位置,这里要求目标文件必须是XML文件。XML Base是类似于HTML中的<base>标记,用来决定相对地址的基地址。
  另外,为了使应用程序可以操作XML数据,W3C制订了两种API(Application Programming Interface)标准规范,分别称为DOM和SAX标准。用DOM开发应用程序,无论你使用什么语言,接口都是相同的。所以,不管什么用OS、用什么语言程序构造都相同,应用程序的开发就不会依赖于平台和语言了。SAX是一种事件驱动型API,实现了SAX功能的XMLProcessor是在解释XML数据的过程中,通知应用程序所发生的事件。应用程序根据发生的事件进行处理。DOM是W3C制订的API,而SAX是XML的开发人员讨论中的API。
  为了保证XML文件的安全传输,W3C为XML开发了一系列的安全保护规范。其中有能够安全地保存和发送机密数据的XML Encryption、电子签名标准XML Signature、以及对电子签名过的XML文件进行还原处理的Decryption Transform规范等。

4.XML可以应用在各行各业
  XML不仅在文档格式描述上是非常优秀的,在不同数据源进行交互、负荷分布在客户端的大数据量运算、将相同性质数据以不同的形式表现、以及网络代理对所取得信息的编辑、增减以适应个人用户的需要等方面都具有重要的意义。所以电子政务以及电子公文采用XML不仅仅是满足了文件传输和排版的需求,为将来同整个信息海洋的融通也打下了坚实的基础。

5.XML作为电子数据交换的标准——引人注目
  控制信息不是采用应用软件的独有形式,而是采用谁都可以看得懂的标记形式来表现,所以XML最适合作为数据交换的标准。在互联网非常发达的今天,几乎所有的办公室、甚至家庭都连接了互联网,数据交换的需求呈飞跃式发展,这也是 XML受人注目的原因。
  用XML可以对数据关系进行定义形成特有的标准,因此各行各业都在建立自己的行业化标准,用于网络上处理电子商务,应用XML把后台系统通过Web站点表现出来。XML还可以作为数据仓储,一个XML文件就是一个小的数据库,通过对数据关系的定义形成各种关系、属性的数据。实现数据交换、上下文检索、多媒体传输。在科技领域与其他专业应用程序方面XML的解决方案也非常多,数学、化学、钢铁等行业都建立了自己的应用XML的数据规范。
  我们国家也加速开发XML相应规范,在国家电子政务标准化指南中也明确的提出了公文体要基于XML电子公文格式规范。国内也在分工开发文字处理、电子表格和电子演示的XML标准。让用户可以随时将文档、电子表格、电子演示稿等存为通用的XML格式,不用为各家软件互不兼容而苦恼。但XML完整的功能和优点要得到体现则是长远的目标。

四、使用XSL实现对XML电子公文排版
  前面我们叙述了使用XML作为电子公文标准格式的各种优点,但是XML只是对数据的描述,如何使XML数据可视化是基于XML的电子公文排版的一个重要问题。
1.XML的排版方法
  对XML数据进行排版,通常有如下3种方法:(1)使用CSS样式表;(2)把XML转换成HTML用浏览器确认;(3)把XML转换成XSL-FO用XSL-FO的排版软件进行浏览和打印的方法。
  目前的大多数网页都是用HTML生成的,由于HTML功能上的限制,远远满足不了日益发展的网络信息表现的需求,人们迫切需要一个功能更强大的、能够更加丰富表现各种内容的排版形式,这就是用于XML排版的样式表规范XSL-FO。
    XSL(Extensible Stylesheet Language)规范是由W3C(World Wide Web Consortium)组织开发、确立的一种能够进行漂亮排版的规范。于1998年公布了最初的草案,此后,经过数次发布更新版,于2000年11月成为Candidate Recommendation(CR)版本。CR版的推出,进入了开发推广的阶段。W3C从2001年2月至7月对开发CR版的XSL排版引擎的企业/团体进行了适应性测试,制定了测试流程。由此,经过开发和评价、XSL 1.0 规格于2001年10月15日正式作为W3C的推荐标准。
  XSL规范由下列2部分组成:(1)描述XML树结构变换方法的规范;(2)如何规定页、段落、表格等排版对象以及颜色、位置等排版对象的性质,即定义什么样的元素和属性进行显示的规范。
  前者在打印和显示用途以外也会使用,所以从XSL规范独立出来称为XSLT规范。后者是对规定的元素进行格式化,所以称为格式化对象(Formatting Object),这个规范也称为XSL-FO。目前在许多地方经常将XSL和XSLT混同成一个词。但是我们可以认为XSL是两者的总称。
    W3C于2001年10月将XSL作为正式推荐规范以后,其强大的功能令世人所瞩目,各大顶尖公司都在投入力量开发相应产品,目前较好的产品是北京红樱枫软件有限公司协同日本母公司一起开发的XSLFormatter和美国RenderX公司的Xep,受到了W3C的推荐,期待着今后会有更大的发展。

2.XSL-FO功能说明
  通过使用XSL可以对XML文件实现下述专业排版印刷技术。

  • 页格式是由fo:simple-page-master来定义,页分为页眉、页脚、左右边框、本文(fo:region-before)等几个区域,各区域大小可以指定。
  • 在fo:region-body中可以指定段组,在段组中可以指定空段组
  • 不仅有标准西文的横书,还有中日文的纵书、阿拉伯和希伯莱等的从右向左书写的语言的文字书写方向、表格内文字的书写方向等都可以简单的进行设定。这些设定不仅可以对正文的全体,还可以对表的列或行的方向、子表格进行设定。
  • 使用fo:layout-master-set可以规定和替换各种其他格式(fo:simple-page-master)信息出现的顺序、右页格式的替换、第一页或最后页格式的替换等。
  • 可以自由控制文字配置(缩进intend、调整等justification)、变更行高、段落间隔等。
  • 使用fo:marker、fo:retrieve-marker可以进行记事等功能的排版。
  • 用fo:footnote制作脚注、用before-float在页开始配置对象。
  • 用side-float功能可把图形配置到本文的两端,也可把文本配置成绕环绕图形边缘。
  • 用自动生成页号的fo:page-number和参照对象放置页号的参照对象fo:page-number-citation功能,可以简单生成目录和索引。
  • 用fo:basic-link可以定义文件内、外的链接。用实现了此功能的浏览器浏览链接内容,并可以将链接写入到PDF中。
  • 用于目录和索引功能的fo:leader实现目录标题和页号间的连接和自动跳转。
  • 与Unicode的一致性很高,特别是称为fo:bidi-override的标记与Unicode-BIDI的处理功能的定义,可以称为是国际化时代的规范。
  • 在XSL-FO中有下述各种各样的自动排版方向规格,根据设定的值指示排版引擎段落配置的方法。
  • 用keep-together属性抑制段落间的改页和改段,由此可使标题和本文不会被分割到两个页上。
  • 用break-before/after可以在段落前后强制改页和改段。
  • 用space-before/space-after属性,实现段落强后的空行、页开始等是否忽视、保持等。

3.用XSL进行排版的特点
  在XML文件中没有排版信息,所以不管什么样的排版软件相对于XML元素都必需指定排版信息的样式表。如果版面格式高度复杂,样式表的做成也会花时间。XML不是直接将其原封不动的进行排版,而有时需要在排版前将XML的结构进行转换,其典型的例子就是目录或索引的制作。如果把文档变换为XML,目录、索引等会自动生成,这是和XML结构的转换相关的。
  可以说用XSL对XML进行排版的最大优点就是内容和格式的分离。所谓内容和格式的分离,可以做如下解释。

  • 用一套数据可以实现一览表和一页一张表格那样的看起来完全不同的输出结果。
  • 可以随时改变原先的排版或文字的大小。
  • 从数据库将必要的数据用XML形式取出来,用XSL进行排版,以动态输出方式容易的进行精美的排版。
  • 从数据库中取出所需内容经过结合、分离、树形变换等加工,组合成最终数据,从外部加上排版信息,实现排版印刷。
  • 由于内容和格式的分离,可以对信息进行自由的加工。

  因此可以说,传统的DTP软件和XML排版的根本区别就是XML排版可以事先开发样式表,然后用批处理的方法处理大量的数据。

4.XML+XSL和传统DTP排版方法比较以及XML排版工具介绍
  通常的DTP排版软件都是以所见即所得的对话形式将排版素材进行一页一页的排版,成本与页数成比例。而XSL的排版是将预先形成的XML内容进行一次性处理。对XML进行排版的XSL的制作费不是根据页数,而是根据标记(Tag)数或排版的复杂程度成比例。用XML+XSL排版,当页数多、重复性强、延续的卷多时,比DTP成本要低得多。
    目前世界上XSL-FO排版引擎还不多,主要有HYFsoft(AntennaHouse)的XSL Formatter V2/V3和RenderX的XEP两个,还有一款开源软件FOP(由于是开源免费其功能相对比较差一点)。但从现在的动向看,发展是非常快的,今后的状况很难预料。2002年12月在美国Baltimore召开的“XML 2002”研讨会上,美国一位XML领域的专家Eliot Kimber 在一篇题为《用XSL-FO实现高品质文档印刷》的演讲中说到XSL Formatter是这方面最优秀的产品的产品(Using XSL Formatting Objects for Production-Quality Document Printing: http://www.isogen.com/papers/production-quality-xslfo.pdf)。演讲还说美国的许多计算机外部设备厂商为用户提供的多语言手册包括中文、日文、韩文、阿拉伯文、希伯莱文、泰文等语言,就是用XSL Formatter制作的。
  其次,几个大公司相继发布了XSL-FO处理器,Adobe的文档服务器(2003年发布)、IBM的打印机软件、Advent公司的3B2的FO支持等等。而且,Sun公司最近发布了XSL Formatter的开源代码。XSL-FO的正式推荐规格发布1年来,主要的厂商几乎都发布了支持FO的产品来看,2003年在欧美应该是真正的确立了XSL-FO市场的时候了。并且,W3C也将要发布XSL-FO的V1.1版规格,由于XSL-FO规格V1版刚刚诞生,从功能上看,还有不足。但是,软件世界的日新月异促使着XSL-FO规格也要随着潮流发展,促使规格功能扩张、开发竞争加速。相对而言,我们中国的XSL-FO的应用比起欧美国家落后了很大的一截。我们要奋起直追。
  XSL-FO规格是Web标准化方面影响力非常大的W3C制订的标准。它不是哪一家厂商自己制订的特定标准,而是谁都可以实现的规范。正像前面介绍的那样,已有的可商业化的产品竞争非常激烈。期待着今后还会有更多的厂商推出支持XML的产品。市场就是优胜劣汰,延续好的产品。即使你暂时用了不好的产品,早晚会换成好产品。
  从XML向XSL-FO的转换是使用了XSLT样式表进行的,XSLT样式表也是W3C的标准规格。不管使用什么XSL-FO处理器,样式表都是通用的。甩开那些独自规范,实现通用样式表,一经制作,就可以满足所有文档排版需求,这就是全世界对XSL-FO拭目以待的最大理由。
  另外,近年相继出版了关于XSL-FO的专业书籍,专业书籍的出版会更使XML作为一个确实实用的技术收到广泛的注目。

五、用XML实现电子政务数据交换和电子公文排版的解决方案
  从上述的叙述可以看出,使用XML作为电子政务的数据交换形式,用XSL作为电子公文的排版样式表,再以PDF的形式保存打印形式是一个非常有特点的解决方案。它不仅采用了当前国际上通用的标准,为今后的国际化信息交流提供了很好的基础。由于XML的可扩充性也为电子政务今后的发展提供了良好的空间。另外,由于XML经过不断的发展,XLink(XML Linking Language)、XPointer(XML Pointer Language)、安全地保存和发送机密数据的XML Encryption、电子签名标准XML Signature、以及对电子签名过的XML文件进行还原处理的Decryption Transform等规范的相继推出,使XML数据可以在安全、可靠的环境下自由交换。
从以下几点来看我们认为,电子政务以XML为数据核心是非常可行的。
1.提高了工作效率
  从XML向XSL-FO的转换是使用了XSLT样式表进行的,XSLT样式表也是W3C的标准规格。不管使用什么XSL-FO处理器,样式表都是通用的。甩开那些独自规范,实现通用样式表,一经制作,就可以满足所有文档排版需求,这就是全世界对XSL-FO拭目以待的最大理由。
2.增加了信息的可重用性
  电子公文的内容一次输入后,可供多种应用。内容便于检索,可以对多个文件进行相互联接以增加信息的可用性。
3.提高了数据的灵活性和可扩充性
  可以由用户自定电子公文的排版格式,可以对电子公文的格式进行扩充和修改,修改方法是对数据本身,而不是处理程序。
4.系統统一性
  由于使用的是一种“描述信息的信息”(Meta-data)非常适合与其他系统之间进行共享和信息整合。使用事先设定的联接方法实现数据本身的各种处理、附件数据处理、安全机制处理等进行完整的操作流程。
5.文件的可视性
  由于用XSL对XML数据进行排版,使不同的数据可以有相同的版面格式,使收文端能将发文端的电子公文原貌真实再现。版面描述与内容的分离更增加了数据的可交换性。
  传统的电子公文交换中除了公文正文之外还有相关附件。因此公文电子化传送也必须将附件与公文正文一起传送。所以电子公文的传送和排版不仅要考虑电子公文正文本身,还应考虑其包含的其他附件文档。此时发文端不仅要考虑收文端对外挂文件的接收,还应考虑收文端能否浏览外挂附件文件的问题,以及传输过程中的合理、安全、有效等问题。
6.数据加密和认证
  收发电子公文只要遵守电子公文格式标准,即可达到两端互通的结果。但是如何使电子公文真正达到传统公文传递时的安全机制是电子政务数据交换的关键。
  传统的公文传递需要对公文进行核对、加封、盖章、登记、签收、开封等步骤,用XML的方法简化了公文的编辑排版,应用XML的相应加密、认证技术,结合国家认可的加密算法可以实现对电子公章进行嵌入和通过对XML文件的加、解密,实现发送方对公文(包括电子公章)进行加密后的传输;接收端进行相应的解密还原得到公文。以及多点加密认证操作。

六、今后的目标
  目前许多数据库软件都提供XML形式导出数据的功能,并且象北京红樱枫软件等公司也在开发各种数据格式向XML的转换软件。将各种数据统一到XML形式,可以使一个客户端实现对多种数据库和数据的时实操作,而且利用XML的其他辅助标准可以实现对XML的样式表定义(XSL)、加密(XML Encryption)、签章(XML Signature)、查询等功能。使电子政务数据更加安全,保护政务信息资源价值不受侵犯,保证信息资产的拥有者面临最小的风险和获取最大的安全利益,使政务的信息基础设施、信息应用服务和信息内容为抵御上述威胁而具有保密性、完整性、真实性、可用性和可控性的能力。也使电子政务数据能够面向大众提供更多更好的服务。
  在XML技术开发上最大限度的实现XML的是自动排版。正像前面所述XML面向信息的自动处理,而XSL规格的自动排版功能又是非常强大的,综合起来考虑,服务器自动排版的需求一定会增加。特别是在服务器上将XML自动生成PDF,然后进行发送得情况是非常多的,政府的许多需求都是基于此应用。做成这样的系统,不仅是XSL数据,XML数据库、Web服务器相关的构筑都是必需的。因此,需要从系统集成和解决方案上进行开发。
  XSLT样式表的自动做成从技术上考虑,是一项比较难的课题。暂时从最终用户来考虑的话,尚无好的方法。随着XSL的普及,专业制作XSLT样式表的行业是非常需要的。

 
 
用 户 名:
密  码:

 
 
 
 
 
  金软OfficeTV版
  金软照相机
  金软电子书
  金软文档词典翻译
  金软同步批注
  金软移动打印
  金软有声阅读
  金软手写批注
  金软随手记
  金软OfficePro
  云服务平台解决方案
  金软移动图书馆
  金软PDF转换(x-PD
  客户用我公司开发的报告自
  HYF DOCViewe