我试图将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
答案 0 :(得分:0)
我找到了问题的答案。这个例外是误导性的。问题是,我想加载一个" sub" -uml文件,这个文件没有提供所需的所有信息和定义。 然后我导入了我的" main" -uml文件并且它有效。
问候,
CV