【问题标题】:EMF generate non-Java CodeEMF 生成非 Java 代码
【发布时间】:2011-06-24 06:06:03
【问题描述】:
有没有办法从非 Java 的 ECore 模型代码生成?我有一个代表 html 布局(表单、输入、按钮)的元模型,我想生成 html。
我该怎么做?我还必须使用哪些其他工具?
一个教程链接会很完美,因为我还没有找到。
【问题讨论】:
标签:
eclipse
code-generation
eclipse-emf
eclipse-gmf
【解决方案1】:
我认为解决此问题的最佳方法是在 Ecore 中创建您的元模型,就像您已经完成的那样,然后生成 Java 代码,还可能还有一个 EMF 树编辑器来创建模型。 (请注意,需要生成元模型的 Java 代码,以便 EMF 工具可以遍历和解释生成的模型。因此,您不会直接从 Ecore 生成其他语言——这是在单独的步骤中完成的如下所述),
接下来,使用 XPand(Xtext 模板语言)从您的模型生成 HTML 代码。这是一篇博客文章,解释了如何从模型创建 HTML 表单:
http://www.peterfriese.de/getting-started-with-code-generation-with-xpand/
您可以跳过“创建元模型”这一步,直接使用您已经创建的那个。这篇文章很好地介绍了 XPand,它是一种非常强大的语言,有些人认为它比 Jet 更好。
【解决方案2】:
我认为答案取决于您生成的东西是应该与当前类一起生成还是在完全不同的过程中生成。
如果是不同的进程,看看Xpands的回答——EMF generate non-Java Code
否则请查看 JET,因为它用于从 ecore 生成工件的 rets。它并不漂亮——Java 中的 Java 永远不会可读——但它很容易添加到来自.genmodel 进程的现有生成中。