# EMF und das Abspeichern als XML



## Waldi (21. Jul 2009)

Hallo,

ich habe hier etwas scheinbar triviales doch ich hab trotzdem Probleme ;-). Ich habe mir ein *ecore gebaut, ein genmodel dazu und mir das Model generieren lassen. Nun habe ich folgenden Code und immer die exception 

org.eclipse.emf.ecore.resource.Resource$IOWrappedException: The object 'test.pack.impl.ItemsImpl@1e4cbc4 (dbField: DBField01, cmField: CMField01)' is not contained in a resource.
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.endSave(XMLSaveImpl.java:306)
	at org.eclipse.emf.ecore.xmi.impl.XMLSaveImpl.save(XMLSaveImpl.java:270)
	at org.eclipse.emf.ecore.xmi.impl.XMLResourceImpl.doSave(XMLResourceImpl.java:206)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:1406)
	at org.eclipse.emf.ecore.resource.impl.ResourceImpl.save(ResourceImpl.java:993)
	at Test.main(Test.java:56)
Caused by: org.eclipse.emf.ecore.xmi.DanglingHREFException: The object 'test.pack.impl.ItemsImpl@1e4cbc4 (dbField: DBField01, cmField: CMField01)' is not contained in a resource.
.....


```
import java.io.File;
import java.io.IOException;
import java.util.Collections;

import org.eclipse.emf.common.util.URI;
import org.eclipse.emf.ecore.resource.Resource;
import org.eclipse.emf.ecore.resource.ResourceSet;
import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl;
import org.eclipse.emf.ecore.xmi.impl.XMLResourceFactoryImpl;

import test.pack.Items;
import test.pack.POrder;
import test.pack.PackFactory;
import test.pack.PackPackage;


public class Test {
	/**
	 * @param args
	 */
	public static void main(String[] args) {
		
		POrder mod = PackFactory.eINSTANCE.createPOrder();
		Items mapping01 = PackFactory.eINSTANCE.createItems();
		Items mapping02 = PackFactory.eINSTANCE.createItems();
		Items mapping03 = PackFactory.eINSTANCE.createItems();
		
		ResourceSet resourceSet = new ResourceSetImpl();
		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xml", new XMLResourceFactoryImpl());
		resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(PackPackage.eNS_URI, PackPackage.eINSTANCE);
		
		URI fileUri = URI.createFileURI(new File("model.xml").getAbsolutePath());
		Resource res = resourceSet.createResource(fileUri);

		mod.setCmClass("AIOI");
		mod.setCmDossier("dossier");
		mod.setSql("SELECT * FROM TabellenName WHERE Bedinung = ");

		
		mapping01.setCmField("CMField01");
		mapping01.setDbField("DBField01");
		
		mapping02.setCmField("CMField02");
		mapping02.setDbField("DBField02");
		
		mapping03.setCmField("CMField03");
		mapping03.setDbField("DBField03");

		mod.getMapping().add(mapping01);
		mod.getMapping().add(mapping02);
		mod.getMapping().add(mapping03);
        
		res.getContents().add(mod);

		try {
			res.save(Collections.EMPTY_MAP);
		} catch (IOException e) {
			e.printStackTrace();
		}

	}

}
```

Wenn ich mod alleine speichere dann geht es... Die abhängigen machen Probleme.. (Scheiss Drogen ;-))


----------



## Waldi (21. Jul 2009)

Hat sich erledigt... Die Referenz musste als Reource gegeben sein. Warum auch immer jetzt hab ich es geändert und VOILA


----------

