Hallo zusammen,
EMF bereitet mir mal wieder etwas größere Kopfschmerzen und ich hoffe ihr könnt mir etwas helfen.
Mit folgendem Code erstelle ich dynamisch ein Package und speichere es dann als XML ab:
Als Ergebnis erhalte ich:
Ich würde allerdings gerne folgendes Ergebnis haben:
Also den Namen der Klasse anstatt den Namen des Attributs der übergeordneten Klasse.
Kann ich dies irgendwie in EMF erzwingen?
Ich bin für jeden Tipp sehr dankbar.
Viele Grüße,
emftester
EMF bereitet mir mal wieder etwas größere Kopfschmerzen und ich hoffe ihr könnt mir etwas helfen.
Mit folgendem Code erstelle ich dynamisch ein Package und speichere es dann als XML ab:
Java:
final EPackage poPackage = EcoreFactory.eINSTANCE.createEPackage();
final EFactory poFactory = poPackage.getEFactoryInstance();
final EClass purchaseOrderClass = createClass("PurchaseOrder", poPackage);
final EClass itemClass = createClass("Item", poPackage);
final EAttribute shipToAttribute = createAttribute("shipTo", purchaseOrderClass);
final EReference itemsReference = createReference("items", itemClass, true, -1, purchaseOrderClass);
final EAttribute itemNameAttribute = createAttribute("name", itemClass);
final EObject aPurchaseOrder = poFactory.create(purchaseOrderClass);
aPurchaseOrder.eSet(shipToAttribute, "123 Maple Street");
final List items = (List) aPurchaseOrder.eGet(itemsReference);
EObject aItem = poFactory.create(itemClass);
aItem.eSet(itemNameAttribute, "Item 1");
items.add(aItem);
aItem = poFactory.create(itemClass);
aItem.eSet(itemNameAttribute, "Item 2");
items.add(aItem);
final Resource resource1 = new GenericXMLResourceImpl(org.eclipse.emf.common.util.URI
.createFileURI("C:/te.xml"));
resource1.getContents().add(aPurchaseOrder);
resource1.save(System.out, null);
Als Ergebnis erhalte ich:
Java:
<?xml version="1.0" encoding="ASCII"?>
<PurchaseOrder shipTo="123 Maple Street">
<items name="Item 1"/>
<items name="Item 2"/>
</PurchaseOrder>
Ich würde allerdings gerne folgendes Ergebnis haben:
Java:
<?xml version="1.0" encoding="ASCII"?>
<PurchaseOrder shipTo="123 Maple Street">
<Item name="Item 1"/>
<Item name="Item 2"/>
</PurchaseOrder>
Also den Namen der Klasse anstatt den Namen des Attributs der übergeordneten Klasse.
Kann ich dies irgendwie in EMF erzwingen?
Ich bin für jeden Tipp sehr dankbar.
Viele Grüße,
emftester