一般使用EMF主要有两个用途:第一,(写入)用来数据的持久化。它将把数据信息保存到一个XML文件中。第二,(读取)用于产生模型,这些模型可以用于GEF和GMF。而在Dengues中EMF还有一点就是作为读取一个配置文件,来生成界面。这也就是配置文件生成代码的过程,听起来很神奇吧!为了让你配置文件可读写性强,你最好使用一个Schema(*.xsd)文件。生成EMF代码一个可以使用这个Schema,然而使用这种方式要注意:在读取配置文件的是时候要添加ResourceFactory,如下这段代码:
ResourceSet resourceSet
=
new
ResourceSetImpl();
ComponentResourceFactoryImpl compFact;
compFact
=
new
ComponentResourceFactoryImpl();
URI createURI
=
URI.createURI(xmlFile.toURI().toString());
compFact.createResource(createURI);
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(
Resource.Factory.Registry.DEFAULT_EXTENSION, compFact);
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
Resource res
=
resourceSet.getResource(createURI,
true
);
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
DocumentRoot xmlDoc;
xmlDoc
=
(DocumentRoot) res.getContents().get(
0
);
然后它得到一个DocumentRoot,这样的话我们就能得到所有的EMF配置文件的对象了!
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/6810355c2f78c12e91b7997a8e8c583a.gif)
然后它得到一个DocumentRoot,这样的话我们就能得到所有的EMF配置文件的对象了!