admin 管理员组

文章数量: 1086019


2024年4月20日发(作者:纯css酷炫效果)

总第244期 

计算机与数字工程 

Computer&Digital Engineering 

Vo1.38 NO.2 

78 

2010年第2期 

VxWorks平台XML文档显示技术研究 

冉光耀李俊 

武汉430074) (武汉数字工程研究所

摘要针对电子文档已经成为日常办公交流中不可或缺的重要信息载体,分析了嵌人式系统对文档处理的需求特 

点,提出一种在VxWorks平台实现微软办公文档解析显示的方法,并通过c语言编程在MiniGUI图形系统上对示例进行 

了验证。 

关键词VxWorks;办公软件;文档格式;解析 

TP393 中图分类号

Research on Techniques of XML Documents Display for VxWorks 

Ran Guangyao Li Jun 

(Wuhan Digital Engineering Institute,Wuhan 430074) 

Abstract Due tO the fact that MS office documents cannot be processed in VxWorks platform.this paper analyzes the 

requirements for documents processing in the embedded systems,and proposes a method to display the XML documents in 

VxWorks platform.At last,this paper gives a demonstration based on MiniGUI graphics package tO prove the effectiveness 

of the proposed method. 

Key Words Vx、v0rks,office software,document forrnat。parser 

Class Number TP393 

1 引言 

VxWorks操作系统是美国风河公司(Win— 

终端系统也需要特定的办公能力,例如对电子文档 

进行查看、编辑和保存等基本功能。同时,嵌入式 

操作系统要求配置简洁、功能适用,作为提供办公 

功能的基础软件,应考虑嵌人式终端系统的特定需 

求,在应用功能上适当裁剪,使得软件体积小、系统 

资源占用低。 

dRiver System Inc)研制的高性能、可裁减的嵌入 

式实时操作系统,它以良好的可靠性和卓越的实时 

性,广泛应用于通信设备、工业控制、军事电子等各 

个领域口q]。随着VxWorks在这些领域的使用, 

办公软件的多样化带来的直接问题是文档格 

显现出其在办公能力方面的薄弱,没有相应合适、 

配套的办公软件。因此,对VxWorks嵌入式平台 

的文档解析显示研究有着广泛的应用前景。 

式的不兼容L4],封闭的文档格式阻碍了信息的互通 

互换,涉及到文档存储的安全、稳定、有效。由于过 

去已经存在的大量历史文档都是微软的DOC标 

准,微软Word文档格式的地位不会在短期内改 

变。因此,对微软文件的兼容性也是对其它办公软 

2 系统设计 

2.1需求分析 

电子文档及其内容信息已成为办公交流中的 

重要信息资源,目前在VxWorks嵌人式平台上,办 

公软件的支持情况几乎没有。而VxWorks嵌人式 

件评价的一个标准,如果不能顺利的兼容以往的资 

料文件,那么是没有任何意义的。基于可扩展标记 

语言XML(eXtensible Markup Language)的开放 

收稿日期:2009年11月1日,修回日期:2009年11月30日 

作者简介:冉光耀,男,硕士研究生,研究方向:计算机软件与理论。李俊,女,工程师,博士,研究方向:嵌入式系统应 

用及容错实时调度算法。 

2010年第2期 计算机与数字工程 79 

文档格式能很好地解决这一问题。目前,开放的文 

档格式ODF(Open Doeumen Format)、国产文档标 

准UOF(Unified Office-doement Format)和微软 

3关键技术与软件实现 

3.1环境配置 

VxWorks的开发环境是由运行于主机上的集 

的OOXML(Office Open XML)文档格式都建立在 

XML基础之上,微软Word也提供其二进制文档 

到XML的转换功能。 

成开发环境Tornado和运行于目标机上的操作系 

统VxWorks组成 

示。 

,其交叉开发环境如图2所 

因此,本文提出一种在VxWorks平台显示办 

公文档的方法,该方法适用于嵌入式终端系统的应 

用需求,在VxWorks平台针对微软Word文档转 

换后的XML文档实现了解析与排版显示。 

