问题标签 [ecore]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
eclipse - 如何使用 .ecore 元模型生成插件
我有 2 个文件,一个 ecore 实现元模型和一个电子存储库。e-Repository 与ecore 实现元模型一起以EMF 格式提供。我想浏览这个存储库的内容,我只知道我必须从实现元模型生成一个 Eclipse 插件,并且使用这个插件,我可以打开存储库并浏览它的内容。但我不知道如何生成插件并继续使用它。
ecore 实现元模型是使用 Eclipse Indigo SR2 中的 EMF 2.7 版开发的,e-Repository 是在相同的环境下生成的。
请问有人可以帮我吗?我对使用这些元模型和插件几乎一无所知。有什么教程或步骤可以遵循吗?
grammar - Xtext DSL:具有 2 个不同字符串的布尔规则
目前我在定义布尔变量时遇到问题:
我有一个带有布尔变量的类:
然而,这会导致 Pet 以 'cat'/'dog' 为真返回。无论如何定义DSL:'cat'为真,'dog'为假?
eclipse - 获取有关 EAnnotation 参考列表更改的通知
我正在创建一个基于示例 Ecore 编辑器(org.eclipse.emf.ecore* 插件)的自定义 Ecore 编辑器,并发现列表中的更改不会体现在模型更改通知中。例如,对EAnnotation.references
列表的更改不会导致模型更改通知,而该EAnnotation.setSource()
方法会创建通知。我想,这就是为什么默认getText()
方法EAnnotationItemProvider
只使用source
字段的原因之一。
我正在使用该references
字段的值来生成 的 UI 表示EAnnotation
,因此查看对该字段的更改对于正确操作是必要的。
是否有一些标准方法可以观察这些变化并refresh()
在模型视图上触发?
eclipse - 将 OCL 用于日期属性
我有一些具有日期属性的模型,我想包含 ocl 以进行验证和推导。
在互联网上搜索我找到了一些引用date.isBefore(date)
或date.before(date)
方法的文章和论文,但这些方法在OCL中不被认可。
此外,我想定义派生,例如derivation: endDate + 10;
.
我是否必须使用我需要的所有方法重新定义 Date 类?
欢迎任何与之相关的材料或链接。
inheritance - Xtext 中的 Ecore EClass 继承
考虑以下 Ecore 模型(以 Xcore 表示法):
以及以下 Xtext 规则:
使得文本模型是这样的:
有没有办法从规则中重构重复?我知道我可以引入一个新的 EClassElementContain
并为其制定规则Foo
并Bar
引用它的规则,但是,这会使元模型变得混乱。
grammar - Xtext 语法:不匹配的输入 '0' 期望 RULE_INT
我是 Xtext 的新手,我正在尝试为铁路系统创建一个简单的 DSL,这是我的语法:
但是当我把这段代码放在 Eclipse 实例中时:
我收到此错误三遍:
不匹配的输入 '0' 需要 RULE_INT 不匹配的输入 '1' 需要 RULE_INT 不匹配的输入 '5' 需要 RULE_INT
我看不出这些错误来自哪里,我能做些什么来修复它们。任何的想法?
dsl - xtext 推断器:多个实体
我对 Xtext/Xtend 很陌生,因此如果答案很明显,请提前道歉。
我想允许我的 DSL 的最终用户定义一个“过滤器”,当应用并“返回”真时,这意味着他们想要“过滤掉”给定的数据实体。
我想允许他们定义过滤器的两种方式
A)通过内省给定数据对象的属性并应用基本规则,例如
B)通过使用我的宿主语言的“eval”执行受控片段
换句话说,用户应该在字符串/代码块中输入一个有效的
宿主语言的代码片段
我决定对我来说支持案例 A) 的最简单方法是利用 XBase 规则(包括表达式/等)
因此我定义了过滤器(主要是复制 Lorenzo 书中的想法)
现在,当尝试通过 Xtend 中的推断存根为我的 DSL 实现 Java 映射时——我遇到了多个问题。
所有这些都可能表明我缺少一些基本的理解
问题 1) fl.body 未定义。fl 是 Filter 类型,不是 FilterDSL 或 FilterCode
而且我不明白如何检查给定实例的类型,以便我可以访问“正文”功能的内容。
问题 2)我不明白推断方法中的“body”属性在哪里定义以及为什么。这是 ECore 的一部分吗?(我找不到)
问题 3) 允许用户指定代码块的正确方法是什么?字符串似乎不是正确的东西,因为它不允许多行
问题 4) 我如何正确地将代码块转换为“主体”接受的内容,以便它最终出现在生成的代码中。
问题 5)我如何设置多个推断器(因为我有不止一件事需要 xBase 代码生成器(主要)生成的代码)
提前欣赏任何建议,或指向解决类似问题的代码示例。
作为一个侧面观察,到目前为止,Inferrer 及其与 XBase 的相互作用一直是最令人困惑和最难理解的事情。
xml - Is there any XML.ecore file available to use
I am looking to see if there is any ready to use xml.ecore file. By this, I mean an ecore metamodel of xml documents.
eclipse - EMF 比较 - 如何忽略标识符
我有 2 个模型要比较。在我的 *.ecore 模型中,我有一个“Id”属性,并且它的 ID 属性已设置为true。我正在使用 EcoreUtil.generateUUID() 作为唯一 ID。
就我而言,我有一个现成的模型,我正在运行时创建一个新模型。因此,ID 彼此不同。
在 EMFCompare 的开发者指南中,他们让我们使用UseIdentifiers.NEVER;
尽管如此,它仍然会为每个节点生成数学,其 id 如下所示:
左对象:DocModel.impl.ParagraphImpl@2767e23c (Id: _8pidAdVSEeSCK78kxjXrDg) (name: null) (rawText: Lorem ipsum ....)
右对象:DocModel.impl.ParagraphImpl@33bc72d1 (Id: _QSFJodrUEeSkqsl19NdwQQ) (name: null) (rawText: Lorem ipsum ....)
d.getKind(): 改变
我想比较会看到他们因为不同的 id 而改变。
简而言之,我想在比较中忽略 Id 属性。
谢谢并恭祝安康
eclipse - Xtext assign object in xtext file
Trying to make a meta model for Mongoose and MondoDb, using metamodeling concepts, eclipse and xtext.
I am trying to assign object that i created in my test.mydsl file to another object in the same file, but i get error in my test.mydsl file.
I am trying to assign created Schema(sc1) object to Collection(col) object, but currently getting an error
error message
the feature 'validate' of 'paket.impl.NCollectionImpl@67d76e14{platform:/resource/test/classes/test.mydsl#//@collections.0}' contains an unresolved proxy 'paket.impl.SchemaImpl@361d8284{platform:/resource/test/classes/test.mydsl#|0}'
my grammar for Schema and Collection
my test.mydsl
I tried all, but unsuccessful.
Any ideas what to do?
Thanks
EDIT:
Maybe I was not clear enough. The major problem is with "validate" attribute in NCollection rule. When I create my Schema object(sc1 in test.mydsl) and then try to pass it to Collection(col in test.mydsl) as a "sc1", the "validate" attribute cannot accept it like string, and I don't know how to pass it like Schema object. I hope this explanation helps.