STEP与XML转换系统设计与实现
2013-09-12张运森刘保国
张运森,刘保国
(1.机械工业第六设计研究院有限公司,河南郑州 450007)
(2.河南工业大学机械电子工程研究所,河南郑州450052)
STEP与XML转换系统设计与实现
张运森1,刘保国2
(1.机械工业第六设计研究院有限公司,河南郑州 450007)
(2.河南工业大学机械电子工程研究所,河南郑州450052)
通过研究现有STEP格式数据与XML文档转换实现方法,构建了一种STEP与XML格式数据之间新的转换系统模型及实现方案,给出了基于Java早联编实现SDAI,以及后期绑定实现EXPRESS与XML Schema映射的实现方法,并设计了STEP与XML格式数据转换系统开发环境及具体实现过程,开发的针对STEP中性文件的转换程序验证了转换系统模型和实现方法的可行性。
STEP;XML;数据转换;网络制造
STEP格式数据向XML文档转换的转换系统设计是解决STEP与XML相结合实现网络制造异构平台间产品数据共享和集成的关键技术之一[1]。目前,国外很多研究机构对STEP格式文件向XML文档转换的转换系统设计进行了研究,如STEP Tools公司的STEP Developer最新版本中加入了对STEP与XML转换的支持。国内用到的STEP与XML转换系统基本是从国外引进的研究结果,现有的转换系统在实际使用中发现了许多弊端,这些转换系统都是根据国外已经成熟的网络制造模式来设计的,设计的适用模式都是以国外企业操作流程和模式来制定,与国内众多企业还存在很大的差异,使用起来也不便利。因此,如果国内的设计制造行业开发自己的转换系统,就有必要在STEP与XML数据转换技术上展开深入研究[2]。
1 STEP与XML转换系统开发方案
1.1 国内现有的一种转换实现方法
这种转换方法首先通过对CAD软件(如Pro/E等)生成的一些基本图形的STEP文件进行人工分析,获得STEP物理文件的结构、格式、语法以及语义的分析结果,建立STEP语法规则。然后,应用编译技术对导入的STEP文件按字符形式进行词法分析、语法分析以及语义分析,获取STEP数据[3]。最后,把实际分析结果应用到 EXPRESS(ISO10303-11)与XML映射机制,对XML文档的结构和语法语义进行定义,建立起STEP实例与XML元素的对应关系,从而生成XML文档。该转换系统实现过程如图1所示。
图1 STEP/XML转换系统框架
虽说这种方法可以实现特定应用情况下CAD图形数据的STEP格式向XML转换,但是它存在很多缺陷,主要有:(1)只支持STEP中性文件存储形式的图形数据向XML转换,并且没办法扩充对其他应用协议和数据存储形式的支持。(2)编译技术是用来将高级语言向低级语言转换的,并不适合用来处理标记语言之间的转换,编译程序的处理过程非常复杂,实现起来效率非常低。
1.2 STEP与XML转换系统框架模型及实现方案
在综合分析实现STEP和XML转换的基本原理和现有实现方法的基础上,本文提出一种针对STEP的应用协议AP203(三维产品形状表示和配置控制设计),在基于SDAI实现对STEP数据操作的基础上,实现STEP与XML转换的方法。图2所示为该实现方案的系统框图。
图2 STEP与XML转换系统框架模型
该转换系统的实现主要分两大部分:一部分是实现SDAI,对STEP产品数据进行相应的操作处理,提取STEP实例数据;另外一部分是建立特定EXPRESS数据模型到XML Schema/DTD(Document Type Definition,即文档类型定义)的映射,该XML Schema/DTD作为生成XML文档的文档结构以及校验模型。在实现映射的基础上,通过SDAI把STEP文件或数据库中各实例的相关产品数据(作为XML文档中的元素)提取出来,赋给中间变量保存;然后,利用XML编程接口(SAX技术),再根据定义好的DTD/Schema,结合提取到的STEP实例数据来创建XML文档。整个过程建立在相互映射的基础上,是一个可逆的过程,表达STEP数据的XML文档也可以转换为STEP格式数据存储。
这种实现方法的优点在于:SDAI能屏蔽产品数据的不同物理存储方式之间的区别。采用SDAI,应用系统的设计便能独立于STEP标准采用的所有数据存贮管理系统。这样,任何符合STEP标准的系统之间都能进行数据交换,进而实现数据共享。通过这种方式,那些基于SDAI的应用系统(如CAD、CAM、PDM)的开发可以不考虑底层的数据存储形式(不论是关系型数据库、面向对象数据库或STEP文件系统),若底层的数据存储形式发生更换,应用系统也无需做大的修改,提高了应用系统的可移植性。
2 系统实现关键问题及解决方法
2.1 基于某种联编语言实现SDAI
目前有基于C、C++和Java语言的SDAI实现手段,其中Java语言是网络计算时代的程序设计语言,具有对网络更好的支持。本文的研究内容基于网络制造大环境下的应用,采用Java语言,可以为后续开发奠定更好的基础。根据标准对SDAI的定义,基于Java的SDAI实现主要包括三方面的内容:EXPRESS语言与Java语言的语言联编,SDAI操作的定义,面向支持系统的SDAI操作实现。
实现语言联编,关键是将EXPRESS模式中的元素(schema、实体、属性、简单数据类型、定义数据类型、聚合数据类型,以及常数、函数)映射到Java[4]。其中,EXPRESS 实体映射主要是将 EXPRESS实体及各自实体属性的存取方法映射到相应的Java类和接口。下面给出按早联编方法定义的EXPRESS主要元素——实体到Java的映射。
a.实体映射到Java。
为了支持EXPRESS模型中的多继承语义,实现映射时将EXPRESS模型中的每一个Entity映射为一个Java接口和一个对应的实现类,该接口为实体的每一个显示属性产生两个读取方法:set<attribute>和get<attribute>。本文将每一个EXPRESS实体“xxx”映射为一个 Java接口“EXxx”,一个Java类“CXxx”及一个附加的Java类“AXxx”用于包含这个实体的实例的集合。
b.实体数据类型到Java的映射。
实体数据类型按如下法则映射到Java:(1)通过带“E”前缀的Java接口去表达实体数据类型,例如“EXxx”;(2)通过以“C”前缀开头的Java类表达复合实体数据类型,如“CXxx”;(3)多重实体数据类型用“&”分割;(4)通过带“A”为前缀的Java类表达实体数据类型的集合,如“AXxx”。
定义所有EXPRESS元素与Java的映射之后,参考STEP Part22标准,将本文创建的EXPRESS模式对应类和接口继承自SDAI基础类库——JSDAI的基础类和接口,并根据自定义规则使用JSDAI ExpressCompiler编译器工具生成,实现访问该EXPRESS模式所对应STEP文件的SDAI接口,实现EXPRESS语言与Java语言的语言联编。
由于读写STEP文件的操作主要针对AP203协议来实施,因此在使用JSDAI实现产品数据操作时,导入相应的 jsdai.SConfig_control_design包。其中包含了关于AP203协议中的各种映射,通过这种映射可以获取对于产品描述的各个部分的信息。对于STEP中性文件,可以通过打开一个SDAI文件存储,将 STEP Part21文件读入,并将 Part21文件中的每一个实例数据映射成一个Java SDAI早联编类的实例。
2.2 实现EXPRESS与XML的映射
进行EXPRESS与XML映射的关键是要确定所要采用的实现方式。STEP Part28标准推荐了两种STEP到XML的映射方法:前期绑定和后期绑定[5]。下面通过一个实例对它们进行具体分析。
a.在前期绑定映射中,XML的标记与 EXPRESS数据模型中的数据类型及其属性直接对应。
例如,针对如下的一个矩形(rectangle)的EXPRESS定义,实体矩形(rectangle)由一个id值和两个属性值width/height组成:
b.在后期绑定中,XML的标记不直接与EXPRESS数据模型中的数据类型对应,而是直接与EXPRESS的元数据对象(包括实体,属性,数据类型)相对应[3]。
上述EXPRESS模型若利用后期绑定,生成的XML文档为:
由以上对比可知,EXPRESS到XML的后期绑定映射更适合应用于含多个EXPRESS信息模型的XML交换应用中,在这样的环境下,如果采用前期绑定策略,就必须为每一个EXPRESS模型设计不同的XML标记集(即要为每个EXPRESS模型设计不同的DTD/Schema),这会使实现复杂化。因此虽然前期绑定比后期绑定表示形式更为精炼,处理更简单,为了使异构平台之间包含多个EXPRESS模型的产品数据交换系统具有很好的通用性和可移植性,应当采用后期绑定方式。在确定了EXPRESS数据模型与XML的绑定方法之后,就可以根据Part28标准规定,实现EXPRESS与XML的映射。
由于XML文档与EXPRESS数据模型在数据结构定义方面非常相似,可以利用EXPRESS映射得到标记或定义新的标记来描述产品数据,并用相应的XML Schema定义产品数据文档,实现STEP和XML之间的映射[2]。在创建完Schema,成功确定XML文档的结构后,就可以把提取出来的STEP文件中的实体数据转换成对应的XML元素,最后按照Schema确定的XML文档结构生成XML文件,完成STEP到XML的转换。
3 系统的具体实施
3.1 实现过程
系统实现选择在 Eclipse平台上进行,将JSDAI工具包集成到Eclipse,并加入相应类用于在SAX(XML简单API)以及SDAI之间传递STEP实体实例数据,整合JSDAI和XML操作,搭建集成开发环境。整个实现流程如图3所示。
图3 STEP-XML数据转换流程示意图
首先通过EXPRESS Complier按早联编的方法编译符合AP203协议的特定STEP中性文件的EXPRESS模式,生成对应模式的相关类和接口;然后编制处理STEP中性文件的处理程序完成对文件的读取等操作。其中,SDAIModel用于组织基于一个该模式的实体实例,以便程序需要时能访问模型的任何实体实例;SDAIRepository用于导入该AP203中性文件,该文件以命令行的形式被指定到一个特定的资源库[6]。随后,将读取的实例数据通过JSDAI与XML连接接口传递给SAX。另一方面,根据后期绑定的映射规则将EXPRESS模式对应生成XML Schema文档。之后利用SAX生成相应的XML文档。其中虚线部分是逆转换,在此不再赘述。按此过程,本文编制程序实现了针对特定EXPRESS模式的STEP中性文件与XML文档的转换。
3.2 转换实例
下面结合实际工程设计模型来验证转换方法和实现过程。著名CAD软件Pro/E提供了对AP203应用协议的支持,图4所示是Pro/E建立的带阶梯孔的四方体模型图对应的STEP中性文件部分代码。
图4 Pro/E产生的STEP文件
转换程序对应生成的XML文档应用IE浏览的效果,如图5和图6所示。
图5 XML文档的头部段部分显示
图6 XML文档的数据段部分显示
4 结束语
本文给出的转换系统实现方案通用性强,为实现STEP与XML之间产品数据转换提供了一种新的解决方法,为转换系统设计提供了一定的技术支持。但是,目前的研究工作仅通过较为简单的实例来验证实现方案的可行性,要真正在实践中体现其价值,还需要进行后续XML数据的处理以及进一步完善对复杂数据模型的支持,更大范围地对STEP标准中的相关协议进行映射。
[1]李玉中,奚建清,陈泽琳.基于STEP与XML相结合的虚拟制造数据模型研究[J].制造业自动化,2004,26(6):15 -19.
[2]郝永平,谢来勇,邵伟平,等.基于XML的产品信息模型网络转换技术研究[J].计算机工程与应用,2005,41(35):82 -84.
[3]仇哓黎,易红,吴锡英.XML在基于STEP的产品数据表达中的应用[J].计算机集成制造系统,2003,9(6):489-492.
[4]黄忠东,杨小虎,董金祥.SDAI实现中若干关键技术的研究[J].计算机辅助设计与图形学学报,2001,13(11):977-982.
[5]张运森,刘保国,刘珂.基于XML与STEP的产品数据描述及转换技术研究[J].制造业自动化,2009,31(3):36 -38.
[6]ISO 10303 Editing Committee.ISO TC184/SC4.10303 -28.Part 28 Implementation methods:XML representations of EXPRESS schemas and data[S],2007.
Design and Implementation of Conversion System for STEP and XML
ZHANG Yunsen1,LIU Baoguo2
(1.SIPPR Engineering Group Co.,Ltd.,Henan Zhengzhou,450052,China)
(2.Henan University of Technology,Henan Zhengzhou,450052,China)
Based on research of the existing realization conversion method between STEP data and XML document,it proposes a new framework for conversion system,shows the realization approaches,which uses early binding to accomplish SDAI based on Java and the late binding to accomplish mapping of EXPRESS and XML Schema.Besides,it designs the development environment and concrete realization process,and develops the conversion process for specific STEP neutral file to verify feasibility of the conversion model and the realization methods.
STEP;XML;Data Exchange;Networked Manufacturing
TH166;TP393
A
2095-509X(2013)11-0026-04
10.3969/j.issn.2095-509X.2013.11.007
2013-07-01
张运森(1982—),男,河南驻马店人,机械工业第六设计研究院有限公司助理工程师,工学硕士,主要研究方向为数字化设计与制造、网络化制造等。