Использование Eclipse UML2 для анализа файла XMI, созданного Visual Paradigm

Я нарисовал диаграмму классов с помощью Visual Paradigm 8 и экспортировал проект в файл XMI 2.1 (экспорт для UML2). поэтому есть два файла (test.xmi.uml и test.xmi.profile.uml). Чтобы разобрать test.xmi.uml, я написал этот код Java, используя eclipse uml2 и emf:

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, проанализировав этот файл?


person Ehsan Soleimani    schedule 23.10.2016    source источник


Ответы (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);

eobj является экземпляром org.eclipse.uml2.uml.Model, который является правильно сформированным объектом.

person Ehsan Soleimani    schedule 23.10.2016