package org.xtext.example.mydsl;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.EObject;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.Resource.Diagnostic;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.util.EcoreUtil;
import org.eclipse.emf.ecore.xmi.XMIResource;
import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl;
import org.eclipse.xtext.resource.XtextResource;
public class DoRound {
public static void main(String [] args) throws IOException{
/*
* PARSE AND SAVE TEXT MODEL TO XMI
********************************************************************************/
String text_file_extension="mydsl";
String model_file_extension="xmi";
String strMyDSLFile = args[0];
MyDslStandaloneSetup.doSetup();
ResourceSet resourceSet = new ResourceSetImpl();
URI uri = URI.createFileURI(strMyDSLFile);
Resource resource = resourceSet.getResource(uri, true);//.createResource(uri);//(uri, false);
Map mm = new HashMap();
mm.put(XtextResource.OPTION_RESOLVE_ALL, Boolean.TRUE);
resource.load(mm);
EcoreUtil.resolveAll(resource);
EObject object = resource.getContents().get(0);
URI uri2 = URI.createFileURI(strMyDSLFile +"."+ model_file_extension);
XMIResourceFactoryImpl x = new XMIResourceFactoryImpl();
XMIResource rr = (XMIResource)x.createResource(uri2);
rr.getContents().add(object);
Map<Object, Object> m = rr.getDefaultSaveOptions();
m.put(XMIResource.OPTION_USE_XMI_TYPE, Boolean.TRUE);
try {
rr.save(m);
} catch (IOException e1) {
e1.printStackTrace();
}
}}
<?xml version="1.0" encoding="ASCII"?>
<myDsl:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:myDsl="http://www.xtext.org/example/mydsl/MyDsl">
<elements>
<g name="test">
<package href="cc.mydsl#xtextLink_::0.0.0.0.0::0::/2"/>
</g>
<f name="xx">
<table ecoreTypes="//@elements.0/@g.0">
<class href="cc.mydsl#xtextLink_::0.0.0.1.1::1::/3"/>
</table>
</f>
</elements>
</myDsl:Model>