2016-10-23 9 views
1

Visual Paradigm 8에서 클래스 다이어그램을 그려서 프로젝트를 XMI 2.1 파일 (Export for UML2)로 내 보냈습니다. 그래서 두 파일 (test.xmi.umltest.xmi.profile.uml)이 있습니다.Eclipse UML2를 사용하여 시각적 패러다임에서 생성 된 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입니다 : 는 test.xmi.uml을 분석하기 위해 나는 일식 UML2 및 EMF를 사용하여이 자바 코드를 썼다. 이 파일을 구문 분석하여 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의 인스턴스입니다.