XSL-FO:XML数据表现技术

时间:2022-08-03 04:42:20

XSL-FO:XML数据表现技术

XML数据表现技术不但使得内容的展现能够得到统一的处理,更重要的是这些技术与XSLT的共同控制为重复出现的数据的排版和显示带来了操作上的极大便利。

在数字信息产业飞速发展的今天,作为信息载体的数据格式的互通性、标准化显得日益重要。人们希望从不同渠道、不同方式得到的信息能够得到统一的处理,而不是从各种不同的数据格式中漫无目的地查找。于是,基于XML的数据表现技术得到了很大的发展。这些技术不但使得内容的展现能够得到统一的处理,更重要的是这些技术与XSLT的共同控制为重复出现的数据的排版和显示带来了操作上的极大便利。

XSL-FO

XSL-FO全称是XSL格式化对象(XSL Formatting Objects),它可以看作是一种排版格式。2001年10月,W3C组织了XSL-FO的1.0版本。

XSL-FO提供了一个比HTML+CSS更为高级的可视化布局模型: 一个完整的XSL-FO文档包含了信息内容及控制信息显示方式的版式,其对信息描述方法的多样性可完全媲美于目前常用的文档格式如PDF、DOC等。它的目的之一就是在网络上进行复杂文档的分页处理、大文档和复杂排版格式的处理,以及网络打印等。

XSL-FO更重要的功能是与XSLT共同控制XML数据的显示方式。这里,XSLT通常用于描述怎样转换XML元素,而XSL-FO通常用来描述怎样表示XML文档内容。设计良好的XSL(这里指符合XSL-FO规范的XSLT)可以作为模板用于修饰功能相近的多个XML文档,这给重复性数据给数据库等的排版显示带来了操作上的方便。

作为一种排版格式,XSL-FO提供了强大的版式控制功能。页面控制 XSL-FO提供丰富的页面控制功能,使用者可以通过这些特性实现封面、封底、奇偶页等的分别控制,对页眉、页脚、页边距进行精确控制,并实现目录、自动页码编排等复杂功能。这为书式、报刊、文章等的排版提供了强大而灵活的操作方式,使得XSL-FO可以适用于这方面的排版。

表格 XSL-FO表格与HTML中表格的实现方式类似,可以实现复杂的单元拆分、合并,进而实现复杂表格。另外,XSL-FO在文字、图像方面提供了不输于任何排版软件的功能。

但是如果要让XSL-FO能够被广泛使用,需要使用以它为基础的各种辅助工具,包括处理工具、编辑工具。

处理工具的目标是解析XSL-FO,同时展示XSL-FO所预期的效果。处理工具的另外一个任务是将XSL-FO转换成为另外一种可以完全展现XSL-FO效果、规模较小、比较容易进行打印控制、比较容易在网络间传递的文件格式。

编辑工具的目标就是建立完全符合XSL-FO规范的原始文件。由于XSL-FO本身符合 XML语法规范的,所以可以使用现有的XML编辑工具来建立和编辑XSL-FO。但是XSL-FO本身有着复杂和严格的内容规范,所以仅仅通过XML SPY等XML编辑工具是不能完全满足要求的。如果存在可视化的编辑环境,那么XSL-FO的编辑将会变得方便和快捷,即使不懂XSL-FO的用户也可以编辑出满足要求的XSL-FO文件。

X2P(XSL数据表示引擎)

XSL数据表示引擎是用100%Java开发的XSL-FO处理工具。它完成对XSL-FO编辑、浏览、打印和PDF文件转换等操作。

PDF文件基于PostScript程序语言,是一种灵活的、跨平台的文件格式,它具有以下的优势:

PDF文件可以保证电子文档的完整格式;

PDF文件支持同一页面中包含多种语言;

用户可以用安全密码锁定文件,防止不必要的改动和打印,或限制对重要文件的访问;

Web的各种搜索引擎可以方便地对PDF文件进行检索;

PDF文件的规模小、显示和打印质量高、在任何系统中都具有相同的显示;

PDF文件的浏览器为免费产品。

因此X2P选择PDF作为最终保存的文件格式。

XSL数据表示引擎在功能上由文件转换器和XSL-FO预览器两部分组成。文件转换器完成XSL-FO向PDF文件的转换,XSL-FO预览器则直接进行XSL-FO文件的预览和打印控制。

XSL数据表示引擎的输入数据为两种: XSL&XML文件和XSL-FO文件。其中XSL&XML更为常用,此时XSL文件可以作为模板,修饰功能相近的多个XML文件(其中: XSL文件指符合XSL-FO规范的XSL文件)。

XSL数据表示引擎由数据转换模块、对象格式化模块、绘制模块三个部分组成。

数据转换模块将XSL-FO文件流进行解析并抽取其中的内容以及样式信息,并将这些信息封装成对象。此时封装好的对象中没有定位信息,所以此时的对象不能直接进行绘制。

对象格式化模块将封装了内容及样式信息的对象进行再次解析,构造成具有定位信息的绘制对象。

绘制模块将完成可绘制对象的绘制。PDF文件转换器使用针对PDF文件的绘制方法完成PDF文件的建立。而XSL-FO预览器使用预览器的绘制方法将内容显示在预览界面中。

XSL Maker

XSL Maker是用100% Java开发的用于设计XSL-FO或基于XSL-FO的XSLT的可视化编辑工具。XSL Maker作为一个可视化的编辑工具,其作用是帮助用户在一种具有图形化用户界面的软件中,利用可视化的设计方式设计基于XSL规范的样式表文件,并可以利用该软件完成相关文件的自动转换和结果PDF文件的自动生成功能。

链接:XSL数据表示引擎的优势

系统设计上的优势

1. 可扩展性

XSL数据表示引擎的可扩展性表现在开发人员通过实现相应的绘制接口就可以完成XSL-FO文件向其他文件转换的转换器。利用XSL数据表示引擎提供的绘制接口,软件开发人员仅仅需要懂得文件格式就可以对XSL数据表示引擎的功能进行扩展。

2. 高效性

XSL数据表示引擎在算法设计上充分考虑了对内存的使用以及异常时的应变和容错能力。因此文件生成质量和效率都大大超过了同类产品,尤其体现在PDF文件的生成速度上。

3. 跨平台性

XSL数据表示引擎使用100%Java语言开发,文件转换类型为PDF。Java语言的特性和PDF文件类型的特性决定了XSL数据表示引擎的跨平台特性。

4. 国际化

XSL数据表示引擎支持的语言为中文、英文和日文。

功能上的优势

1. 为了满足中文排版(尤其是公文)的特殊要求,可以在原有XSL-FO规范的基础上进行了扩展。

增加了禁则的设置: 禁则指不能在规定的位置出现的内容。XSL数据表示引擎可以处理的禁则有:行首标点禁则(不能出现在行首的标点)、行尾标点禁则(不能出现在行尾的标点)、行尾词汇禁则(不能出现在行尾的词汇)、独立词汇禁则(不能分行显示的文字,即必须显示在同一行的文字)。

标题的特殊处理: 在标题存在多行的情况下遵循“上窄下宽”的梯形原则进行处理。

“拼”字符转换设置: 实现了公文中使用到一种特殊表意机制,用以描述国标编码无法录入的特殊汉字或符号。

“此页无正文”设置: 实现在公文中当某页的开始就是落款、日期而无正文内容时,添加上规定的内容。

对中文编码的支持: XSL数据表示引擎完全支持GB18030编码。

增加了多种特殊的中文字体类型: XSL数据表示引擎增加的字体类型为华文细黑、华文仿宋、华文中宋、方正仿宋-GB18030、方正书宋、方正黑体-GB18030、方正小标宋、方正楷体-18030等等。

2. 增强了对图像的处理功能: XSL可以处理的图像类型为JPG、JPEG、GIF、BMP、TIF、TIFF、PNG等等。

3. 加强了对PDF文件的处理功能:

X2P Engine对文档数据采用RSA 的RC4 算法进行加密,同时支持40 比特和128 比特密钥两种加密方式。

X2P Engine可以为PDF文件添加口令。

X2P Engine可以对PDF文件的打印、内容修改、拷贝、注释修改、填充、屏幕阅读、组装等一系列操作进行控制。

上一篇:RIA中的BPM技术 下一篇:XForms技术在RIA中的应用