当前位置: 首页 > 专利查询>BEA系统公司专利>正文

用于处理XML对象的程序设计语言扩展及相关应用制造技术

技术编号:2867894 阅读:261 留言:0更新日期:2012-04-11 18:40
提供了一种设备,该设备将数据表示语言的数据对象映射到程序设计语言内相对应的对象,反之亦然。在一个实施例中,配置该设备以接收映射定义,该映射定义将XML数据结构的选定元素映射到一个或多个Java类的选定对象。进一步配置所述设备以判定映射定义是否包括一条或多条定义语句,所述定义语句以脚本语言的面向XML的语言元素来表示。此外,装配所述设备以便依照面向XML的语言元素的语法和语义定义来处理映射定义语句,所述映射定义语句包括脚本语言的面向XML的语言元素。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

技术介绍
1.专利
本专利技术涉及程序设计语言领域。更具体而言,本专利技术涉及一种用于在本地程序设计语言环境中操纵中央XML对象的方法。2.背景信息XML作为用来在软件应用与web服务之间传输数据结构的事实上的标准而迅速出现。虽然多数的软件应用与web服务是以诸如Java或C++之类的现代程序设计语言来编写的,但是这些程序设计语言当中没有一个提供对于表示和操纵XML的本地支持。因此,程序员在他们的应用及web服务的上下文内,不得不开发或采用用来表示和操纵XML的外部软件包。一般说来,外部软件包无法提供带有用来处理XML数据的本地支持的宿主语言。因而,他们按如下方式来表示和操纵XML,所述方式与宿主语言为其本地数据类型所提供的那些方式有很大的不同。最经常的情况下,外部软件包利用通用树抽象来表示XML数据,并且提供基于树的API,以供导航和操纵数据(例如,getParentNode()、getChildNodes()、removeChild()等)。与用来访问和操纵那些对宿主程序设计语言为本地的数据结构相比,这种访问和操纵数据结构的方法麻烦而费时。因此,一种使得能够以与本地数据结构被供给的相同能力和灵活性来操纵XML数据结构的程序设计语言是值得期望的。附图简要说明本专利技术将通过在附图中所举例说明的示范性实施例加以描述,但是其并非是限制性的,在这些附图中,同样的参考标记表示类似的元件,在其中附图说明图1举例说明本专利技术一个实施例的概观;图2举例说明依照本专利技术一个实施例的解释器104的示范性操作流程;图3A-3C举例说明依照本专利技术一个实施例的各种示范性的语言扩展;图4举例说明适用于实践本专利技术的一个通信网络的一个实施例的框图;图5A-5B举例说明依照一个实施例、并入本专利技术的语言扩展的示例性功能,用来将XML文档映射到Java对象和将Java对象映射到XML文档;图6举例说明依照一个实施例、适合于宿有(hosting)本专利技术的映射服务的示例性计算机系统,所述映射服务包括解释器104;和图7A-7C举例说明基于现有技术的、用于将XML文档映射到Java对象和将Java对象映射到XML文档的示例性功能。专利技术的详细描述在以下说明中,将描述本专利技术多个不同的方面。然而,对于本领域的技术人员来说将显而易见的是可以利用本专利技术的仅仅一些或所有方面来实施本专利技术。为了解释说明起见,阐述了特定的数目、部件和结构,以便提供对本专利技术的彻底理解。然而,对于本领域的技术人员而言还将显而易见的是可以在没有这些特定细节的情况下实施本专利技术。在其它情况下,为了不让本专利技术含混不清,众所周知的特征将被省略或简化掉。现在将依据由基于处理器的设备执行的操作方面,利用诸如接收、分析、确定、生成等之类的术语来介绍部分说明,上述术语符合本领域技术人员为了向本领域的其他技术人员传达他们的工作实质而一般所采用的表述方式。正如本领域的技术人员所普通理解的那样,量(quantities)采用电信号、磁信号或光信号的形式,这些信号能通过基于处理器的设备的机械组件和电子组件来被存储、传递、组合,并且能被操纵;而术语“处理器”包括独立式的、附加式的或嵌入式的微处理器、微控制器、数字信号处理器等。现在将以最有助于理解本专利技术的方式,按照多个不连续的步骤,依次来描述各种操作,但是,不应该把描述的次序看作是暗指这些操作必须依从一定的次序。特别是,这些操作不必按照所介绍的次序来执行。此外,本说明重复地使用短语“在一个实施例中”,尽管它可以是指代相同的实施例,但通常来讲该短语并不是指同一个实施例。概述本专利技术包括以程序设计语言扩展形式提供的功能性说明,以易于在本地程序设计环境中灵活操纵XML对象。所述语言扩展包括本地XML数据类型,还包括使程序员能以大致相同于导航和操纵本地语言对象的方式来导航和操纵XML对象的许多操作。由此,本专利技术提供了一种用于操纵XML和本地语言对象的机制,该机制特别地很适合于逐渐地普遍存在的如下问题,即将XML对象映射到以现代程序设计语言编写的软件应用和web服务中,以及将以现代程序设计语言编写的软件应用和web服务映射到XML对象中。图1举例说明了依照一个实施例的本专利技术的概观。如图所示,映射服务100包括解释器/编译器104(“解释器”),该解释器/编译器进一步包含分析器105。依照本专利技术的教导,含有各种语言扩展的程序设计语句102被提供给映射服务100,以待由分析器105进行分析。一旦分析了这些语句,解释器104就将这些语句编译成可执行代码,继而将所述可执行代码提供给执行引擎106。执行引擎106不但控制所述代码的执行(例如,通过处理器来控制),而且还执行常规的执行运行期服务,比如存储器分配请求与释放、错误/异常处理等等。对于举例说明的实施例而言,解释器104包括应用编程接口(API)(未示出),通过该应用编程接口,可以可编程地提交利用本专利技术的语言扩展所形成的程序设计语句,以供由多种专用过程加以编译。举例来讲,刚一接收到XML文档时,web服务器应用就可以对映射服务100进行调用,以便将所述XML文档对象映射成为例如用于web服务器进行附加处理的内部Java类。这种专用过程可以与映射服务100一起共同驻留在与映射服务100相同的“宿主”系统上(未示出),或被远程地离开该“宿主”系统放置,以及使用传统的交叉系统通信技术与映射服务100进行通信。图2举例说明依照本专利技术一个实施例的解释器104的示范性操作流程。在操作中,解释器104读取正在编译的语句的第一条命令。正如举例说明的那样,在块202,一经调用,解释器104就确定正在编译的语句的“下一”命令的位置。确定正在编译的语句的“下一命令”的位置,可以利用本
中公知的许多“分析”技术当中的任何一种来完成。在块204,一经确定正在编译的语句的“下一”命令的位置,解释器104就识别所读取的命令(例如,根据解释器104所维护的语言词典来进行识别)。接下来,在块206,解释器104读取余下的命令语法,并且为识别出的命令确定语义。在块208,解释器104确定是否已经到达语句的末尾。如果没有,解释器104就返回到块202,并从那里继续所述编译过程。最终到达正在编译的语句的末尾,并且在此时,在块210,解释器104可以选择性地将一个或多个优化法应用于所分析的命令。所述优化法可以是本
所公知的可用的编译程序优化技术中的任何一种或多种。最后,在对所分析的命令进行或不进行优化的情况下,在块212,解释器104都为所分析的命令产生可执行代码。在一个实施例中,解释器104为所分析的命令产生字节代码。在可选的实施例中,也可以代之以实施其它等效的“代码生成”方法。语言映射扩展程序设计语言并未在其涉及XML文档与程序设计语言对象之间的互用和翻译时提供充分的功能。因此,依照本专利技术的教导,提供了用以同脚本语言相联合使用的面向XML的语言扩展,并且现在将对这种语言扩展进行描述,所述脚本语言比如是Javascript、ECMAScript等。虽然以下语言扩展是针对Javascript加以描述的,但是不应该把本专利技术的适用性当作为仅限于Javascript。图3A-3C举例说明依照一个实施例的本专利技术的各种示范性Javascript语言扩展。首先,语本文档来自技高网
...

【技术保护点】
一种方法,包括:接收映射定义,该映射定义将数据表示语言的选定元素映射到一个或多个程序设计语言的选定对象;判定映射定义是否包括映射定义部分,该映射定义部分具有一条或多条定义语句,所述定义语句以脚本语言的面向数据表示的语言元素来 表示,所述脚本语言包括面向数据表示的语言元素;以及处理映射定义,包括依照所述数据表示语言元素的语法和语义定义,来处理具有映射定义语句的映射定义,所述映射定义语句包括所述脚本语言的数据表示语言元素。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:TL鲁卡斯A博斯沃思KE瓦斯里克
申请(专利权)人:BEA系统公司
类型:发明
国别省市:US[美国]

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

1