在eclipse中导入基于UML2 version 2.0.0的UML模型

Importing a UML model based on UML2 version 2.0.0 in eclipse

我有一个基于 UML2 版本 2.0.0 (xmlns:uml="http://www.eclipse.org/uml2/2.0.0/UML") 的 UML 模型。在 Eclipse 中,我安装了最新版本的 Papyrus,它带有 UML2 版本 2.5.0。

我的模型是从 Rhapsody 生成的一个非常简单的模型,其中我有一个 Requirement(requirement_1)、一个 Block 和一个 Operation( test_req()) 在块中。在模型中,test_req() 操作验证 requirement_1 如下图所示:

使用 Rhapsody XMI 工具包,我将模型导出为 XMI 格式并尝试将其作为 Papyrus 项目导入到 Eclipse。当我将模型导入 Papyrus 项目时,未检测到应用于 test_req() 和 requirement_1 之间依赖关系的 Stereotype(verify):

如图所示,<<verify>> 刻板印象未应用于 requirement_1

谁能解释为什么缺少刻板印象?是因为UML2版本不同吗?我怎样才能解决这个问题?

我也发布了我的UML模型以供参考here

我之前使用 Rhapsody 生成代码,从 sysml 图到基于 eclipse 的 Windriver workbench。 我不知道 xml import/exporting ,但是当我们将配置更改为 eclipse 样式并在 CPP_CFG 部分设置编译器设置时,rhapsody 能够直接在 eclipse 环境中生成代码. 也许这对你也有用。

这里的主要问题是我的模型是基于 UML2 2.0.0 版的,在 eclipse 中,我安装了最新版本的 UML,即 UML 2.5.0。因此,当我尝试将我的模型导入到 Papyrus 项目时,它使用 UML2 版本 2.5.0 而不是 2.0.0,因此无法识别某些原型。

我可以通过添加以下代码来修复我的代码,该代码在模型中找到现有关系,以确保使用 UML2 版本 2.0.0:

ResourceSet set = new ResourceSetImpl();
UMLResourcesUtil.init(set);
set.getResourceFactoryRegistry().getExtensionToFactoryMap()
    .put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);

set.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);

Map<URI, URI> uriMap = set.getURIConverter().getURIMap();
URI uri = URI.createURI("jar:file:/home/jars/org.eclipse.uml2.uml.resources_2.0.3.v200707131442.jar!/"); // for example
uriMap.put(URI.createURI(UMLResource.LIBRARIES_PATHMAP), uri.appendSegment("libraries").appendSegment(""));
uriMap.put(URI.createURI(UMLResource.METAMODELS_PATHMAP), uri.appendSegment("metamodels").appendSegment(""));
uriMap.put(URI.createURI(UMLResource.PROFILES_PATHMAP), uri.appendSegment("profiles").appendSegment(""));