Использование 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
объекты при разборе этого файла?
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
который является правильно сформированным объектом.