时间:2022-12-17 16:30:02 | 来源:信息时代
时间:2022-12-17 16:30:02 来源:信息时代
对象交换格式 : 一种说明语言,用于从一个或多个文件中装载ODMS或将ODMS的当前状态导出到文件中。对象交换格式可以用来在对象数据管理系统之间交换持久对象、传播数据、提供文档以及导出测试组件。
对象交换格式被设计成能支持与ODMG对象模型和对象定义语言的模式定义兼容的对象数据管理系统,其设计还遵守美国国家信息技术标准委员会(national committee for information technology standards,NCITS)和机械CAD的PDES/STEP(使用STEP的产品数据交换,产品模型数据交换标准)等相关标准。
一个OIF文件是由一个或多个对象定义组成的,一个对象定义就是一个对象标识符(具有可选的物理簇集指示器)和一个类名(具有可选的初始化信息)。ODMG 3.0标准中OIF的主要内容包括:
(1) ODMS状态(ODMS states): 通过对象标识符、类型绑定、属性值、到其他对象的链接这些项来刻画包含在一个ODMS中的所有对象的状态,所有这些项都在OIF中说明。
(2)基本结构(BASIC structure): 一个OIF文件中包含有对象的定义,每个对象定义说明了类型、属性值及该对象与其他对象的关系。对象标识符是用对象标签名来说明的,该对象标签名在OIF文件中是唯一的,且在OIF文件的所有集合中可见,支持标签名的循环使用。
(3)对象定义(object definition): 对象定义用来创建类的实例,对象标签被用来在OIF文件的所有集合内引用被定义的对象。对象定义具有可选的物理集聚指示器,用于创建物理上与某个持久对象接近的某个类的实例,物理接近是与实现无关的。若无集聚指示,则OIF中对象定义的顺序决定集聚顺序。
(4)属性值初始化(attribute value initialization):对象属性的任意一个子集可以显式初始化,按照ODL定义的顺序初始化所有属性可采用简单初始化格式,而要初始化具有相同属性值集合的对象则可采用复制初始化格式。同时,支持用布尔文字、字符文字、整数文字、浮点数文字、字符串文字来相应初始化属性值域为布尔类型、字符类型、整数类型、浮点数类型和字符串类型的属性; 支持对结构类型、多维属性、集合属性的初始化。对结构类型的属性的初始化与持久对象类似。
(5)链接定义(link definition): OIF中的链接定义用于说明对象间的关系,基数为1的链接关系可看作为属性,用对象的标签名来初始化。基数为多的链接关系可视为集合,用所有被链接对象的标签名来初始化。在一个对象定义内的链接定义是类型安全的,即一个对象标签使用时其类型或子类型必须是关系的类型,如果一个对象标签说明中其类型或子类型与关系中的类型不同,运行时会产生错误,OIF中也可以建立循环链接并在整个OIF文件集中可见。
(6)数据迁移(data migration):一个特定ODMS中的命名对象可以应用在使用前向声明机制的OIF文件中。在这种情况下,使用对象名进行对象搜索、匹配类型等操作在现有的ODMS中进行。前向声明在整个OIF文件中可见,可出现在文件中任意位置。
(7)命令行工具(command line utilities):每个支持OIF的ODMS都提供odmsdump和odmsload两个实用工具,odmsdump用于创建特定ODMS的一个OIF表示,对象标签名使用与实现相关的命名产生算法自动创建。odmsload用于装载一个ODMS,用在文件中说明的对象来组装ODMS。
由于对象交换格式的设计遵守NCITS和PDES/STEP等标准,因此对象交换格式在工程和设计领域的应用较为广泛,并将在日益复杂的工程和设计领域的数据交换中起重要作用。