论文导读:图表可以以XMI格式存储。元数据交换(XMI)。在OracleJDeveloper中通过XMI开发UML图表。
关键词:UML图表,XMI,OracleJDeveloper
统一建模语言(UML),是由对象管理组织(OMG)建立的一个规范,是一种可视化建模与设计语言,它在近几年来发展成为复杂的面向对象的软件应用程序提供说明和编写文档的事实上的标准。
UML建模通过使用图表可视化地表示业务过程流程以及软件和数据组件之间的交互作用。标准的UML图表包括类图表、用例图表、状态图表、活动图表、协作图表、顺序图表和部署图表。
XML元数据交换(XMI),旨在简化数据集成的另一种OMG规范,用于表示UML对象的一种流行格式;UML图表可以以XMI格式存储,相反,UML图表也可以从XMI文件中创建。为此,XMI简化了UML图表数据的传输,许多UML工具支持这种交换功能。
在本文中,我们将用一个示例EnterpriseJavaBean(EJB)部署描述符ejb-jar.xml生成一个XMI文档。
如果没有自动以XMI格式存储UML图表的工具,那么可以使用XSLT生成XMI文档。由示例部署描述符创建的XMI文档显示一个UML类图表;该图表将表现部署描述符EJB的分析视图。论文检测,OracleJDeveloper。论文检测,OracleJDeveloper。该XMI文档将在JDeveloper 10g中被转换成一个UML图表。
1. 预备设置
需要oracle.xml.parser.v2.oraxsl类来从XML文档中生成XMI文档。首先,下载Oracle XML开发人员工具包(XDK),并将<XDK10g>/lib/xmlparserv2.jar添加到Classpath中。<XDK10g>是安装XDK的目录。然后,下载并安装JDeveloper 10g。
2. 生成UML类图表
如上面所述,UML类图表显示一个类中的不同实体。在本部分中,我们将通过示例EJB部署描述符为一个UML类图表创建一个XMI文件。
容器管理的持久性(CMP)实体EJB的示例ejb-jar.xml部署描述符指定了一个EJB类中的不同的字段和查询方法。由ejb-jar.xml创建的UML类图表将显示EJB Bean类和EJB接口中的不同属性和方法。分析视图UML类图表包含一个具有三个水平区域的矩形。较上面的区域显示类名,中间区域显示与EJB中的字段相对应的类属性,较下面的区域显示EJB bean类和EJB接口中的方法。图1中显示了一个示例类图表。

图1 UML类图表
UML类图表中的XMI表示包含与UML类图表中的类、属性和操作相对应的XML元素和属性。下表列出了一个XMI文档的一些元素。
元素 |
应用程序 |
常用属性 |
XMI |
XMI 文档的根元素 |
xmi.version='1.2' xmlns:UML='org.omg.xmi.namespace.UML' |
XMI.content |
包含传输的实际数据 |
|
XMI.header |
代表 XMI 文档 |
|
UML.Model |
代表 UML 模型 |
xmi.id、isSpecification、name、isRoot、isLeaf、isAbstract |
UML:Namespace.ownedElement |
包含 UML:Class、UML:Attribute、UML:Operation、UML:Package 和 UNL:Stereotype 元素 |
|
UML:Class |
代表 UML 类 |
xmi.id、visibility、isSpecification、isRoot、isLeaf、isAbstract、isActive、name |
UML:Attribute |
代表 UML 类属性 |
xmi.id、visibility、isSpecification、ownerScope、name、type |
UML:Operation |
代表 UML 类图表方法 |
xmi:id、name、Visibility、isSpecification、ownerScope、isQuery、concurrency、isRoot、isLeaf、isAbstract |
UML:Parameter |
代表方法参数 |
xmi:id、name、isSpecification、kind |
UML:Package |
代表一个类图表包 |
xmi:id、name、visibility、isAbstract、isRoot、isLeaf |
UML:Stereotype (JDeveloper当前不支持) |
代表类图表模板(例如<<entity>>) |
xmi.id、name、visibility、isSpecification、isRoot、isLeaf、isAbstract |
3. 生成XMI文件
创建一个XSLT将示例XML文档转换成一个XMI文件,该文件包含UML类图表在XMI和UML命名空间内的元素。在JDeveloper中选择File>New来创建XSLT。在显示的New Gallery框架中,选择General>XML,然后在列出的项目中选择XSLT Stylesheet。论文检测,OracleJDeveloper。在本例中,通过一个名为UMLAnalysisView.xslt的XSLT文件,将示例XML文档ejb-jar.xml转换成一个XMI文档UMLAnalysisView.xmi。在示例ejb-jar.xml中,所有的CMP字段都是String类型。如果一些字段不是String类型,那么需要修改该XSLT。oraxsl实用程序用于XSLT转换。
>java oracle.xml.parser.v2.oraxsl ejb-jar.xml
UMLAnalysisView.xslt UMLAnalysisView.xmi
在示例代码中提供了所有三个文件。
4. 在JDeveloper 10g中显示UML类图表
在这一部分中,我们将把XMI文档导入到JDeveloper中,以生成一个分析视图类图表。首先,启动JDeveloper 10g并创建一个项目,如图2所示。
如图3选择File>New,打开一个XMI文档。
 
图2 创建一个JDeveloper项目图3 打开一个XML文档
在显示的框架中,从XMIImport中选择General>Diagrams>UML Class Diagrams,如图4所示。选择要从中创建我们的UML类图表的XMI文档(UMLAnalysisView.xmi)。

图4 从XMI Import中选择UML Class Diagram
然后将在Applications-Navigator框架中为UMLAnalysisView.xmi文档添加一个名为ClassDiagram for XMI Import的节点,如图5所示。论文检测,OracleJDeveloper。

图5 Class Diagram XMI Import节点
要显示UML类图表,如图6所示,右键单击Class Diagram XMIImport,然后选择Open。

图6 打开ClassDiagram XMI Import
然后将显示与UMLAnalysisView.xmiXMI相对应的UML类图表,如图7所示。

图7 JDeveloper中的UML类图表
类图表的较上面的区域包含类名称。论文检测,OracleJDeveloper。中间的区域包含类属性,它们对应ejb-jar.xml中的cmp字段。还指定了属性的数据类型。底下的区域包含了与EJB Bean类和接口中的create、finder、getter和setter方法相对应的类操作。类操作包含了方法的返回类型。分析视图类图表也可能包含其他特性,如ejbSelect和各种业务方法。论文检测,OracleJDeveloper。
5. 结论
正如所看到的,XMI格式使得传输用来重建UML图表的UML图表元数据变得非常方便。如果没有UML工具将UML图表导入到XMI文档中,那么可以直接从XML文档中创建XMI文档。
参考文献
[1]何致亿.Oracle Jdeveloper 10g与J2EE实战演练[M].电子工业出版社,2005.
[2]徐强,金艳红.精通XMI——使用XMI、XML和UML进行Java编程[M].电子工业出版社,2004.
|