加载.uml文件时出现IllegalValueException

时间:2014-07-03 13:13:03

标签: java eclipse uml emf

我试图将uml文件加载到java但由于IllegalValueException而失败。我要加载的uml-File是在Papyrus中生成的。

public Model getModel(String pathToModel, URI typesUri) {

        typesUri = URI.createFileURI(pathToModel);
        ResourceSet set = new ResourceSetImpl();

        set.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE);
        set.getResourceFactoryRegistry().getExtensionToFactoryMap().put(UMLResource.FILE_EXTENSION, UMLResource.Factory.INSTANCE);
        set.createResource(typesUri);
        Resource r = set.getResource(typesUri, true);

        Model m = (Model) EcoreUtil.getObjectByType(r.getContents(), UMLPackage.Literals.MODEL);

        return m;
    }

尝试获取资源时,我收到IllegalValueException:

Exception in thread "loadModel" org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: org.eclipse.emf.ecore.xmi.IllegalValueException: Value 'NoSyncdCnvrt' is not legal.

我搜索了一个答案,但我仍然不知道应该在哪里找到错误。

感谢。

问候

CV

1 个答案:

答案 0 :(得分:0)

我找到了问题的答案。这个例外是误导性的。问题是,我想加载一个" sub" -uml文件,这个文件没有提供所需的所有信息和定义。 然后我导入了我的" main" -uml文件并且它有效。

问候,

CV