2.2总体设计 

对微软word文档的处理流程,在Windows 

平台上使用微软Word应用程序的“另存为”功能, 

将DOC文件保存为“XML文档”,在Vxworks平 

台上针对已经格式转换的XML文档开始进行处 

理。为了识别XMI 文档数据,必须根据文档类型 

定义设计出能够分析特定XML标签的解析器,通 

过编程API提供对XML文档内容的访问。解析 

抽取出文档内容、属性和格式等有效信息,生成数 

据结构,并基于MiniGUI图形系统生成新的文档 

显示对象,最后进行排版实现屏幕显示。 

xML文档—£ 耍弼 型 旦 屏幕显示 

图1 VxWorks平台文档解析显示处理流程 

对于VxWorks嵌入式XML解析器的设计, 

采用普遍的XML解析方法在嵌入式应用中并不 

完全适用。在内存中一次加载整个XML文档,解 

析出完整的树结构后再进行排版、显示,对系统动 

态内存空间的要求过高,解析较大文档时有可能由 

于内存不足造成系统崩溃。可以采用分块加载大 

文档到内存中的方法,分多次对文档进行解析显 

示,使应用系统整体性能得到优化。因此,将文档 

解析显示按功能划分为XML解析模块、排版显示 

模块两个部分。处理流程如图1所示,各部分的功 

能具体定义如下: 

1)XMI 解析模块:处理对象为微软Word办 

公文档转换后的XML文档,能识别文档中的标签 

以及标签之间的内容。通过每个标签对应的处理 

函数,提取文档中的内容及属性格式,构造数据结 

构,完成解析功能。 

2)排版显示模块:将解析过程与显示过程相 

分离,接收从XML文档解析得到的数据结构,与 

MiniGUI图形系统相关的接口调用,生成页面显示 

对象,并实现排版显示。 

主机(PC) 

图2 Tornado开发调试环境 

3.2嵌入式XML文档解析模块 

3.2.1 XML解析技术设计 

XML是W3C组织认可的文档数据格式标准, 

是标准通用标记语言(Standard Generalized Mark— 

up Language,简称SGML)的子集,保留了SGML 

主要的使用功能,同时大大缩减了SGMI 的复杂 

性。目前主流的XML解析器主要有如下三种解 

析技术: 

1)文档对象模型(Document Object Model,简 

称DOM)E ],是来自W3C的成熟标准,是一种基 

于树型的解析技术。DOM解析器将XML文档一 

次性解析,生成一个位于内存中的对象树用以描述 

该文档,适合对整个XML文档的全面、动态访问。 

2)用于XML的简单API(Simple API for 

XML,简称SAX),作为一个事实上的标准,被广泛 

采用,是一个用于处理XML的事件驱动的“推”模 

型。SAX解析器顺序读取XML文档,当遇到标签 

开始或结束时触发一个事件,通过在其回调事件中 

写入处理代码。 

3)基于“拉”模式的解析(XML PullParser,简 

称XPP),与SAX一样使用事件驱动模型,但不使 

用回调机制,而是根据应用程序的要求返回事件, 

应用程序可以控制解析,减少一些不必要的事件反 

馈。 

事实上,DOM解析、SAX解析和XPP解析这 

三种解析技术并不是相互排斥的。为适应Vx— 

Works嵌入式系统应用,对于大文档可使用SAX 

有选择地为某些节点建立内存D0M树。因此,本 

文采取了基于SAX解析技术构建的XML解析 

器。 

使用SAX模型,内存消耗小,因为整个文档无 

需一次加载到内存中,读入文档的过程和解析过程 

同时进行,这使得解析器在访问大文档时性能提 

80 冉光耀等:VxWorks平台XML文档显示技术研究 第38卷 

高。同时,该解析器面向嵌入式应用,在处理功能 

上进行简化,不支持DTD(Document Type Defini— 

tion)文件以及SchemaE。]文件,只针对微软Word 

办公文档转换后的XML文档,采取单遍解析方法 

顺序提取有效的标签信息,从而加快了XML文档 

的解析速度。 

