架构更改后重新生成ecore

时间:2009-08-09 13:43:49

标签: java eclipse-plugin eclipse-rcp eclipse-emf

我在xsd文件中有一个架构。偶尔创建一个新版本的模式,我需要更新我的.ecore(和.genmodel)。 如何更新它们,而不删除它们并重新生成它们。我已经对ecore做了一些手动修改,我想保留这些修改。

伊多。

4 个答案:

答案 0 :(得分:3)

使用* .genmodel上的Reload ...操作根据新版本的* .xsd更新* .ecore。

答案 1 :(得分:1)

不要直接更改 .ecore。在架构中使用ecore:注释。 http://www.eclipse.org/modeling/emf/docs/overviews/XMLSchemaToEcoreMapping.pdf

答案 2 :(得分:0)

我从来没有尝试过这个,但是XSD FAQ说了这个:

  

JAXB生成一个简单的Java API   一个XML Schema,它使用   基本上是一个黑盒子设计。 EMF   在给定XML的情况下生成Ecore模型   Schema然后使用基于模板的   发电机技术生成一个   丰富的Java API(手写   质量)。 Ecore的XML Schema   转换可以量身定做   用于生成Java的模板   API可以定制,并由此产生   Java API可以定制。的的   生成器支持合并   再生,以便保存   你的手写的变化。在其他   话说,EMF更富裕更多   灵活,支持更广泛   XML Schema的子集(特别是在   2.0,支持通配符和混合内容。)

如果我是你,我会尝试一些实验,看看这个过程有多好,以及实际的限制是什么。

答案 3 :(得分:0)

您可以使用上下文菜单选项重新生成。保留您的修改:

  • 如果有一种方法在名称中添加了“Gen” - 例如setWhateverGen除了setWhatever之外 - 将为“Gen”方法生成新代码。因此,单独保留“Gen”方法以便可以覆盖它,然后从非Gen方法中调用它,您可以修改它。
  • 所有生成的方法都使用 @generated 进行注释。如果你添加“NOT” - @generated NOT - 它将不会被覆盖。

应合并所有其他内容。继续进行实验 - 这就是版本控制的目的......