【发布时间】:2016-08-12 16:01:37
【问题描述】:
我已经为基本系列创建了 ecore 文件,我已经生成了模型、编辑和编辑器代码,我现在运行应用程序我能够在运行时创建系列模型文件。但现在我想阅读模型文件以获取存储在族模型文件中的序列化对象。
模型文件的类型
?xml 版本="1.0" 编码="UTF-8"?
【问题讨论】:
标签: eclipse-emf eclipse-sirius
我已经为基本系列创建了 ecore 文件,我已经生成了模型、编辑和编辑器代码,我现在运行应用程序我能够在运行时创建系列模型文件。但现在我想阅读模型文件以获取存储在族模型文件中的序列化对象。
模型文件的类型
?xml 版本="1.0" 编码="UTF-8"?
【问题讨论】:
标签: eclipse-emf eclipse-sirius
如果您有一个基本的族元模型,并且您已经生成了它的模型、编辑和编辑器代码,并且您已经从中创建了一个“.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 和资源工厂的注册),因为它们已被处理通过生成项目的plugin.xml。
【讨论】: