Updated and corrected scheduler examples
diff --git a/examples/app4mc.example.scheduler/hierarchical/hierarchicalExample.amxmi b/examples/app4mc.example.scheduler/hierarchical/hierarchicalExample.amxmi
index 79fa044..fe488c2 100644
--- a/examples/app4mc.example.scheduler/hierarchical/hierarchicalExample.amxmi
+++ b/examples/app4mc.example.scheduler/hierarchical/hierarchicalExample.amxmi
@@ -1,51 +1,51 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:am="http://app4mc.eclipse.org/amalthea/1.1.0">
   <swModel>
-    <tasks name="TaskA1" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskB1" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskC1" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskD1" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskA2" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskB2" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskC2" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskD2" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskA1?type=Task" name="TaskA1" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskB1?type=Task" name="TaskB1" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskC1?type=Task" name="TaskC1" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskD1?type=Task" name="TaskD1" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskA2?type=Task" name="TaskA2" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskB2?type=Task" name="TaskB2" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskC2?type=Task" name="TaskC2" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskD2?type=Task" name="TaskD2" multipleTaskActivationLimit="0"/>
   </swModel>
   <hwModel>
-    <definitions xsi:type="am:ProcessingUnitDefinition" name="Core_Definition" puType="CPU"/>
-    <structures name="System" structureType="System">
-      <structures name="ECU" structureType="ECU">
-        <modules xsi:type="am:ProcessingUnit" name="CoreA" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
-        <modules xsi:type="am:ProcessingUnit" name="CoreB" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
+    <definitions xsi:type="am:ProcessingUnitDefinition" xmi:id="Core_Definition?type=ProcessingUnitDefinition" name="Core_Definition" puType="CPU"/>
+    <structures xmi:id="System?type=HwStructure" name="System" structureType="System">
+      <structures xmi:id="ECU?type=HwStructure" name="ECU" structureType="ECU">
+        <modules xsi:type="am:ProcessingUnit" xmi:id="CoreA?type=ProcessingUnit" name="CoreA" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
+        <modules xsi:type="am:ProcessingUnit" xmi:id="CoreB?type=ProcessingUnit" name="CoreB" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
       </structures>
     </structures>
-    <domains xsi:type="am:FrequencyDomain" name="Main_Freq_Domain" clockGating="false">
+    <domains xsi:type="am:FrequencyDomain" xmi:id="Main_Freq_Domain?type=FrequencyDomain" name="Main_Freq_Domain" clockGating="false">
       <defaultValue value="200.0" unit="MHz"/>
     </domains>
   </hwModel>
   <osModel>
     <operatingSystems name="">
-      <taskSchedulers name="Priority Based Round Robin">
+      <taskSchedulers xmi:id="Priority+Based+Round+Robin?type=TaskScheduler" name="Priority Based Round Robin">
         <schedulingAlgorithm xsi:type="am:PriorityBasedRoundRobin"/>
       </taskSchedulers>
-      <taskSchedulers name="OSEKA">
+      <taskSchedulers xmi:id="OSEKA?type=TaskScheduler" name="OSEKA">
         <schedulingAlgorithm xsi:type="am:OSEK"/>
         <parentAssociation parent="Priority+Based+Round+Robin?type=TaskScheduler">
           <schedulingParameters priority="20"/>
         </parentAssociation>
       </taskSchedulers>
-      <taskSchedulers name="OSEKB">
+      <taskSchedulers xmi:id="OSEKB?type=TaskScheduler" name="OSEKB">
         <schedulingAlgorithm xsi:type="am:OSEK"/>
         <parentAssociation parent="Priority+Based+Round+Robin?type=TaskScheduler">
           <schedulingParameters priority="15"/>
         </parentAssociation>
       </taskSchedulers>
-      <taskSchedulers name="OSEKC">
+      <taskSchedulers xmi:id="OSEKC?type=TaskScheduler" name="OSEKC">
         <schedulingAlgorithm xsi:type="am:OSEK"/>
-        <parentAssociation>
+        <parentAssociation parent="Priority+Based+Round+Robin?type=TaskScheduler">
           <schedulingParameters priority="5"/>
         </parentAssociation>
       </taskSchedulers>
-      <taskSchedulers name="OSEKD">
+      <taskSchedulers xmi:id="OSEKD?type=TaskScheduler" name="OSEKD">
         <schedulingAlgorithm xsi:type="am:OSEK"/>
         <parentAssociation parent="Priority+Based+Round+Robin?type=TaskScheduler">
           <schedulingParameters priority="10"/>
