一种XML文件解析的方法及装置制造方法及图纸

技术编号:2827776 阅读:143 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供了一种XML文件解析的方法,包括:定义所述XML的标签与相应对象模型特征的映射,所述对象模型特征具有配置属性,所述配置属性用于标识执行所述对象模型特征的栈名;生成由所述XML标签编写的XML文件,所述XML文件包括装载任务对象脚本和组件对象脚本;提取所述组件对象脚本的URI,并依据所述URI在所述装载任务对象脚本和组件对象脚本之间建立关联;解析所述装载任务对象脚本,生成装载任务序列,所述装载任务序列包括URI;遍历所述装载任务序列,获得当前URI指定的组件对象脚本;解析所述组件对象脚本,返回相应栈名对应的栈顶组件对象。本发明专利技术能在节省系统资源的前提下,简单、有效的实现XML文件配置及解析。

【技术实现步骤摘要】

本专利技术涉及信息处理
,特别是涉及一种XML文件解析的方法及一种XML文件解析的装置。
技术介绍
XML(The Extensible Markup Language,可扩展标识语言)是一种独立于平台的编程语言,由于它提供了用于创建公共信息格式以及共享网络上不同软件应用的格式和数据的灵活机制,从而特别适于在诸如Internet的分布式网络上使用。XML来源于SGML,包括描述文件内容的标记符号(标签)。XML在标记符号使用方法上同HTML(超文本标记语言)相似,但与HTML相比,它至少具有两个基本区别。首先,HTML具有定义标记符号的专用集,而在XML中所允许标记符号是不受限和自定义的,从而XML是可扩展的。即,尽管XML也具有标准化标记符号,但XML程序员并不受定义标记符号标准集的限制,而是能够定义出新的标记符号。其次,由于HTML标签和属性仅定义出如何显示实际内容,使HTML受限,但XML标签和属性既能够定义如何显示信息(例如,通过Web浏览器),又能够定义显示什么样的内容。XML是一种简单的数据存储语言,可以使用一系列简单的标记描述数据,而这些标记可以用方便的方式建立,XML的简单使其易于在任何应用程序中读写数据,比如,在使用计算机处理各种业务逻辑时,往往需要进行建模分析,然后根据模型生成业务模型描述。由于XML语言具有纯文本、以及强大的标签描述特性,在描述业务逻辑时采用XML语言,则可以更容易地在应用服务器上部署。目前常用的XML解析方法是SAX和DOM,在此基础上产生许多开源解析框架,如Castor、JAXB、Digester等。这些框架都比较类似,都是将XML文件转换成相应的Java对象的过程,以下以Digester为例具体说明:-->简言之,Digester由″事件″驱动,通过调用预定义的规则操作对象栈,将XML文件转换为Java对象。工作原理如下:Digester底层采用SAX解析XML文件,由于SAX解析器采用基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。所以相应地,对象转换由″事件″驱动,即在识别出特定XML元素时(实际被细分为begin、body、end、finish四个时点),将执行特定的动作,比如创建特定的Java对象,或调用特定对象的方法等。此处的XML元素根据匹配模式(matching pattern)识别,而相关操作由规则(rule)定义。在转换过程中,Digester维持了一个对象栈,用来存放转换中生成的、或是为转换临时创建的Java对象。对输入XML文件作了一趟完整的扫描后,对象栈的栈顶元素即为目标对象。由于Digester屏蔽了SAX解析的细节,使用者仅需关注转换操作本身,大大简化了转换操作。在基本使用中,使用者通过调用Digester类的相关方法,来创建匹配模式与规则的映射序列。比如,调用addSetProperties(String pattern),向Digester中加入SetPropertiesRule。然而,在基本的使用方式下,Digester虽然使用XML文件定义Java对象的状态,提高了系统的灵活性,但是匹配模式与规则的映射序列(装载逻辑)仍然通过硬编码来定义,这种方式不易修改与重用。所以Digester还提供了一种高级的使用方式,用一个XML文件定义Java对象的状态(数据源文件),用另一个XML文件定义装载数据源文件的装载逻辑。在这种情况下,对象的装载过程分成了两步:1.装载逻辑的″装载″,其结果表现为定义了rule的Digester;2.根据上一步得到的Digester,装载目标对象。显然,采用这种方式,需要为一个装载逻辑多写一个配置文件,如果需要执行复杂业务逻辑的XML文件解析,将增加系统开销,严重浪费系统资源。并且,由于提供的规则标签所定义的动作简单,功能单一,不支持多栈操作,对于复杂的解析动作无法定义或定义比较繁琐困难。所以,本领域技术人员迫切需要发展一种能在节省系统资源的前提-->下,简单、有效的实现XML文件配置及解析的方法。
技术实现思路
本专利技术所要解决的技术问题是提供一种XML文件解析的方法,用以在节省系统资源的前提下,简单、有效的实现XML文件配置及解析。本专利技术还提供了一种XML文件解析的装置,用以保证上述方法在实际中的实现及应用。为了解决上述问题,本专利技术公开了一种XML文件解析的方法,包括:定义所述XML的标签与相应对象模型特征的映射,所述对象模型特征具有配置属性,所述配置属性用于标识执行所述对象模型特征的栈名;生成由所述XML标签编写的XML文件,所述XML文件包括装载任务对象脚本和组件对象脚本;提取所述组件对象脚本的URI,并依据所述URI在所述装载任务对象脚本和组件对象脚本之间建立关联;解析所述装载任务对象脚本,生成装载任务序列,所述装载任务序列包括URI;遍历所述装载任务序列,获得当前URI指定的组件对象脚本;解析所述组件对象脚本,返回相应栈名对应的栈顶组件对象。优选的,所述装载任务对象脚本包括装载对象配置文件和装载规则脚本,所述装载任务对象脚本的解析步骤进一步包括:依据所述装载规则脚本生成第一SAX解析器;由所述第一SAX解析器解析所述装载任务对象脚本。优选的,所述组件对象脚本包括组件对象配置文件和组件规则脚本,所述组件对象脚本的解析步骤进一步包括:依据所述组件规则脚本生成第二SAX解析器;由所述第二SAX解析器解析所述组件对象脚本。优选的,通过以下步骤返回栈顶组件对象:依据所述栈名设置空栈;将相应的组件对象压入当前栈中;提取栈顶组件对象出栈。优选的,所述定义步骤还包括:-->将描述所述对象模型特征的元模型特征映射到相应的XML标签。优选的,所述的方法还包括:将描述所述元模型特征至所述XML标签的映射编码至所述SAX解析器中。优选的,所述SAX解析器包括用于在所述XML文件与对象模型特征之间进行转换的可执行代码。本专利技术实施例还公开了一种XML文件解析的装置,包括:定义模块,用于定义所述XML的标签与相应对象模型特征的映射,所述对象模型特征具有配置属性,所述配置属性用于标识执行所述对象模型特征的栈名;生成模块,用于生成由所述XML标签编写的XML文件,所述XML文件包括装载任务对象脚本和组件对象脚本;关联模块,用于提取所述组件对象脚本的URI,并依据所述URI在所述装载任务对象脚本和组件对象脚本之间建立关联;装载解析模块,用于解析所述装载任务对象脚本,生成装载任务序列,所述装载任务序列包括URI;遍历模块,用于遍历所述装载任务序列,获得当前URI指定的组件对象脚本;组件解析模块,用于解析所述组件对象脚本,返回相应栈名对应的栈顶组件对象。优选的,所述装载任务对象脚本包括装载对象配置文件和装载规则脚本,所述装载解析模块进一步包括:第一解析器产生子模块,用于依据所述装载规则脚本生成第一SAX解析器;第一SAX解析器,用于解析所述装载任务对象脚本。优选的,所述组件对象脚本包括组件对象配置文件和组件规则脚本,所述组件解析模块进一步包括:第二解析器产生子模块,用于依据所述组件规则脚本生成第二SAX解析器;第二SAX解析本文档来自技高网
...

