基于XMI标准实现UML到XML转化
摘要:MDA的早日实现依赖其生成器的支持,基于XMI的UML模型与XML Schema的转换的研究属于MDA生成器的研究.本论文介绍了MDA标准的基本思想,说明对UML模型进行信息提取的必要性,然后介绍了UM L模型到XML文件的转换过程,给出生成UML文件所需的DTD 定义,并介绍用DOM 实现对XML文档进行操作的方法,最后说明此转换在项目中的应用情况。
论文关键词:XMI,UML,XML,模型驱动体系结构
2002年初,OMG把MDA(Model Driven Architect ure ,模型驱动架构)作为它的战略方向 ,MDA成为近几年新的关注焦点,被视为解决平台无关、技术无关,以及异构系统高效整合问题的最有希望的途径.制定与主持发布了与MDA相关的一系列标准。其核心思想是采用一套标准语义建立信息系统的业务模型,然后实现元模型到各种开发平台的映射,最终达到应系统在元模型上的统一。其实UML类图、XML Schema属于数据在不同阶段的定义方式 ,他们是统一的、一致的,既然,软件开发中已经花精力设计了UML图 ,就没必要再重复工作来分析设计XML Schema,正如MDA的倡导完全可以由UML模型生成XML Schema[1]。
2 UML到XML转化
2.1 实现转换的必要性
UML是一种可视化的建模语言,它是在面向对象思想的形成和发展过程中成熟起来的,具有定义良好、易于表达、功能强大和普遍适用的特点,成为面向对象建模的首选。UML的定义包括UML语义和UML表示法两部分;UML语义通过其元模型严格定义。元模型为UML的所有元素在语法和语义上提供了简单、一致、通用的定义性说明,使开发者在语义上取得一致,另外,UML语义支持对元模型的扩展定义。UML表示法定义了UML的表示符号,为建模者和建模支持工具的开发者提供了标准的图形符号和正文语法[2]。通常,系统分析人员采用一种UML建模环境(如Rational公司的ROSE)建立业务模型,这些图形化的业务模型(如用户实例图、类图、顺序图、状态图等)包含应用系统中的数据结构与逻辑约束,但这种业务模型的外在表现是图形的集合,不便于开发环境对模型的进一步处理。为解决这个问题,我们把模型中的信息输出为显式文件(XML ),以实现对模型的后续处理以及模型之间的信息交换。采用XML 作为模型信息的载体基于以下原因:(1) XML是开放的、平台无关的、独立于软件开发商的一种标准;(2)XML 支持扩展的ISOUnicode字符集,可在多种操作系统平台上进行处理;(3)XML独立于模型而存在,可表示MDA中的元—元模型信息;(4) XML与编程语言无关,开发人员可采用DOM、SAX、Web-DAV等技术实现XML文件的APIs,完成XML 文档的创建、浏览和集成工作;(5)构造和解析XML文档比较方便,XML文档的标签结构和文本描述的语义能表达结构化信息。目前,XML已逐步替代HT 成为在企业在Internet上传递信息、进行电子商务的中间媒介[3]。
2.2 转换过程
系统开发人员首先在支持UM L标准的图形化建模环境中对业务模型进行描述,生成用户实例、顺序图、类图等表示动态流程与静态结构的信息实体,这些信息实体会保存在模型库中。在进行模型信息处理时,通过UML建模环境提供的API对模型中的模型类别、元素、参数、约束、数据类型等元—元数据进行处理,转换为可识别的信息模型,然后通过规范的DTD,生成与元模型一致的XML 文件描述。在XML生成过程中,可借助一些标准的组件,如DOM(Document Object Model)、Web-DAV(Web based Distributed Authoring and Versioning)进行开发,提高XML 文档生成的速度与质量[7]。
3 XMI标准中的DTD定义
3.1 基本规则
从UML 模型中生成XML文档需要一定的规则,OMG 组织正在制定和完善的XMI 标准即为这一目标而设计,此标准采用数据流交换格式(Stream-based Model Interchange Format,SMIF)进行数据传递,目的是建立不同知识库、中间件、工具之间的标准交换机制。XMI规范主要包含两方面的内容:XM L D T D 生成规则和X M L Document生成规则,前者针对XMI编码元数据生成XML DTD,后者把元数据解释成与XML兼容的格式。DTD与XML分离的优点在于DTD 可以存储在本地,数据交换只需传递XML 文件,在一段时间内,D T D 是稳定的,这样可减少数据交换量。XMI特别针对基于MOF的元模型作出定义,对于不符合MOF 规范的元模型,也可通过XMI 进行个别映射以实现交换[4]。XMI规范所定义的每一个元素必须满足以下要求:(1)每一个XMI 定义的元素必须有相应的DTD 声明; (2) 元模型的每一个组成(类,属性,关联)必须有相应的元素声明及可能的属性声明;(3 ) 任何表达元模型扩展机制的XML元素必须在扩展DTD中定义。在XMI标准的应用中,重点是DTD的定义和生成,它决定了UML中基本元素到XML的映射关系。XMI定义了23种DTD元素,大致可以划分为4 类:文档声明的元素;表示元模型的元素;表示元模型扩展的元素;表示元模型区别的元素。其中UML模型基本信息一般用表示元模型的元素来表示。
3.2 UML基本元素在DTD中的处理
DTD 中的23种元素按用途和作用范围分为处理指令;可选的字符集控制;任何合法的其他XML处理指令;具体元模型的声明;元模型差异声明;元模型扩展(extension)声明;属性声明等类型[5,6]。每种类型中包含若干指令,如扩展声明中Add和Delete操作,这些元素组成一定语义来表达UML 中的元模型。下面重点以UML 中的静态信息处理为例,说明UML模型到DTD映射的表示方法。
(1)类表示
每一个元模型类都以XML元素来表达,元素名对应类名,元素定义中列出类的属性,与类相关的关联端的引用,以及该类包含的内部类。属性与关联的顺序不作要求。以下是一个元模型类C 的定义,其属性、关联为空。
%XMI.element.att;
%XMI.link.att;
>
(2) 属性表示
http://www.751com.cn/ 类c中元素a的声明格式如下:
一个元素的类型规范(type specification) 可以直接对应于元模型中的类型声明,或通过扩展方式进行定义,扩展类型用字(string) 类型表示,其定义如下:
reference)*>
元素a如果为枚举类型变量,XML处理器需验证枚举值的合法性,其定义表示如下:
基于XMI标准实现UML到XML转化下载如图片无法显示或论文不完整,请联系qq752018766