问题标签 [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.

0 投票
1 回答
1798 浏览

eclipse - 如何使用 .ecore 元模型生成插件

我有 2 个文件,一个 ecore 实现元模型和一个电子存储库。e-Repository 与ecore 实现元模型一起以EMF 格式提供。我想浏览这个存储库的内容,我只知道我必须从实现元模型生成一个 Eclipse 插件,并且使用这个插件,我可以打开存储库并浏览它的内容。但我不知道如何生成插件并继续使用它。

ecore 实现元模型是使用 Eclipse Indigo SR2 中的 EMF 2.7 版开发的,e-Repository 是在相同的环境下生成的。

请问有人可以帮我吗?我对使用这些元模型和插件几乎一无所知。有什么教程或步骤可以遵循吗?

0 投票
1 回答
829 浏览

grammar - Xtext DSL:具有 2 个不同字符串的布尔规则

目前我在定义布尔变量时遇到问题:

我有一个带有布尔变量的类:

然而,这会导致 Pet 以 'cat'/'dog' 为真返回。无论如何定义DSL:'cat'为真,'dog'为假?

0 投票
1 回答
74 浏览

eclipse - 获取有关 EAnnotation 参考列表更改的通知

我正在创建一个基于示例 Ecore 编辑器(org.eclipse.emf.ecore* 插件)的自定义 Ecore 编辑器,并发现列表中的更改不会体现在模型更改通知中。例如,对EAnnotation.references列表的更改不会导致模型更改通知,而该EAnnotation.setSource()方法会创建通知。我想,这就是为什么默认getText()方法EAnnotationItemProvider只使用source字段的原因之一。

我正在使用该references字段的值来生成 的 UI 表示EAnnotation,因此查看对该字段的更改对于正确操作是必要的。

是否有一些标准方法可以观察这些变化并refresh()在模型视图上触发?

0 投票
1 回答
2026 浏览

eclipse - 将 OCL 用于日期属性

我有一些具有日期属性的模型,我想包含 ocl 以进行验证和推导。

在互联网上搜索我找到了一些引用date.isBefore(date)date.before(date)方法的文章和论文,但这些方法在OCL中不被认可。

此外,我想定义派生,例如derivation: endDate + 10;.

我是否必须使用我需要的所有方法重新定义 Date 类?

欢迎任何与之相关的材料或链接。

0 投票
1 回答
275 浏览

inheritance - Xtext 中的 Ecore EClass 继承

考虑以下 Ecore 模型(以 Xcore 表示法):

以及以下 Xtext 规则:

使得文本模型是这样的:

有没有办法从规则中重构重复?我知道我可以引入一个新的 EClassElementContain并为其制定规则FooBar引用它的规则,但是,这会使元模型变得混乱。

0 投票
2 回答
1428 浏览

grammar - Xtext 语法:不匹配的输入 '0' 期望 RULE_INT

我是 Xtext 的新手,我正在尝试为铁路系统创建一个简单的 DSL,这是我的语法:

但是当我把这段代码放在 Eclipse 实例中时:

我收到此错误三遍:

不匹配的输入 '0' 需要 RULE_INT 不匹配的输入 '1' 需要 RULE_INT 不匹配的输入 '5' 需要 RULE_INT

我看不出这些错误来自哪里,我能做些什么来修复它们。任何的想法?

0 投票
1 回答
237 浏览

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 的相互作用一直是最令人困惑和最难理解的事情。

0 投票
1 回答
100 浏览

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.

0 投票
1 回答
433 浏览

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 属性。

谢谢并恭祝安康

0 投票
2 回答
448 浏览

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.