3.2.2 中间代码设计 

微软Word文档转换为XML文档后,以一种 

树形结构保持原文档的层次结构与内容,通过 

XML标签可以了解其表达信息与原微软word文 

档一致,文档内容信息与显示格式混合的保存在各 

个节点中。 

厂 

段落节点l l段落节点 

I兰 羔盛lI兰 蔓盛lI兰 羔盛lI兰 蔓皇l 

文本 文本 图像 图像 

图3简化的文档层次结构 

文档中包括了文本、图像、表格等对象,多种数 

据类型增加了数据结构的复杂程度。依据W3C的 

DOM并适当裁减,把XML文档解析为一个类似 

于DOM的元素树。简化的文档层次结构如图3 

所示,将整个文档以段落块为单位进行抽象封装, 

个段落节点中包括了连续相似的文档单元,并封 

装为其子节点,这样极大地简化了DOM树,不因 

为文档结构的复杂而增加应用逻辑和应用程序开 

发的复杂性。图4所示为整个文档对象的树形数 

据结构。 

文文档档l名称I l 一犀段亟画落2 l尉I I臣 ! 二]I jll回  ! l … 单元节点N 

图4文档对象的树形数据结构 

将DOM树的节点使用C语言结构体封装和 

存储,形成数据链表,从而为上层的排版显示模块 

的开发提供接口。其中,文档对象存储了文档名 

称、路径、空间大小和指向段落链表的表头指针。 

而段落节点数据结构中包括了本段落的格式属性、 

各单元链表的表头指针及下一个段落指针。 

图5微软Word文档 

在图5的示例文档中,一个文本单元节点信息 

在XML文档中标记如下:. 

<w:r> 

<W:rPr> 

<wx:font WX:val=”宋体”/> 

<w:b/> 

<w:color w:val=”FF0000”/> 

<w:SZ w:val一”24”/> 

<w:U W:val=”single”/> 

</w:rPr> 

<w:t>分析了嵌入式系统对文档处理的需求特 

点</w:t> 

</w:r> 

文本节点对象以<w:r>作为父元素,包括了 

<w:rPr>、<w:t>两个子元素,分别表示单元节 

点文字的属性和内容。其中,属性标签包括五个子 

元素,它们分别是:字体<wx:font>、字形<w:i 

>、颜色<w:color>、字号<w:sz>、下划线<w: 

u>。因此,在结构体中相应地定义font、style、col- 

or、size、underline分别表示此文本单元节点的字 

体、字形、颜色、字号、下划线六个属性。 

3.3嵌入式XML文档排版显示模块 

排版显示模块基于MiniGUI图形系统将文档 

数据结构转换成页面对象,对多字符集的支持通过 

逻辑字体接口来实现,并通过对页面对象的排版实 

现屏幕显示。 

界面用二维矩阵来表达页面对象的定位、排 

版,将提取的数据内容对象加入到页面中,并根据 

节点的属性信息完成页面对象的排版。用来表示 

页面对象位置的坐标是逻辑坐标,坐标系的原点在 

第一行第一个页面对象的左上角。排版显示时以 

行为基本单位,行是容纳页面对象的矩形区域。一 

行中的页面对象以加入的次序向右排列,新生成的 

页面对象会尝试放在最末行的最右端。如果该行 

无法容纳新的页面对象或该页面对象具有强制换 

2010年第2期 计算机与数字工程 81 

行的属性,则该页面对象会加入新生成的一行。行 

的宽度是该行所有页面对象宽度之和,行的高度是 

该行最高的页面对象的高度。 

在图5所示的微软Word示例文档中包含了 

几种基本的中文字符格式,其中格式相同的连续文 

本对应一个单元节点,将其数据结构转化为相应的 

VxWorks嵌人式终端设备的特定办公需求,提出 

种针对微软Word文档的解析显示方法,有较强 

的实用价值,推动了VxWorks嵌入式办公软件的 

研究工作,对于文档的其他各种嵌入对象的显示还 

有待深入研究。 

参考文献 

页面对象,包括字符集、字体类型和显示风格等信 

