专利名称:一种基于as的xml脚本解析器及其方法
技术领域:
本发明涉及一种脚本解析器及其方法,更具体地说是指一种基于AS的XML脚本解析器及其方法。
背景技术:
XML是W3C定的一组规范,用来定义文档标记语言的框架。它提供了一种描述结构数据的格式,使各种基于WEB的应用之间能方便的交换数据。XML以简单性、开放性、可扩展性、互操作性等一系列特性给基于Web的应用程序带来了强大的功能和灵活性。而XML文件只是以纯文本对数据进行编码的一种格式,使用XML文件中所编码的数据之前,必须先将数据从纯文本中解析出来。因此,XML解析器在信息系统的构建过程中十分重要。
目前,广泛使用的XML解析器主要是IBM公司的XML 4J,Microsoft公司的MSXML, Oracle公司的XMLParser for Java和S UN公司的Pro jectX。由于上述XML解析器的交互能力差,其未能满足企业实际的应用需求。
发明内容
本发明的目的在于克服现有技术的缺陷,提供一种基于AS的XML脚本解析器及其方法。为实现上述目的,本发明采用以下技术方案一种基于AS的XML脚本解析器,包括与外部资源连接的程序构件,所述的程序构件包括XML解析器、脚本加载器、解释器、执行器、事件管理器和对象实体;所述的外部资源与解释器、执行器连接,解释器、执行器对外部资源进行转换;其中,脚本加载器对XML脚本进行加载并传送至XML解析器,XML解析器对XML脚本进行解析后,并生成解释器所需的对象;所述的对象实体包括应用空间和图形界面,其中所述的脚本加载器是主要用于加载XML脚本;所述的XML解析器是指AS内置的XML解析器;用于解析XML脚本,并生成解释器所需的对象;所述的解释器是以XML解析器所生成的对象为输入负责对语句解释执行控制;所述的执行器是用于根据对象或命令的类型调用相应的处理模块。其中,AS是指ActionScript, 一种编程语言。其进一步技术方案为还包括初始化器,所述的初始化器是根据配置文件对对象实体进行初始化。其进一步技术方案为所述的外部资源包括与解释器连接的AS基类、对象库、指令集、布局规则;所述的AS基类是指AS提供的基础类;所述的对象库是指根据富互联网应用程序技术预制的Π集(例如文本框、密码编辑框、多选树型列表、时间选择器等,可根据需求定制),提供了自定义的XML脚本语法支持(例如应用控件定义为<ui type="APP//img=//*//caption=//*//cmd=//*/V>, type 为控件类型,img 为图标文件,caption 为标题,cmd为响应命令);所述的指令集是根据系统的需求自定义的命令集(例如0PEN、CLOSE、URL、SM7等,命令可根据需求进行扩展,命令和命令参数之间用特殊符号隔开,本实施例中,命令和命令参数之间的分隔符为冒号,命令参数和命令参数之间的分隔符是I,即命令类型参数11参数21....);所述的布局规则主要是规定了应用布局的方式。其进一步技术方案为所述的外部资源还包括与执行器连接的外部组件、资源文件和容器接口 ;所述的外部组件是根据富互联网应用程序技术预制的组件集;所述的资源文件是指引擎使用的任意非可执行的数据文件,如图像、音频和视频文件;所述的容器接口是指引擎跟装载引擎容器的通信接口。其进一步技术方案为所述的应用空间是指由引擎根据XML脚本生成的应用集。其进一步技术方案为所述的事件管理器主要是负责对应用空间的事件或动作进行监听、响应,并触发执行器执行相应的命令。
一种基于AS的XML脚本解析方法,包括以下步骤I)初始化根据配置文件对应用进行初始化,在初始化完成之后,不断对该应用进行监听,以至能及时响应用户的操作;2)事件响应用户通过图形界面对应用进行操作,并触发相应的事件,事件管理器在捕捉到该事件后对其进行响应,并触发执行器执行相应的命令;3)命令解释解释器会根据预制的对象库、指令集和布局规则判断该命令的类型,然后触发执行器执行相应的处理模块,在此过程中,解释器负责对命令解释执行控制;4)命令执行执行器会根据解释器传过来的信息调用相应的模块进行处理;5)脚本加载根据执行器发过来的请求,脚本加载器加载相应的脚本传给XML解析器;6)XML解析XML解析器对脚本加载器传过来的脚本进行解析,并根据XML语言的语法规则生成相应的对象;检测各个端口,若有结束控制信号输入时,进入步骤7),否则,重复步骤2);7)结束。其中的步骤4)若是以APP开头的命令,执行器执行对象处理模块;若是OPEN、CLOSE、URL:等开头的命令,执行器调用命令处理模块进行处理;若是需要加载XML脚本,执行器会触发脚本加载器加载相应的XML脚本;若是调用其他的命令,执行器会触发解释器对该命令进行解释,从而形成循环调用;同时,命令执行器会根据解释器传过来的信息,结合外部组件和资源文件生成相应的应用存储到应用空间里。本发明与现有技术相比的有益效果是1)通过对XML脚本的解析实现应用程序动态加载,使用户可以以文本编程方式实现富互联网应用;2)是通过事件驱动来识别XML文档的内容(即当它在XML脚本中发现特殊符号时,它就会触发相关事件,不需要在内存中建立整个文档的树结构),其占用内存较少,从而使其更加适合应用于智能手机、平板电脑、嵌入式设备等客户端;3)可重用性,能够提高软件的开发效率;4)是基于AS开发的,其具有较强的互动能力,能够提闻系统的响应能力。下面结合附图和具体实施例对本发明作进一步描述。
图I为本发明一种基于AS的XML脚本解析器具体实施例的方框结构示意图;图2为本发明一种基于AS的XML脚本解析方法对某一具体控件进行解析之后的应用空间的显示示意图。
具体实施例方式为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。如图I所示,本发明一种基于AS的XML脚本解析器,包括外部资源和程序构件两大部分,所述的外部资源包括、AS基类、对象库、指令集、布局规则、外部组件、资源文件和容器接口,其中XML脚本主要是为脚本引擎提供数据,同时作为脚本引擎和后台的接口。AS基类是指AS提供的基础类。对象库是指根据富互联网应用程序技术预制的UI集,提供了自定义的XML脚本语法支持。指令集是根据系统的需求自定义的命令集。布局规则主要是 规定了应用布局的方式。外部组件是根据富互联网应用程序技术预制的组件集。资源文件是指引擎使用的任意非可执行的数据文件,如图像、音频和视频文件。容器接口是指引擎跟装载引擎容器的通信接口,例如引擎与浏览器的接口、引擎与桌面程序的接口。程序构件包括初始化器、XML解析器、脚本加载器、解释器、执行器、事件管理器和对象实体,在本引擎中程序构件主要是根据XML脚本动态生成最终显示需要的信息。初始化器主要是根据配置文件对应用程序进行初始化。脚本加载器是主要用于加载XML脚本。XML解析器是指AS内置的XML解析器。在本引擎中,其主要用于解析XML脚本,并生成解释器所需的对象。解释器主要是以XML解析器所生成的对象为输入负责对语句解释执行控制,是整个脚本引擎的中心模块。执行器主要是用于根据对象或命令的类型调用相应的处理模块。事件管理器主要是负责对应用空间的事件或动作进行监听、响应,并触发执行器执行相应的命令。应用空间是指由引擎根据XML脚本生成的应用集。本解析器可以作为浏览器的插件,也可以作为桌面应用软件的插件。本解析器的解析方法包括以下几个步骤I)初始化根据配置文件对应用进行初始化,在初始化完成之后,不断对该应用进行监听,以至能及时响应用户的操作。2)事件响应用户通过图形界面对应用进行操作,并触发相应的事件。事件管理器在捕捉到该事件后对其进行响应,并触发执行器执行相应的命令。3)命令解释解释器会根据预制的对象库、指令集和布局规则判断该命令的类型,然后触发执行器执行相应的处理模块。在此过程中,解释器负责对命令解释执行控制。4)命令执行执行器会根据解释器传过来的信息调用相应的模块进行处理。例如如果是以APP开头的命令,执行器执行对象处理模块;如果以OPEN、CLOSE、URL:等开头的命令,执行器调用命令处理模块进行处理。在执行器执行命令过程中,该命令可能会需要加载XML脚本或调用其他的命令。如果是需要加载XML脚本,执行器会触发脚本加载器加载相应的XML脚本;如果是调用其他的命令,执行器会触发解释器对该命令进行解释,从而形成循环调用。同时,命令执行器会根据解释器传过来的信息,结合外部组件和资源文件生成相应的应用存储到应用空间里。5)脚本加载根据执行器发过来的请求,脚本加载器加载相应的脚本传给XML解析器。6)XML解析XML解析器对脚本加载器传过来的脚本进行解析,并根据XML语言的语法规则生成相应的对象;检测各个端口,若有结束控制信号输入时,进入步骤7),否则,重复步骤2)。7)结束。下述为一个具体控件的解析实施例DataGrid. xml 为 DataGrid 控件的配置文件;
CHDOS title= irDATAGRIDfr ico= riman¥i action= ¥rgui/save. jsp n> <grid><tr><td>
<ui type= ffDATAGRID " src= "swf/HD_DATAGRID. swf " height= u4 OOrr name= ttUnamefF check= ” [*] fr cw= f1I f 1, 5 f I f 3ft>
<tr>
<td type= ntxt ,>CHK</td>
<td type= utxt〃>ID</td>
<td type= rrLxtrt edit= "true fi>姓名</td>
<td type= rttxt ri>类型</td>
<td type= ffImg</td>
<td type= "ftrefrf>添力P</td>
<td type= "href">修改</td>
<td type= 〃_hre:f">删除</td>
<td type=”>查看</td>
</tr>
<tr><td>2 0K/td>
<td>K/td>
<td>实施例</td>
权利要求
1.一种基于AS的XML脚本解析器,其特征在于包括与外部资源连接的程序构件,所述的程序构件包括XML解析器、脚本加载器、解释器、执行器、事件管理器和对象实体;所述的外部资源与解释器、执行器连接,解释器、执行器对外部资源进行转换;其中,脚本加载器对XML脚本进行加载并传送至XML解析器,XML解析器对XML脚本进行解析后,并生成解释器所需的对象;所述的对象实体包括应用空间和图形界面,其中 所述的脚本加载器是主要用于加载XML脚本; 所述的XML解析器是指AS内置的XML解析器;用于解析XML脚本,并生成解释器所需的对象; 所述的解释器是以XML解析器所生成的对象为输入负责对语句解释执行控制; 所述的执行器是用于根据对象或命令的类型调用相应的处理模块。
2.根据权利要求I所述的一种基于AS的XML脚本解析器,其特征在于还包括初始化器,所述的初始化器是根据配置文件对对象实体进行初始化。
3.根据权利要求I所述的一种基于AS的XML脚本解析器,其特征在于所述的外部资源包括与解释器连接的AS基类、对象库、指令集、布局规则;所述的AS基类是指AS提供的基础类;所述的对象库是指根据富互联网应用程序技术预制的UI集,提供了自定义的XML脚本语法支持;所述的指令集是根据系统的需求自定义的命令集;所述的布局规则主要是规定了应用布局的方式。
4.根据权利要求I所述的一种基于AS的XML脚本解析器,其特征在于所述的外部资源还包括与执行器连接的外部组件、资源文件和容器接口 ;所述的外部组件是根据富互联网应用程序技术预制的组件集;所述的资源文件是指引擎使用的任意非可执行的数据文件,如图像、音频和视频文件;所述的容器接口是指引擎跟装载引擎容器的通信接口。
5.根据权利要求I所述的一种基于AS的XML脚本解析器,其特征在于所述的应用空间是指由引擎根据XML脚本生成的应用集。
6.根据权利要求I所述的一种基于AS的XML脚本解析器,其特征在于所述的事件管理器主要是负责对应用空间的事件或动作进行监听、响应,并触发执行器执行相应的命令。
7.一种基于AS的XML脚本解析方法,其特征在于包括以下步骤 1)初始化根据配置文件对应用进行初始化,在初始化完成之后,不断对该应用进行监听,以至能及时响应用户的操作; 2)事件响应用户通过图形界面对应用进行操作,并触发相应的事件,事件管理器在捕捉到该事件后对其进行响应,并触发执行器执行相应的命令; 3)命令解释解释器会根据预制的对象库、指令集和布局规则判断该命令的类型,然后触发执行器执行相应的处理模块,在此过程中,解释器负责对命令解释执行控制; 4)命令执行执行器会根据解释器传过来的信息调用相应的模块进行处理; 5)脚本加载根据执行器发过来的请求,脚本加载器加载相应的脚本传给XML解析器; 6)XML解析XML解析器对脚本加载器传过来的脚本进行解析,并根据XML语言的语法规则生成相应的对象;检测各个端口,若有结束控制信号输入时,进入步骤7),否则,重复步骤2); 7)结束。
8.根据权利要求7所述的一种基于AS的XML脚本解析方法,其特征在于所述的步骤4) 若是以APP开头的命令,执行器执行对象处理模块; 若是OPEN、CLOSE、URL:等开头的命令,执行器调用命令处理模块进行处理; 若是需要加载XML脚本,执行器会触发脚本加载器加载相应的XML脚本; 若是调用其他的命令,执行器会触发解释器对该命令进行解释,从而形成循环调用;同时,命令执行器会根据解释器传过来的信息,结合外部组件和资源文件生成相应的应用存储到应用空间里。
全文摘要
本发明公开了一种基于AS的XML脚本解析器及其方法,解析器包括与外部资源连接的程序构件,程序构件包括XML解析器、脚本加载器、解释器、执行器、事件管理器和对象实体;外部资源与解释器、执行器连接,解释器、执行器对外部资源进行转换;其中,脚本加载器对XML脚本进行加载并传送至XML解析器,XML解析器对XML脚本进行解析后,并生成解释器所需的对象。本发明通过对XML脚本的解析实现应用程序动态加载,使用户可以以文本编程方式实现富互联网应用;其占用内存较少,从而使其更加适合应用于智能手机、平板电脑、嵌入式设备等客户端;可重用性,能够提高软件的开发效率;具有较强的互动能力,能够提高系统的响应能力。
文档编号G06F17/30GK102880492SQ201210356540
公开日2013年1月16日 申请日期2012年9月24日 优先权日2012年9月24日
发明者杨博宇, 杜恩宽, 王东波 申请人:广东华大集成技术有限责任公司