我需要通过EMF加载和解析xmi文件(版本: OMG XMI 2.4.1),但现在陷入困境。
在XMI-model.xmi.中,有一个XMI模式XMI.xsd和一个例如,在这里,我需要通过EMF加载和解析XMI模型.XMI。
我所做的如下:
例外是:
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。
于是我又尝试了两种选择:
您可以在OMG网站XmiXSD2.1.1上找到XMI,但您还需要UML模式和MOF。读写UML文件的更好方法是使用Eclipse实现。在一个简单的Java程序中,它可以很容易地在Eclipse之外使用:
我按照答案阅读了关于Eclipse实现的文档,但我认为这并不是我想要的。
所以我希望有人能给我一些建议。提前感谢您的帮助!
发布于 2016-10-10 10:03:29
从您的描述中,我无法告诉您确切的上下文,但XMI通常用作元模型实例(类似于“逻辑模式”)的序列化格式(即“物理模式”)。
但是,您要做的是使用XMI作为元模型,并使用XML (带有XSD模式)作为序列化格式。这可能不是你想要的。
为了加载使用XMI序列化的UML元模型的实例,只需创建一个资源集并使用.uml加载您的resourceSet.getResource(uri, true)文件。只要您的Eclipse插件的类路径将UML插件作为依赖项包含,它就会工作。
https://stackoverflow.com/questions/35724778
复制相似问题