一种将UOML封装成应用程序编程接口的方法技术

技术编号:2829943 阅读:347 留言:0更新日期:2012-04-11 18:40
本发明专利技术公开了一种将UOML封装成API的方法,包括如下步骤:将UOML对象映射为编程语言的复合数据类型,UOML对象的属性对应于复合数据类型中简单数据类型变量或复杂数据类型变量,UOML对象的子元素对应于复合数据类型中的简单或复合数据类型变量;将UOML操作映射为编程语言的API函数原型,UOML操作的对象对应于API函数原型的参数;根据上述步骤中定义的映射,在编程语言的API函数体内将该函数对应的操作转换为UOML的操作,并将操作的返回结果转换为编程语言的返回类型。通过上述的方法实现UOML针对不同编程语言的API函数,从而不同编程语言的应用开发者可以直接通过调用对应的API函数来实现文档库系统上的应用,提高了开发效率。

【技术实现步骤摘要】

本专利技术涉及电子文档处理技术,特别涉及一种将UOML封装成应用程序 编程接口的方法。
技术介绍
UOML规范是一系列以动作+对象格式定义的、通过XML语言描述 的文档库系统命令。本申请人在中国专利申请号为CN200510131641.1的专利 申请说明书中,对其进行了详细的说明。由于XML具有跨平台、跨语言的 能力,所以,UOML规范的提出,解决了文档库系统命令本身的跨平台、跨 语言交换的问题。但是,在实际应用过程中,对文档库的操作一般通过编程 语言实现的代码控制,因此,在代码中需要实现对UOML XML文本的解析 和处理。如果每个应用开发人员在自己的代码中实现对UOML XML文本的 解析和处理,工作量大且开发效率低下。
技术实现思路
本专利技术要解决的一个技术问题是提供一种方法,通过该方法可以将 UOML封装成不同编程语言的应用程序编程接口 (API),以提高文档库系统 应用开发者的开发效率。本专利技术提供的将UOML封装成编程语言的API的方法,包括如下步骤A,将UOML对象映射为编程语言的复合数据类型,UOML对象的属性 对应于复合数据类型中简单数据类型变量或复杂数据类型变量,UOML对象 的子元素对应于复合数据类型中简单或复合数据类型变量;B,将UOML操作映射为编程语言的API函数原型,UOML操作的对象 对应于API函数原型的参数;C,根据步骤A、 B中定义的映射,在编程语言的API函数体内将该函数 对应的操作转换为UOML的操作,并将操作的返回结果转换为编程语言的返 回类型。对于面向对象的编程语言,上述步骤A中所述的编程语言中的复合数据 类型为类,UOML对象的属性和子元素对应于类的成员变量;上述步骤B中 所述的编程语言的API函数原型为对应类中的成员函数。面向对象的编程语 言包括C十+、 Object画C、 Delphi、 Java、 Python或Ruby。对于非面向对象的编程语言,上述步骤A中所述的编程语言中的复合数 据类型为结构;上述步骤B中所述的编程语言的API函数原型为全局函数。 非面向对象的编程语言包括C、 TCL、 Pascal或Perl。进一步,对于具有和0++和(语言接口的编程语言,在该编程语言的函 数体内,直接调用0++, C语言封装成的对应API函数来实现向UOML操作 的转换。通过本专利技术提供的方法,可以实现将UOML封装成编程语言的API。开 发人员在一编程语言上开发对文档库系统的应用时,可以直接调用生成的封 装好的该编程语言的API,从而省去了大量的解析UOML的工作量,提高了 开发的效率。 附图说明图1所示为本专利技术的将UOML封装成编程语言API的方法流程图2所示为本专利技术的将UOML封装成面向对象语言API的方法流程图3所示为本专利技术的将UOML封装成非面向对象语言API的方法流程图4所示为本专利技术的编程语言的API封装层次示意图。 具体实施例方式本专利技术的基本思想是,利用UOML规范的动作+对象的格式特点, 以及UOML对象和编程语言中的类或结构的内在对应关系,提供一种可以将 UOML封装为不同的编程语言的应用程序编程接口 (API)的方法,从而利 用不同编程语言对文档库系统进行应用开发时可以直接调用该语言为UOML提供的API,提高开发人员的开发效率。如图1所示,本专利技术的将UOML封装成编程语言API的方法包括如下步步骤IOI,将UOML对象映射为编程语言的复合数据类型,UOML对象的属性对应于复合数据类型中简单数据类型变量或复杂数据类型变量,UOML对象的子元素对应于复合数据类型中简单或复合数据类型变量。首先在编程语言中提供UOML对象的对应表示。利用编程语言的复合数 据类型的用户自定义功能,将每个UOML对象映射到一个定义的复合数据类 型。复合数据类型可以是面向对象的语言中的类,或者是非面向对象的语言 中的结构。其中,UOML对象中的属性在复合数据类型中可以通过简单数据类型的变量或者复杂数据类型的变量来表示,如整型(INT)、字符类型 (CHAR)或者浮点类型(FLOAT)的变量,或者相应的数组等。UOML对 象的子元素通常属于UOML中的对象,在编程语言中定义了相应的复合数据 类型,在这种情况下,在复合数据类型中,UOML对象的子元素通过该子元 素对应的复合数据类型的变量来表示。UOML对象的一些不是UOML对象的 子元素也可以通过简单数据类型的变量来表示。需要指出的是,上述的简单 类型的变量或者复杂数据类型的变量以及复合数据类型的变量包含指针变量 的情形。步骤102,将UOML操作映射为编程语言的API函数原型,UOML操作的属性和子元素对应于API函数原型的参数。由于UOML规范中的操作可能支持多个对象,在将UOML操作转换为 编程语言的API函数原型时,需要考虑该编程语言是否支持函数的多态性定 义。如果编程语言不支持函数的多态性定义,需要为每个操作支持的对象定 义一个API函数模型,如果支持,则可以只定义一个API函数原型,通过函 数原型中参数的类型来区分对不同对象的操作。UOML操作的属性和子元素 对应于API函数原型的参数。对于面向对象的语言,可以将API函数定义为 类的成员函数,在这种情况下,如果操作的属性或者子元素同时是该类的成 员变量,则在成员函数原型中可以不包含这些参数,而在函数体中直接引用 这些变量。当然,也可以和非面向对象的语言一样,把操作所有的属性和子 元素都作为函数原型的参数。步骤103,根据函数原型对应的操作和函数原型的参数,在编程语言的 API函数体内实现函数功能向UOML操作的转换和执行,并将操作的返回结 果转换为编程语言的返回类型。在编程语言的API函数体内,根据函数原型和UOML操作的映射关系, 以及函数参数和UOML操作的属性和子元素的对应关系,生成UOML的操 作命令。将生成的操作命令发送给文档库系统,文档库系统执行后会返回执 行结果。由于文档库系统返回的执行结果是UOML格式,所以需要将其转换 为编程语言中对应的返回类型。通常编程语言可以分为面向对象的语言和非面向对象的语言。由于编程 语言本身的特点不同,所以对不同的编程语言,将UOML封装成编程语言 API的具体实现也有一些不同。下面以C十+为例,介绍UOML封装成面向对象的语言的API的方法。如图2所示,为本专利技术提供的一种将UOML封装成面向对象语言API 的方法流程图。包括如下步骤步骤201,将UOML对象映射为面向对象语言的类,对象的属性对应于 类中简单数据类型变量或复杂数据类型变量,对象的子元素对应于类中的类 变量或简单数据类型变量。以UOML文档对象为例,首先在0++语言中定义一个对应的类 UOML一Doc。该类可以从0++的所有类的基类(:01^(^派生,也可以没有派 生的基类。还有一种实现是,首先为所有的UOML对象定义一个基类-class UOML一Objpublic:virtual UOML—Obj();void Init(UOML一Obj—Type type);UOML一Obj Clone(bool bMaintainRef = true);};然后在基类UOML—Obj上派生UOML_Doc。为UOML文档对象定义对应类UOML—D本文档来自技高网...

【技术保护点】
一种将UOML封装成编程语言的应用程序编程接口API的方法,其特征在于,包括如下步骤:A,将UOML对象映射为编程语言的复合数据类型,UOML对象的属性对应于复合数据类型中简单数据类型变量或复杂数据类型变量,UOML对象的子元素对应于复合数据类型中简单或复合数据类型变量;B,将UOML操作映射为编程语言的API函数原型,UOML操作的对象对应于API函数原型的参数;C,根据步骤A、B中定义的映射,在编程语言的API函数体内将该函数对应的操作转换为UOML的操作,并将操作的返回结果转换为编程语言的返回类型。

【技术特征摘要】
1.一种将UOML封装成编程语言的应用程序编程接口API的方法,其特征在于,包括如下步骤A,将UOML对象映射为编程语言的复合数据类型,UOML对象的属性对应于复合数据类型中简单数据类型变量或复杂数据类型变量,UOML对象的子元素对应于复合数据类型中简单或复合数据类型变量;B,将UOML操作映射为编程语言的API函数原型,UOML操作的对象对应于API函数原型的参数;C,根据步骤A、B中定义的映射,在编程语言的API函数体内将该函数对应的操作转换为UOML的操作,并将操作的返回结果转换为编程语言的返回类型。2. 如权利要求1所述的方法,其特征在于,所述编程语言为面向对象的 编程语言,步骤A中所述的编程语言中的复合数据类型为类,UOML对象的 属性和子元素对应于类的成员变量;步骤B中所述的编程语言的API函数原 型为对应类中的成员函数...

【专利技术属性】
技术研发人员:王东临邹开红
申请(专利权)人:北京书生国际信息技术有限公司
类型:发明
国别省市:11[中国|北京]

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

1