1

Visual Paradigm 8 でクラス図を作成し、プロジェクトを XMI 2.1 ファイル (Export for UML2) としてエクスポートしました。したがって、2 つのファイル (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このファイルを解析してオブジェクトのような適切にフォーマットされたオブジェクトを取得するにはどうすればよいですか?

4

1 に答える 1

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

于 2016-10-23T14:21:45.817 に答える