3

我通过 Xtext 创建了一个 DSL,现在我需要将编辑器中创建的模型转换为另一个模型。我想最直接的方法是使用某种 M2M 转换框架,但我需要访问文本文件背后的模型。问题:如何获得对模型的引用?

4

1 回答 1

1

Xtext 创建的模型也有一个为它们创建的资源工厂。如果您尝试将文本文件加载为 EMF 模型,EMF 将寻找可用于扩展您的文本文件的资源工厂。从那里,Xtext 将在 EMF 模型中转换文本文件,并将创建的模型提供给 EMF。您可以通过右键单击文本文件并选择“打开方式”和“示例反射 ecore 模型编辑器”来查看此机制的运行情况。所以这样的事情应该有效:

ResourceSet rs = new ResourceSetImpl();
Resource r = rs.getResource(uriOfYourTextualFile, true);
List<EObject> contentOfYourFile = r.getContents();
于 2012-08-07T14:58:28.140 回答