我在几个项目中使用了Eclipse Xtext.我喜欢在Ecore(meta)模型上定义语法的简易性,并为你生成所有内容,包括令人敬畏的Eclipse插件编辑器,但我对基础EMF框架感到非常不舒服,所有内容都在静态字段中进行了硬连接.
最近我遇到了Jetbrains的MPS(元编程系统).它基于完全不同的哲学.虽然Xtext用于创建基于文本的DSL,为您生成解析器(并实例化那些EObject),但在MPS创建的语言中,可直接编辑基础模型结构.到目前为止,我明白了.
有没有人使用这两种DSL工具来指出在使用它们方面的主要差异,预期用例和受众,复杂性,学习曲线(说实话,开始使用Xtext应该对EMF的内容有很多了解) ,代码生成等?
我正在使用带有兼容层的Eclipse 4.2来重用我的RCP应用程序的现有部分.
我想重新使用新的从文件菜单和运行 菜单在我的RCP应用程序,所以我打开了Eclipse和它的外观像这样的EMF编辑器:
但对于New菜单,它显示如下:org.eclipse.e4.model.application....
我的应用程序看起来像这样(它只是带有一些额外功能的Java Script调试器):
那么如何在我的RCP应用程序中重用这些菜单呢?
我想用Eclipse EMF创建一个包含List
with String
对象的类.我看到Ecore有一个,EList
但我不能改变列表的泛型类型.
知道怎么做吗?
我使用转换引擎在运行时创建一个Ecore元模型,我想知道我们如何使用EMF注册该元模型,以便它可以识别元模型?
EMF = Eclipse Modeling Framework
我必须在我的一个班级项目中使用EMF.我试图了解如何使用EMF执行以下操作:
我需要使用以下所有内容:EMF(不知道是什么)和JPA(DONE).
我使用过JAXB,我知道,这可以使用JAXB完成,但是(EMF == JAXB)怎么办?!
我使用EMF创建了许多java类,但是它们有很多!我在哪里实现读/写方法以及如何运行EMF项目?
谢谢
UPDATE1 提示 http://www.eclipsezone.com/eclipse/forums/t58829.html
UPDATE2
我有架构,我使用.xsd生成了模型代码.现在我在从XML文件中读取数据时遇到了问题.
在使用EMF创建的编辑器中,可以通过右键单击任何建模元素并从上下文菜单中选择"验证"来验证模型.我想以编程方式调用此功能.我的用例是我想在用户尝试打开向导时验证模型.根据验证结果,向导将打开(验证成功)或将显示找到的错误.
有谁知道如何以编程方式实现这一目标?
我需要以编程方式将符合XText语法的文本转换为符合XText从同一语法生成的Ecore元模型的AST.
我知道XText也会生成实现这种解析器的Java类,但我不知道它们在哪里以及如何使用它.
In my Ecore model all types that come from outside the current model are not resolved by their proxies. All fields of the object returned by getType()
are null
and only the storage type URI is filled in at runtime.
Here is an extract of my model:
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="model" nsURI="http:///model.ecore" nsPrefix="model">
<eSubpackages name="general" nsURI="http:///model/general.ecore" nsPrefix="model.general">
<eClassifiers xsi:type="ecore:EClass" name="Address">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="street" ordered="false" lowerBound="1"
eType="ecore:EDataType platform:/plugin/org.eclipse.uml2.types/model/Types.ecore#//String"/>
</eClassifiers>
</eSubpackages>
</ecore:EPackage>
Run Code Online (Sandbox Code Playgroud)
Currently if I make an …
使用EMF,我想定义一个数据类型(EType)在我的EMF模型外部的属性.也就是说,我想要的类型是普通的手工编码Java类,它不属于我的EMF模型.使用AnySimpleType
是最后的手段.我想要比使用通用Object
提供更多的类型安全(和更少的类型转换).
Eclipse的属性编辑器将EType限制为一组预定义的值.我既不能输入自己的类名,也不能找到将我想要的类添加到选项列表中的方法.
eclipse-emf ×10
eclipse ×5
java ×5
xtext ×2
.emf ×1
dsl ×1
eclipse-juno ×1
eclipse-rcp ×1
ecore ×1
mps ×1
validation ×1
xml ×1
xsd ×1