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

时间:2016-10-23 07:34:41

标签: java parsing uml xmi visual-paradigm

我已经通过Visual Paradigm 8绘制了一个类图,并将该项目导出为XMI 2.1文件(导出为UML2)。所以有两个文件(controller: ['$scope', function ($scope) { var scope = $scope; // does not work - data is not displayed in view: serviceData.get('jobs', scope.itemid).then(function (data) { scope.dataJobView = data; }); }], test.xmi.uml)。 要解析test.xmi.profile.uml我使用eclipse uml2和emf:

编写了这个java代码
test.xmi.uml

但输出对象(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个对象?

1 个答案:

答案 0 :(得分:1)

我终于找到了答案: 使用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的一个实例,它是格式良好的对象。