我已经为基本系列创建了 ecore 文件,我已经生成了模型、编辑和编辑器代码,我现在运行应用程序我能够在运行时创建系列模型文件。但是现在我想读取该模型文件获取存储在族模型文件中的序列化对象。
模型文件的类型
?xml 版本=“1.0”编码=“UTF-8”?
我已经为基本系列创建了 ecore 文件,我已经生成了模型、编辑和编辑器代码,我现在运行应用程序我能够在运行时创建系列模型文件。但是现在我想读取该模型文件获取存储在族模型文件中的序列化对象。
模型文件的类型
?xml 版本=“1.0”编码=“UTF-8”?
如果您有一个基本的族元模型,并且您已经生成了它的模型、编辑和编辑器代码,并且您已经从中创建了一个“.basicfamily”模型,您可以使用以下代码来阅读它:
URI uri = URI.createURI(new File("path of your file").getAbsolutePath());
ResourceSet resourceSet = new ResourceSetImpl();
resourceSet.getPackageRegistry().put(BasicfamilyPackage.eNS_URI, BasicfamilyPackage.eINSTANCE);
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("basicfamily", new XMIResourceFactoryImpl());
Resource resource = resourceSet.getResource(uri, true);
List<EObject> contents = resource.getContents();
// now you can iterate on the root objects of your model, use EObject#getContents() to
// retrieve the children of an EObject and thus navigate in your data
如果此代码在安装了元模型的 Eclipse 插件中运行,则可能不需要此代码的某些部分(在包注册表中添加基本系列 EPackage 和资源工厂的注册),因为它们由插件处理生成项目的 .xml。