[ATL] Wrapping sourcemodelelements [message #77942] |
Sun, 30 March 2008 21:18  |
Eclipse User |
|
|
|
Hi...
I try to wrap elements of a sourcemetamodel into elements of the
targetmetamodel, but the output-model is quite empty.
Can anybody help me?
Here is a minimized example:
VVVVVV source.ecore: VVVVVVV
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="class"
nsURI="http://atltest/src" nsPrefix="src">
<eClassifiers xsi:type="ecore:EClass" name="Class">
<eStructuralFeatures xsi:type="ecore:EAttribute" name="name"
eType="ecore:EDataType http://www.eclipse.org/emf/2002/Ecore#//EString"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="ClassCollection">
<eStructuralFeatures xsi:type="ecore:EReference" name="classes"
upperBound="-1"
eType="#//Class" containment="true"/>
</eClassifiers>
</ecore:EPackage>
^^^^^^^^^^^^^^^^^^^^^^
VVVVVV target.ecore: VVVVVVV
<?xml version="1.0" encoding="UTF-8"?>
<ecore:EPackage xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="target"
nsURI="http://atltest/trg" nsPrefix="target">
<eClassifiers xsi:type="ecore:EClass" name="Wrapper">
<eStructuralFeatures xsi:type="ecore:EReference" name="wrapped"
lowerBound="1"
eType="ecore:EClass ../source/Source.ecore#//Class"
containment="true"/>
</eClassifiers>
<eClassifiers xsi:type="ecore:EClass" name="WrapperCollection">
<eStructuralFeatures xsi:type="ecore:EReference" name="wrapper"
eType="#//Wrapper"
containment="true"/>
</eClassifiers>
</ecore:EPackage>
^^^^^^^^^^^^^^^^^^^^^^
VVVVVV sourceInstance.xmi VVVVVVVV
<?xml version="1.0" encoding="ASCII"?>
<src:ClassCollection xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:src="http://atltest/src" xsi:schemaLocation="http://atltest/src
Source.ecore">
<classes name="C1"/>
<classes name="C2"/>
</src:ClassCollection>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
VVVVVV WrapperTrafo.atl VVVVVVV
module WrapperTrafo;
create Trg : TrgMM from Src : SrcMM;
rule Wrap {
from
c : SrcMM!Class
to
w : TrgMM!Wrapper (
wrapped <- c
)
}
rule Coll {
from
cc : SrcMM!ClassCollection
to
wc : TrgMM!WrapperCollection (
wrapper <- cc.classes
)
}
^^^^^^^^^^^^^^^^^^^^^^^^
VVVVVVV TargetInstance.xmi VVVVVVVV
<?xml version="1.0" encoding="ISO-8859-1"?>
<target:WrapperCollection xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI" xmlns:target="http://atltest/trg"/>
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
|
|
|
|
|
|
|
|
|
|
|
Powered by
FUDForum. Page generated in 0.27841 seconds