问题标签 [eclipse-emf]

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 投票
3 回答
3289 浏览

java - 从代码中使用 emf 比较?

我有两个 emf 模型 A 和 B,其中 B 仅与 A 不同,因为它有一个额外的子节点。

现在我想使用代码中的 emf compare 来做:

1)读取模型A和B并创建模型C,它是A和B的合并模型。基本上这对应于A +来自B的额外节点。

我看过:

http://dev.eclipse.org/viewcvs/viewvc.cgi/org.eclipse.emf/org.eclipse.emf.compare/examples/org.eclipse.emf.compare.examples.standalone/src/org/eclipse/ emf/compare/examples/standalone/ExampleLauncher.java?view=co&root=Modeling_Project

但是我看不到如何使用代码计算最终的合并模型:

任何显示如何计算合并模型的示例?

我现在尝试过:

但是这条线:

即使 match.eResource() != null

我收到此错误:

我已根据此处的文档将 Region 添加到资源中:

http://wiki.eclipse.org/index.php/EMF-FAQ#I_get_a_DanglingHREFException: eg.2C .22org.eclipse.emf.ecore.xmi.DanglingHREFException:_The_object_.27com.example.Foo.402f5dda_.28.29.27_is_not_contained_in_a_resource。 .22_What_do_I_need_to_do.3F

并且该州包含在该地区中,所以我不明白为什么我会得到例外……有什么想法吗?

0 投票
4 回答
1939 浏览

java - (Java, EMF) 从 XSD 创建有效的 XML 文件

我想根据给定的 XSD 架构文件创建一个 XML 文件。是否有任何开源框架可用于该任务?

目前,我正在使用 EMF 并加载 XSD 文件(实际上,在一个主文件中有几个链接)并创建了相应的模型和 Java 代码。目前,我无法弄清楚如何从这个 EMF 模型创建有效的 XML 实例文件。此外,我不知道 EMF 是否是正确的框架。

感谢您的帮助和来自德国的问候

马可

0 投票
1 回答
70 浏览

eclipse - 如何跟踪/处理其他用户对源控制共享 emf 资源所做的更改

我们的项目将模型保存在 xml 资源文件中。xml 资源标签在项目资源管理器中被列为节点。该项目是源代码控制的一部分,并由多个用户进行了处理。当用户在其工作区中执行更改时,我能够处理所有通知并采取适当的措施。虽然当其他用户更改模型文件,并且在其他工作区中获得了新的同步文件时,我只收到 xml 文件被修改的通知。未收到进行了哪些确切的模型更改。

如果用户关闭并打开项目,一切正常。尽管这不是正确的解决方案。我尝试做resource.unload,然后是resource.load。这没有任何区别。如何以编程方式实现所需的结果?

0 投票
1 回答
552 浏览

validation - 更改默认验证消息

使用 EMF Validation 验证模型我收到错误消息,例如

具有 0 值的 'blah' 的特征 'blah' 必须至少有 1 个值

此消息可能会让用户感到困惑,无论如何我可以使用自定义消息覆盖特定元素/属性的此错误消息吗?也许在模式中?

0 投票
2 回答
5191 浏览

xml - 如何将 Ecore 的 XMI 模型实例转换为给定 XSD 的 XML?

我正在使用基于导入的 XML 模式文件 (XSD) 的 Ecore 模型。使用生成的 Java 类(基于 Ecore 模型),我构建了模型的一个实例并将其保存为 XMI 标准中的资源。这个 XMI 文件实际上是一个符合 Ecore 模型的 XML 文件。

问题:
是否可以将 Ecore 模型的实例从 XMI 格式转换为符合原始 XML Schema (XSD) 的 XML 格式?

哪些 sdks/frameworks/plugins 可以提供这样的转换?

谢谢

0 投票
1 回答
1387 浏览

eclipse - 如何使用 EMF 为模型设计 Eclipse RCP(客户端/服务器)?

我们正在计划一个项目,我们将有一个基于 Eclipse 的客户端与 glassfish 服务器(+ Oracle 数据库)进行通信。业务逻辑将驻留在服务器上,客户端应该或多或少地充当视图。我们考虑将 EMF 用于我们的模型(+ hibernate + teneo)。

