// create the port Port p = UMLFactory.eINSTANCE.createPort(); p.setName(portName); Interface i = UMLFactory.eINSTANCE.createInterface(); i.setName(iName); port.getProvideds().add(i); // TODO - add provides interfaces // create the component Component component = UMLFactory.eINSTANCE.createComponent(); component.setName(compName); component.getOwnedPorts().add(port); // populate the model model.getPackagedElements().add(component); // save it as XMI ResourceSet resourceSet = new ResourceSetImpl(); UMLFactory factory = UMLFactory.eINSTANCE; resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(Resource.Factory.Registry.DEFAULT_EXTENSION, new XMIResourceFactoryImpl()); resourceSet.getPackageRegistry().put(UMLPackage.eNS_URI, UMLPackage.eINSTANCE); URI fileURI = URI.createFileURI(new File("c:\\temp\\exported_model.xmi").getAbsolutePath()); Resource resource = resourceSet.createResource(fileURI); resource.getContents().add(model); resource.save(out, Collections.EMPTY_MAP);
<?xml version="1.0" encoding="ASCII"?> <uml:Model xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:uml="http://www.eclipse.org/uml2/3.0.0/UML"> <packagedElement xsi:type="uml:Package" name="Test4"> <packagedElement xsi:type="uml:Component" name="c1"> <ownedAttribute xsi:type="uml:Port" name="p" visibility="public" aggregation="composite"/> </packagedElement> <packagedElement xsi:type="uml:Component" name="c2"> <ownedAttribute xsi:type="uml:Port" name="p" visibility="public" aggregation="composite"/> </packagedElement> </packagedElement> </uml:Model>