//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);
private void exportXMI(String absuloteTargetFolderPath) { // change MyLanguage with your language name Injector injector = new MyLanguageStandaloneSetup() .createInjectorAndDoEMFRegistration(); XtextResourceSet resourceSet = injector .getInstance(XtextResourceSet.class); // .ext ist the extension of the model file String inputURI = "file:///" + absuloteTargetFolderPath + "/MyFile.ext"; String outputURI = "file:///" + absuloteTargetFolderPath + "/MyFile.xmi"; URI uri = URI.createURI(inputURI); Resource xtextResource = resourceSet.getResource(uri, true); EcoreUtil.resolveAll(xtextResource); Resource xmiResource = resourceSet .createResource(URI.createURI(outputURI)); xmiResource.getContents().add(xtextResource.getContents().get(0)); try { xmiResource.save(null); } catch (IOException e) { e.printStackTrace(); } }
Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; Map<String, Object> m = reg.getExtensionToFactoryMap(); m.put("key", new XMIResourceFactoryImpl()); ResourceSet resSet = new ResourceSetImpl(); Resource resource = resSet.createResource(URI.createFileURI(fileName)); resource.getContents().add(data); resource.save(Collections.EMPTY_MAP);
/* * Save your EPackage to file ecore file: */ /*Initialize your EPackage*/ myPackage.eClass(); Resource.Factory.Registry reg = Resource.Factory.Registry.INSTANCE; Map<String, Object> m = reg.getExtensionToFactoryMap(); /*add default .ecore extension for ecore file*/ m.put(EcorePackage.eNAME, new XMIResourceFactoryImpl()); // Obtain a new resource set ResourceSet resSet = new ResourceSetImpl(); // create a resource Resource resource = null; try { resource = resSet.createResource(URI.createFileURI("/Your/Path/To/Directory/myTest.ecore")); } catch (Exception e) { e.printStackTrace(); } /*add your EPackage as root, everything is hierarchical included in this first node*/ resource.getContents().add(myPackage); // now save the content. try { resource.save(Collections.EMPTY_MAP); } catch (IOException e) { e.printStackTrace(); }