息。通过上述的排版设计算法,计算出每一个页面 

对象在界面的坐标,并顺序显示,页面效果如图6 

所示。 

[1]卜厚萍,范宁松.基于VxWorks操作系统的图形和汉 

字显示应用研究EJ].信息化研究,2009,35(5):51 ̄53 

[2]陈智育,温彦军,陈琪.VxWorks程序开发实践fM-].北 

京:人民邮电出版社,2004 

羚 i 

# 

翰 

i 

蠡重 垃瞄璺纛搬翻鹪皂蠡. 

;褂鐾”;寓葛・安; 

瓣 

媳期E壤塞薄隧 曩 ; 

i 

薯薹 

E3]罗国庆.VxWorks与嵌入式软件开发EM].北京:机械 

工业出版社,2003 

囊埘毫芏蛐己蛏盎为盘秘 童蘧翰础

誉 {l!l #7■《- 

一 誊 

衲 拼.蕺譬 一 断秽矿苷 群埔 薯t—≮藿_l㈨枷蕾 臻 

E4]刘宇,潘彤.办公软件测评指标体系研究[J].计算机工 

程与科学,2007(12):127 ̄129 

嚣 

4 结语 

… ? l 

[5]孔祥营,柏桂枝.嵌入式实时操作系统Vxwork及其开 

发环境TornadoEM].北京:中国电力出版社,2002 

图6基于MiniGUI图形系统的显示结果 

E6]李庆诚,彭洁,官晓利,等.嵌入式HTML文档解析器 

的设计与实现I-J].计算机工程,2009,35(9):258 ̄260 

[7]程健,皮丽娟.用C语言实现传感器XML标签的解析 

微软Word文档是办公交流中应用最广泛的 

EJ].计算机技术,2007,34(6):46 ̄49 

[8]刘芳,肖铁军.XML应用的基石:XML解析技术[J].计 

算机工程与设计,2005,26(10):2823 ̄2824 

0 = i‘= ‘ ● ‘ ^ 0 ’ ‘0 

信息载体,在VxWorks嵌入式平台上实现微软 

Word文档的显示具有很重要的意义。本文基于 

‘ ^ k ^ ^ 2 ' b ^ 0 ‘R^ 

(上接第27页) 

从实验数据看,KRT PSO算法在较少的迭 

动态地调整种群的拓扑结构,可以增加种群的多样 

性,使算法收敛于全局最优解。同时算法引入了平 

均值的概念,使得每个粒子都有机会学习其周围粒 

子的经验,提高了算法最优解的精度。通过测试函 

数以及与其他算法的比较,实验表明,该算法在收 

敛速度上收到了满意的效果。 

参考文献 

代次数的情况下,收敛速度以及数据精度明显要好 

于IPSO,以及WMPSO算法。KRTG-PSO算法在 

这些异常困难的高维多峰优化问题上获得了非常 

理想的收敛成功率,且由于在粒子更新公式中引入 

了平均值,因此每个粒子会有机会更好的向其它粒 

子学习经验。因此从实验效果看,KRT PSO算 

法耗费的CPU时间几乎在所有的基准问题上都远 

高于其他两种算法。 

[1]杨道平.粒子群算法邻域拓扑结构研究EJ].中国高新 

技术企业,2009,16(127) 

6 结语 

标准的粒子群优化算法作为一种随机全局搜 

[2]毛国君,段立娟,等.数据挖掘原理与算法[M].北京:清 

华大学出版社,2005 

[3]蔡慧,刘洪波,韩国栋.基于K均值聚类的随机网络拓 

扑模型[J].计算机工程与设计,2009,30(5) 

[4]王雪飞,王芳邱,玉辉.一种具有动态拓扑结构的粒子 

群算法研究[J].计算机科学,2007,34(3) 

索算法,因其在种群中传播速度过快,易陷入局部 

最优解。本文从粒子间关系出发,研究了粒子间的 

拓扑关系,采用基于KPTG的随机网络拓扑模型, 


本文标签: 文档 对象 解析 显示 页面