(no subject) [message #687019] |
Mon, 23 May 2011 05:06 |
javen jia Messages: 7 Registered: December 2009 |
Junior Member |
|
|
I get the xml content with the following code.
code:
EPackage poPackage = EcoreFactory.eINSTANCE.createEPackage();
EFactory eFactory=poPackage.getEFactoryInstance();
EClass purchaseOrderClass = EcoreFactory.eINSTANCE.createEClass();
purchaseOrderClass.setName("PurchaseOrder");
poPackage.getEClassifiers().add(purchaseOrderClass);
EClass itemClass = EcoreFactory.eINSTANCE.createEClass();
itemClass.setName("Item");
poPackage.getEClassifiers().add(itemClass);
EAttribute nameAttribute =
EcoreFactory.eINSTANCE.createEAttribute();
nameAttribute.setName("name");
nameAttribute.setEType(EcorePackage.eINSTANCE.getEString());
itemClass.getEStructuralFeatures().add(nameAttribute);
EAttribute shipToAttribute =
EcoreFactory.eINSTANCE.createEAttribute();
shipToAttribute.setName("shipTo");
shipToAttribute.setEType(EcorePackage.eINSTANCE.getEString());
purchaseOrderClass.getEStructuralFeatures().add(shipToAttribute);
EReference eReference = EcoreFactory.eINSTANCE.createEReference();
eReference.setName("items");
eReference.setEType(itemClass);
eReference.setUpperBound(ETypedElement.UNBOUNDED_MULTIPLICITY);
eReference.setContainment(true);
purchaseOrderClass.getEStructuralFeatures().add(eReference);
EObject order = eFactory.create((EClass)(poPackage.getEClassifier("PurchaseOrder")));
order.eSet(order.eClass().getEStructuralFeature("shipTo"), "there");
EObject item1 = eFactory.create((EClass)(poPackage.getEClassifier("Item")));
item1.eSet(item1.eClass().getEStructuralFeature("name"), "item1");
((List)order.eGet(eReference)).add(item1);
EObject item2 = eFactory.create((EClass)(poPackage.getEClassifier("Item")));
item2.eSet(item2.eClass().getEStructuralFeature("name"), "item2");
((List)order.eGet(eReference)).add(item2);
final ExtendedMetaData data=new BasicExtendedMetaData(ExtendedMetaData.ANNOTATION_URI,EPackage.Registry.INSTANCE,new HashMap());
data.setFeatureKind(eReference, ExtendedMetaData.ELEMENT_FEATURE);
//data.setFeatureKind(nameAttribute, ExtendedMetaData.ELEMENT_FEATURE);
data.setGroup(eReference, eReference);
data.setName(purchaseOrderClass, "poo");
Map options=new HashMap();
options.put(XMIResource.OPTION_EXTENDED_META_DATA, data);
ResourceSet resourceSet = new ResourceSetImpl();
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xml",new XMIResourceFactoryImpl());
URI fileURI = URI.createFileURI(new File("d:/temp/mypo.xml").getAbsolutePath());
Resource poResource = resourceSet.createResource(fileURI);
poResource.getContents().add(order);
try {
poResource.save(options);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
the result Xml is
<?xml version="1.0" encoding="ASCII"?>
<poo xmi:version="2.0" xmlns:xmi="" shipTo="there">
<items name="item1"/>
<items name="item2"/>
</poo>
but i need the xml like
<?xml version="1.0" encoding="ASCII"?>
<poo xmi:version="2.0" xmlns:xmi="" shipTo="there">
<items>
<item name="item1"/>
<item name="item2"/>
</items>
</poo>
Thanks!!!!!!!!!!!!!!!
|
|
|
|
Re: How To Persistence Eobject [message #687026 is a reply to message #687019] |
Mon, 23 May 2011 16:26 |
Ed Merks Messages: 33140 Registered: July 2009 |
Senior Member |
|
|
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
A valid XMI serialization must use the xmi prefix on the root
element. Maybe you want to try XM<b>L</b>ResourceFactoryImpl.<br>
<br>
javen jia wrote:
<blockquote cite="mid:ircpgl$11d$1@news.eclipse.org" type="cite">I get
the xml content with the following code.
<br>
code:
<br>
<br>
EPackage poPackage = EcoreFactory.eINSTANCE.createEPackage();
<br>
EFactory eFactory=poPackage.getEFactoryInstance();
<br>
<br>
EClass purchaseOrderClass =
EcoreFactory.eINSTANCE.createEClass();
<br>
purchaseOrderClass.setName("PurchaseOrder");
<br>
poPackage.getEClassifiers().add(purchaseOrderClass);
<br>
<br>
EClass itemClass = EcoreFactory.eINSTANCE.createEClass();
<br>
itemClass.setName("Item");
<br>
poPackage.getEClassifiers().add(itemClass);
<br>
<br>
EAttribute nameAttribute =
<br>
EcoreFactory.eINSTANCE.createEAttribute();
<br>
nameAttribute.setName("name");
<br>
nameAttribute.setEType(EcorePackage.eINSTANCE.getEString());
<br>
itemClass.getEStructuralFeatures().add(nameAttribute);
<br>
<br>
EAttribute shipToAttribute =
<br>
EcoreFactory.eINSTANCE.createEAttribute();
<br>
shipToAttribute.setName("shipTo");
<br>
shipToAttribute.setEType(EcorePackage.eINSTANCE.getEString());
<br>
purchaseOrderClass.getEStructuralFeatures().add(shipToAttribute);
<br>
<br>
EReference eReference =
EcoreFactory.eINSTANCE.createEReference();
<br>
eReference.setName("items");
<br>
eReference.setEType(itemClass);
<br>
eReference.setUpperBound(ETypedElement.UNBOUNDED_MULTIPLICITY);
<br>
eReference.setContainment(true);
<br>
purchaseOrderClass.getEStructuralFeatures().add(eReference);
<br>
<br>
<br>
EObject order =
eFactory.create((EClass)(poPackage.getEClassifier("PurchaseOrder")));
<br>
order.eSet(order.eClass().getEStructuralFeature("shipTo"),
"there");
<br>
EObject item1 =
eFactory.create((EClass)(poPackage.getEClassifier("Item")));
<br>
item1.eSet(item1.eClass().getEStructuralFeature("name"),
"item1");
<br>
((List)order.eGet(eReference)).add(item1);
<br>
EObject item2 =
eFactory.create((EClass)(poPackage.getEClassifier("Item")));
<br>
item2.eSet(item2.eClass().getEStructuralFeature("name"),
"item2");
<br>
((List)order.eGet(eReference)).add(item2);
<br>
<br>
<br>
final ExtendedMetaData data=new
BasicExtendedMetaData(ExtendedMetaData.ANNOTATION_URI,EPackage.Registry.INSTANCE,new
HashMap());
<br>
data.setFeatureKind(eReference,
ExtendedMetaData.ELEMENT_FEATURE);
<br>
//data.setFeatureKind(nameAttribute,
ExtendedMetaData.ELEMENT_FEATURE);
<br>
data.setGroup(eReference, eReference);
<br>
data.setName(purchaseOrderClass, "poo");
<br>
<br>
Map options=new HashMap();
<br>
options.put(XMIResource.OPTION_EXTENDED_META_DATA, data);
<br>
<br>
ResourceSet resourceSet = new ResourceSetImpl();
<br>
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("xml",new
XMIResourceFactoryImpl());
<br>
URI fileURI = URI.createFileURI(new
File("d:/temp/mypo.xml").getAbsolutePath());
<br>
Resource poResource = resourceSet.createResource(fileURI);
<br>
poResource.getContents().add(order);
<br>
try {
<br>
poResource.save(options);
<br>
} catch (IOException e) {
<br>
// TODO Auto-generated catch block
<br>
e.printStackTrace();
<br>
}
<br>
<br>
the result Xml is
<br>
<br>
<?xml version="1.0" encoding="ASCII"?>
<br>
<poo xmi:version="2.0" xmlns:xmi="" shipTo="there">
<br>
<items name="item1"/>
<br>
<items name="item2"/>
<br>
</poo>
<br>
<br>
<br>
but i need the xml like <br>
<br>
<?xml version="1.0" encoding="ASCII"?>
<br>
<poo xmi:version="2.0" xmlns:xmi="" shipTo="there">
<br>
<items>
<br>
<item name="item1"/>
<br>
<item name="item2"/>
<br>
</items>
<br>
</poo>
<br>
<br>
<br>
Thanks!!!!!!!!!!!!!!!
<br>
<br>
</blockquote>
</body>
</html>
Ed Merks
Professional Support: https://www.macromodeling.com/
|
|
|
Powered by
FUDForum. Page generated in 0.03416 seconds