我有一个包含多个XML节点的文本文件。我希望每个节点被复制/转换为EMF对象,并粘贴到Eclipse编辑器中(使用 ctrl c 在文本文件和 ctrl v 在日食编辑器中)。但是我无法在Eclipse编辑中粘贴。你能帮我吗?
我也有类似的问题。您可以读取XML模型并将其转换为XMI模型。这样,您需要将下一个代码实施到EMF项目中。我创建了一个新类,并生成了一个主要方法,包括此代码:
//Generate your URI
ResourceFactoryImpl factory = new ResourceFactoryImpl();
URI sourceURI = URI.createURI("your xml path");
Resource loadResource = (ResourceImpl)factory.createResource(sourceURI);
System.out.println(sourceURI.path());
//Add loading options
Map<String, Boolean> options = new HashMap<String, Boolean>();
options.put(XMLResource.OPTION_SUPPRESS_DOCUMENT_ROOT, true);
//Load XML
loadResource.load( options);
//Create XMI output
URI targetURI = URI.createURI("your xmi path");
Resource resourceOut = new ResourceImpl(targetURI);
//Generating your EObjects from XML model
EList listObj = loadResource.getContents();
EObject obj = (EObject) listObj.get(0);
resourceOut.getContents().add(obj);
resourceOut.save(options);
请记住,您需要从生态模型中注册epackages。因此,右键单击您的.ecore metamodel,然后选择选项"注册epackages"。如果此步骤有问题,您将获得org.eclipse.emf.ecore.resource.resource $ iowrappedexception:带URI'http://something.com的包装:找不到。(XML路径)。
结论:
- 将方法调用到您的主要方法中代码。
- 注册您的epackages。
- 如果您获得异常,将URI数据解析到XML中。
pd:本文中介绍的代码最初由@VictormPav创建。我添加了一些修改。