我不太确定这一切是如何协同工作的。工作流程/架构/我想象的任何东西都是这样的:

  1. 创建 EMF 模型
  2. 从中生成java模型(+编辑代码)
  3. 在服务器上使用 java 模型与 hibernate/teneo 一起将模型对象保存在数据库中
  4. 在服务端创建 SOAP 接口,将模型对象适当地序列化为 XML
  5. 在客户端使用模型访问服务器的 SOAP 接口,从/到 XML 序列化/反序列化模型对象,并在 eclipse 中显示(整体的一部分)模型

这基本上是它的意图吗?还是我错过了一个中心概念?

0 投票
1 回答
753 浏览

model - 如何将顶部封装的 sysml 模型转换为 rhapsody sysml 模型?

我正在尝试将现有的 Topcased SYSML 模型转换为 Rhapsody SYSML 模型。可以使用 Rhapsody XMI Toolkit 转换 UML 模型。不幸的是,它不适用于 SYSML 模型,因为 topcased 使用了另一个 sysml 配置文件而不是 rhapsody。双向转换会更好,但 topcased->rhapsody 更重要。任何想法如何做到这一点?

0 投票
1 回答
801 浏览

eclipse - Eclipse Plugin Development 安装依赖项(如果尚未安装)

大家好,我正在为 Eclipse 开发一个插件,我需要一些依赖项,例如 org.eclipse.graphiti。当我导出插件并构建更新站点时,一切正常,直到我尝试安装我的插件,因为安装向导说我没有安装 graphiti。我如何告诉我的向导询问您是否要自动安装所需的插件?

感谢您的任何帮助和想法。

0 投票
2 回答
1012 浏览

java - Java:使用两个不同枚举的具有几乎相同方法的两个类;可以避免冗余吗?(到处都是静态方法)

我有两个枚举描述了两个 UML 配置文件(意味着它们定义了配置文件包含的原型)。

我还有两个实用程序类,它们具有在每个配置文件上工作的几乎相同的方法。

例子:

, 其中InsertProfileHere可以替换为两个配置文件枚举中的每一个。

如果有人感兴趣,此方法使用 Eclipse 建模框架,或者更确切地说是 EMF 中的 UML2 元模型实现。

无论如何,我想合并这两个实用程序类以避免冗余代码。

我试过了:

  • 两个配置文件的超级界面
    • 由于静态方法而不起作用
  • 实用程序类的抽象类
    • 由于静态方法而不起作用
  • 将配置文件枚举封装在一个类中

由于某种原因,每种方法都不起作用。

有人有什么想法吗?

编辑:

另一种实用方法的示例:

EDIT2:并且为了很好地衡量配置文件枚举的实施部分

0 投票
1 回答
1027 浏览

data-binding - 使用 EMF 和 RCP 的多级主/详细数据绑定

我用 EMF 制作了一个模型,表示设备的设置和 RCP GUI。在 GUI 中,我有一个列表来选择模型(主)类型的不同设备。

该模型有一个小类的对象列表,应显示在表格中(详细信息)。

tableItems 本身需要编辑,所以我有一个带有复选框等的小 GUI 部分来更改设置。在这里,tableitem 是主项,GUI 中显示的所有字段都是详细信息。

可观察到的设备列表:

桌子:

编辑:

当更改设备选择时,tableitems 会被替换。但是 tableSelection 似乎有这个问题。有时它仍然包含来自不同设备的 aa tableitem 的值,有时它只包含 null。我还有一个按钮,可以根据所有字段的验证状态启用/禁用。当 tableSelection 将 null 放入这些字段时,验证不起作用并且按钮被禁用,直到选择表中的条目。

我尝试使用列表中的侦听器手动将选择设置为空,并且:

但这并不能完成全部工作。至少所有“旧”值都被替换了,但 null 问题仍然存在。

我只需要在启动应用程序之后将 tableSelection 设置为空状态,此时尚未选择任何 tableitem。