【技术保护点】
一种XML文件解析的方法,其特征在于,包括:定义所述XML的标签与相应对象模型特征的映射,所述对象模型特征具有配置属性,所述配置属性用于标识执行所述对象模型特征的栈名;生成由所述XML标签编写的XML文件,所述XML文件包括装载任务对象脚本和组件对象脚本;提取所述组件对象脚本的URI,并依据所述URI在所述装载任务对象脚本和组件对象脚本之间建立关联;解析所述装载任务对象脚本,生成装载任务序列,所述装载任务序列包括URI;遍历所述装载任务序列,获得当前URI指定的组件对象脚本;解析所述组件对象脚本,返回相应栈名对应的栈顶组件对象。

【技术特征摘要】
1.一种XML文件解析的方法,其特征在于,包括:定义所述XML的标签与相应对象模型特征的映射,所述对象模型特征具有配置属性,所述配置属性用于标识执行所述对象模型特征的栈名;生成由所述XML标签编写的XML文件,所述XML文件包括装载任务对象脚本和组件对象脚本;提取所述组件对象脚本的URI,并依据所述URI在所述装载任务对象脚本和组件对象脚本之间建立关联;解析所述装载任务对象脚本,生成装载任务序列,所述装载任务序列包括URI;遍历所述装载任务序列,获得当前URI指定的组件对象脚本;解析所述组件对象脚本,返回相应栈名对应的栈顶组件对象。2.如权利要求1所述的方法,其特征在于,所述装载任务对象脚本包括装载对象配置文件和装载规则脚本,所述装载任务对象脚本的解析步骤进一步包括:依据所述装载规则脚本生成第一SAX解析器;由所述第一SAX解析器解析所述装载任务对象脚本。3.如权利要求1或2所述的方法,其特征在于,所述组件对象脚本包括组件对象配置文件和组件规则脚本,所述组件对象脚本的解析步骤进一步包括:依据所述组件规则脚本生成第二SAX解析器;由所述第二SAX解析器解析所述组件对象脚本。4.如权利要求1所述的方法,其特征在于,通过以下步骤返回栈顶组件对象:依据所述栈名设置空栈;将相应的组件对象压入当前栈中;提取栈顶组件对象出栈。5.如权利要求3所述的方法,其特征在于,所述定义步骤还包括:将描述所述对象模型特征的元模型特征映射到相应的XML标签。6.如权利要求5所述的方法,其特征在于,还包括:将描述所述元模型特征至所述XML标签的映射编码至所述SAX解析器中。7.如权利要求6所述的方法,其特征在于,所述SAX解析器包括用于在所述XML文件与对象模型特征之间进行转换的可执行代码。8.一种XML文件解析的装置,其特征在于,包...

【专利技术属性】
技术研发人员:林志农周子坚施健杜永键吴炜斯杨芬王迎春李志钧
申请(专利权)人:中国建设银行股份有限公司
类型:发明
国别省市:11[中国|北京]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术
  • 暂无相关专利