java - 使用 Eclipse UML2 解析 Visual Paradigm 生成的 XMI 文件

标签 java parsing uml xmi visual-paradigm

我用 Visual Paradigm 8 绘制了一个类图,并将该项目导出为 XMI 2.1 文件(导出为 UML2)。所以有两个文件(test.xmi.umltest.xmi.profile.uml)。 为了解析 test.xmi.uml,我使用 eclipse uml2 和 emf 编写了这个 java 代码:

ResourceSet set = new ResourceSetImpl();
set.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
set.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
Resource.Factory.Registry.INSTANCE.getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
Resource res =  set.getResource(URI.createFileURI("C:\\test.xmi.uml"), true);
EObject eobj = res.getContents().get(0);

但是输出对象(eobj)是一个AnyTypeImpl,无法很好地读取。 我应该如何通过解析此文件来获取格式良好的对象,例如 org.eclipse.uml2.uml.Model 对象?

最佳答案

我终于找到了答案: 使用 org.eclipse.uml2.uml.resources.util.UMLResourcesUtil.init() 初始化解析 .uml 文件所需的参数。 所以代码必须是这样的:

ResourceSet set = new ResourceSetImpl();
UMLResourcesUtil.init(set);
Resource res = set.getResource(typesUri, true);
EObject eobj = res.getContents().get(0);

eobjorg.eclipse.uml2.uml.Model 的一个实例,它是一个格式良好的对象。

关于java - 使用 Eclipse UML2 解析 Visual Paradigm 生成的 XMI 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40200639/

相关文章:

css - 如何测试 CSS 解析器?

java - java中如何将大字符串保存到xml文件中?

java - HQL 查询中出现意外 token 错误

java - 在 Eclipse RCP 中嵌入 Silverlight 应用程序

java - 在 debian 8 上使用 chromedriver 启动 Selenium 后出错

java - 如何生成 Kotlin 代码的图表和 UML?

使用 Integer.parseInt(String arg) 时出现 Java NumberFormatException

c++ - 关于 XML 解析

programming-languages - UML 是领域特定语言 (DSL) 吗?

UML 是否仍将组合/聚合对象显示为成员变量?