diff --git a/examples/app4mc.example.scheduler/partitioned_fpp/partitioned_fpp.amxmi b/examples/app4mc.example.scheduler/partitioned_fpp/partitioned_fpp.amxmi
index f5687c0..2ca7414 100644
--- a/examples/app4mc.example.scheduler/partitioned_fpp/partitioned_fpp.amxmi
+++ b/examples/app4mc.example.scheduler/partitioned_fpp/partitioned_fpp.amxmi
@@ -1,33 +1,33 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:am="http://app4mc.eclipse.org/amalthea/1.1.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
+<am:Amalthea xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:am="http://app4mc.eclipse.org/amalthea/1.1.0">
   <swModel>
-    <tasks name="TaskA1" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskB1" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskC1" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskD1" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskA2" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskB2" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskC2" multipleTaskActivationLimit="0"/>
-    <tasks name="TaskD2" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskA1?type=Task" name="TaskA1" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskB1?type=Task" name="TaskB1" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskC1?type=Task" name="TaskC1" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskD1?type=Task" name="TaskD1" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskA2?type=Task" name="TaskA2" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskB2?type=Task" name="TaskB2" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskC2?type=Task" name="TaskC2" multipleTaskActivationLimit="0"/>
+    <tasks xmi:id="TaskD2?type=Task" name="TaskD2" multipleTaskActivationLimit="0"/>
   </swModel>
   <hwModel>
-    <definitions xsi:type="am:ProcessingUnitDefinition" name="Core_Definition" puType="CPU"/>
-    <structures name="System" structureType="System">
-      <structures name="ECU" structureType="ECU">
-        <modules xsi:type="am:ProcessingUnit" name="CoreA" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
-        <modules xsi:type="am:ProcessingUnit" name="CoreB" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
+    <definitions xsi:type="am:ProcessingUnitDefinition" xmi:id="Core_Definition?type=ProcessingUnitDefinition" name="Core_Definition" puType="CPU"/>
+    <structures xmi:id="System?type=HwStructure" name="System" structureType="System">
+      <structures xmi:id="ECU?type=HwStructure" name="ECU" structureType="ECU">
+        <modules xsi:type="am:ProcessingUnit" xmi:id="CoreA?type=ProcessingUnit" name="CoreA" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
+        <modules xsi:type="am:ProcessingUnit" xmi:id="CoreB?type=ProcessingUnit" name="CoreB" frequencyDomain="Main_Freq_Domain?type=FrequencyDomain" definition="Core_Definition?type=ProcessingUnitDefinition"/>
       </structures>
     </structures>
-    <domains xsi:type="am:FrequencyDomain" name="Main_Freq_Domain" clockGating="false">
+    <domains xsi:type="am:FrequencyDomain" xmi:id="Main_Freq_Domain?type=FrequencyDomain" name="Main_Freq_Domain" clockGating="false">
       <defaultValue value="200.0" unit="MHz"/>
     </domains>
   </hwModel>
   <osModel>
     <operatingSystems name="">
-      <taskSchedulers name="Partitioned_FPP">
+      <taskSchedulers xmi:id="Partitioned_FPP?type=TaskScheduler" name="Partitioned_FPP">
         <schedulingAlgorithm xsi:type="am:UserSpecificSchedulingAlgorithm"/>
       </taskSchedulers>
-      <taskSchedulers name="GroupA">
+      <taskSchedulers xmi:id="GroupA?type=TaskScheduler" name="GroupA">
         <schedulingAlgorithm xsi:type="am:Grouping"/>
         <parentAssociation parent="Partitioned_FPP?type=TaskScheduler">
           <schedulingParameters>
@@ -36,7 +36,7 @@
           </schedulingParameters>
         </parentAssociation>
       </taskSchedulers>
-      <taskSchedulers name="GroupB">
+      <taskSchedulers xmi:id="GroupB?type=TaskScheduler" name="GroupB">
         <schedulingAlgorithm xsi:type="am:Grouping"/>
         <parentAssociation parent="Partitioned_FPP?type=TaskScheduler">
           <schedulingParameters>
@@ -45,16 +45,16 @@
           </schedulingParameters>
         </parentAssociation>
       </taskSchedulers>
-      <taskSchedulers name="GroupC">
+      <taskSchedulers xmi:id="GroupC?type=TaskScheduler" name="GroupC">
         <schedulingAlgorithm xsi:type="am:Grouping"/>
-        <parentAssociation>
+        <parentAssociation parent="Partitioned_FPP?type=TaskScheduler">
           <schedulingParameters>
             <maxBudget value="5" unit="ms"/>
             <replenishment value="20" unit="ms"/>
           </schedulingParameters>
         </parentAssociation>
       </taskSchedulers>
-      <taskSchedulers name="GroupD">
+      <taskSchedulers xmi:id="GroupD?type=TaskScheduler" name="GroupD">
         <schedulingAlgorithm xsi:type="am:Grouping"/>
         <parentAssociation parent="Partitioned_FPP?type=TaskScheduler">
           <schedulingParameters>