2016-10-23 76 views
1

我已經通過Visual Paradigm 8繪製了一個類圖並將該項目導出爲XMI 2.1文件(導出爲UML2)。所以有兩個文件(test.xmi.umltest.xmi.profile.uml)。 爲了解析test.xmi.uml我寫使用eclipse UML2和電動勢此Java代碼:使用Eclipse UML2解析Visual Paradigm生成的XMI文件

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); 

eobjorg.eclipse.uml2.uml.Model一個實例是一種形成井對象。