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

问题描述:

我正在使用基于导入的XML Schema文件(XSD)的Ecore模型。使用生成的Java类(基于Ecore模型),我构建模型的一个实例并将其作为XMI标准中的资源进行保存。这个XMI文件实际上是一个符合Ecore模型的XML文件。如何将Ecore的XMI模型实例转换为给定XSD的XML?

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

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

感谢

如果确保使用由生成的XyzResourceFactoryImpl创建的资源来保存实例,它应该生成符合您的模式的结果。这听起来像你使用XMIResourceImpl保存。尝试调用生成测试代码并查看生成的XyzExample.java,以了解如何通过正确的保存/加载选项确保使用正确的资源实现。

+1

你说得对,我用了XMIResourceImpl。通过使用:GenericXMLResourceFactoryImpl和XMLResource.OPTION_EXTENDED_META_DATA我得到了我的问题的解决方案。谢谢。 – sromku 2011-05-14 18:06:13

+1

链接:[GenericXMLResourceFactoryImpl](http://download.eclipse.org/modeling/emf/emf/javadoc/2.5.0/org/eclipse/emf/ecore/xmi/impl/GenericXMLResourceFactoryImpl.html); [XMLResource.OPTION_EXTENDED_META_DATA](http://help.eclipse.org/help33/index.jsp?topic=/org.eclipse.emf.doc/references/javadoc/org/eclipse/emf/ecore/xmi/XMLResource.html ) – sromku 2011-05-14 18:17:39

您可以通过使用EMF工具导出.genmodel

  1. 打开.genmodel
  2. 选择 “导出” 从发电机菜单栏

或者您可以通过usi以编程方式将您的ecore模型导出到模式XSDFactoryImpl

+0

在我的情况下,我需要将Ecore元模型的实例(XMI)转换为符合原始XSD的XML,并且不要将Ecore元模型导出到XSD,因为我从您的回复中了解到。不过,谢谢,我认为我找到了解决方案。 – sromku 2011-05-14 18:12:06