当前位置: 首页 > 知识库问答 >
问题:

用EMF加载和解析XMI文件

谯嘉木
2023-03-14

>

  • 在Eclipse中新建EMF项目
  • 导入xmi架构:xmi.xsd,并获取xmi.genmodel文件
  • 使用xmi.genmodel生成eclipse中的所有代码,它将生成模型代码
  • 新建一个Junit4测试用例,并尝试用Junit插件测试加载xmi-model.xmi文件,但失败了,下面是我的代码。

    @Test
    public void test() throws IOException {
        URI uri = URI
                .createFileURI("/home/pzhengshuai/Desktop/15Feb-19Feb/XMI-model.xmi");
        _20110701ResourceFactoryImpl factory = new _20110701ResourceFactoryImpl();
        Resource resource = factory.createResource(uri);
        Map<String, Boolean> options = new HashMap<String, Boolean>();
        options.put(XMLResource.OPTION_KEEP_DEFAULT_CONTENT, Boolean.TRUE);
        resource.load(options);
        EObject model = (EObject) resource.getContents().get(0);
        Assert.assertNotNull(model);
    }
    

    例外情况是:

    org.eclipse.emf.ecore.resource.Resource$IOWrappedException: Feature 'XMIType' not found. (file:/home/pzhengshuai/Desktop/15Feb-19Feb/XMI-model.xmi, 2, 164)
    

    好的,然后我试着去读xsd文件和xmi文件,我发现在xmi-model.xmi里面有一个名称空间xmlns:uml=“http://www.omg.org/spec/uml/20110701”,于是我去了uml空间的链接,试图找到uml的模式。不幸的是,在这个链接中,所有关于UML的文件都是en格式的XMI。

      null

    我遵循了答案并阅读了有关Eclipse UML实现的文档,但我认为这并不是我真正想要的。

    所以我希望有人能给我一些建议。提前感谢你的帮助!

  • 共有1个答案

    段干庆
    2023-03-14

    从您的描述中我无法确定您的确切上下文,但XMI通常被用作元模型(类似于“逻辑模式”)实例的序列化格式(即“物理模式”)。

    但是您正在尝试做的是使用XMI作为元模型,并使用XML(带有XSD模式)作为序列化格式。那可能不是你想要的。

    为了加载使用XMI序列化的UML元模型的实例,只需创建一个资源集,并使用resourceSet.getResource(uri,true)加载您的.UML文件。只要您的Eclipse插件的类路径包含UML插件作为依赖项,这就应该可以工作。

     类似资料:
    • 我知道有几个关于这个主题的QnA。我已经尝试了很多解决方案,我总是得到相同的错误。 我的代码结构如下所示: 请帮忙 亲切的问候

    • 我已经从一个.xsd文件创建了一个.ecore和.genmodel元模型。我试图从一个符合.xsd文件的.xml文件创建一个模型实例(因此也符合.ecore元模型)。我怎样才能达到这个目标呢?

    • 问题内容: SVG元素包含一个数据属性()。有时有必要仅从SVG文件加载,解析和提取路径信息。 题 如何从SVG文件加载,解析和提取SVG路径信息? 问题答案: 总览 使用ApacheBatik加载和解析SVG文件。该解决方案在将SVG文件转换为MetaPost的初期阶段显示了Java代码。这应该为如何使用Java从SVG文件中加载,解析和提取内容提供一个总体思路。 图书馆 您将需要以下库: 加载

    • 问题内容: 我正在尝试在Python中加载和解析JSON文件。但是我在尝试加载文件时遇到了困难: 产量: 我看着 18.2。— Python文档中的 JSON编码器和解码器 ,但是通读这个看起来糟透了的文档非常令人沮丧。 前几行(用随机条目匿名): 问题答案: 您有一个JSON Lines格式的文本文件。您需要逐行解析文件: 每 行都 包含有效的JSON,但总的来说,它不是有效的JSON值,因为没

    • 我试图将一个典型的HTML站点迁移到一个“轻”的React应用程序。因此,我安装了React而没有。 项目的目录结构如下所示: webpack.config.js SRC index.js CSS style.css pGrooveRunners.ttf 我该怎么解决这个?

    • 我正在尝试用Python加载和解析一个JSON文件。但我无法加载文件: 收益率: