1
에서 Ecore를 XMI에서 모델 클래스를 생성 :EMF 우리가 이런는 Ecore 모델을 생성 할 수 있습니다, 런타임
이 전혀 클래스 경로에 이러한 클래스 없지만, 우리가 다른 작업에 사용할 수 있습니다// 动态创建一个Book的子类,Magic power comes from here
// create the SchoolBook EClass
EClass schoolBookEClass = efactory.createEClass();
schoolBookEClass.setName("SchoolBook");
// create a new attribute for this EClass
EAttribute level = efactory.createEAttribute();
level.setName("level");
level.setEType(epackage.getEInt());
schoolBookEClass.getEStructuralFeatures().add(level);
// 设置父类
schoolBookEClass.getESuperTypes().add(ExtlibraryPackage.eINSTANCE.getBook());
// 创建新的课程类
EClass courseEClass = efactory.createEClass();
courseEClass.setName("Course");
// 课程名称属性
EAttribute courseName = efactory.createEAttribute();
courseName.setName("courseName");
courseName.setEType(epackage.getEString());
courseEClass.getEStructuralFeatures().add(courseName);
// 课程对教材的引用关系
EReference courseBook = efactory.createEReference();
courseBook.setName("courseBook");
courseBook.setEType(schoolBookEClass);
courseBook.setContainment(false);
courseEClass.getEStructuralFeatures().add(courseBook);
// 创建包
EPackage schoolPackage = efactory.createEPackage();
schoolPackage.setName("elv");
schoolPackage.setNsPrefix("elv");
schoolPackage.setNsURI("http:///www.elver.org/School");
schoolPackage.getEClassifiers().add(courseEClass);
schoolPackage.getEClassifiers().add(schoolBookEClass);
EPackage.Registry.INSTANCE.put(schoolPackage.getNsURI(), schoolPackage);
, ui를 생성하고 데이터베이스에 저장하십시오.
ECore 모델의 XMI 직렬화를 포함하는 XML 파일 (예 : mymodel.ecore)에 EMF 모델 클래스가 정의되어있는 경우. 그렇다면 클래스 패스에서 생성 된 클래스없이 런타임에 인스턴스의 인스턴스를 어떻게 만들 수 있습니까?