diff --git a/4.1.0/Extras/SDTTool Build Files/processSDT.sh b/4.1.0/Extras/SDTTool Build Files/processSDT.sh
index 983641bb273786eb65047a2606c654206f037716..38e2b269bff7b13adacf027edeed69bf7daa539b 100644
--- a/4.1.0/Extras/SDTTool Build Files/processSDT.sh	
+++ b/4.1.0/Extras/SDTTool Build Files/processSDT.sh	
@@ -6,13 +6,16 @@ CMD="python3 SDTTool.py"
 
 mkdir -p out
 
-for f in moduleClasses.*.conf
+for f in deviceClasses.*.conf
 do
 	echo "Processing $f"
-	$CMD @$f -i $MODULECLASSES
+	$CMD @$f -i $DEVICECLASSES
 done
-for f in deviceClasses.*.conf
+
+# Note: Convert ModuleClasses later since the production of DeviceClasses
+#		overwrite the enumeration file (needs to be solved by SDTTool).
+for f in moduleClasses.*.conf
 do
 	echo "Processing $f"
-	$CMD @$f -i $DEVICECLASSES
+	$CMD @$f -i $MODULECLASSES
 done
diff --git a/4.1.0/xsd/HD-enumerationTypes-v4_1_0.xsd b/4.1.0/xsd/HD-enumerationTypes-v4_1_0.xsd
index 60b2d5b43cfc1a01be653c95f7e767160b03b7d5..22a179183d243d8a4575083ad62a531b29b4dae8 100644
--- a/4.1.0/xsd/HD-enumerationTypes-v4_1_0.xsd
+++ b/4.1.0/xsd/HD-enumerationTypes-v4_1_0.xsd
@@ -20,4 +20,1109 @@ NO REPRESENTATION OR WARRANTY IS MADE THAT THE INFORMATION IS TECHNICALLY ACCURA
     xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:m2m="http://www.onem2m.org/xml/protocols" xmlns:hd="http://www.onem2m.org/xml/protocols/homedomain"
     elementFormDefault="unqualified">
 
+    <xs:simpleType name="enum3DPrinterTechnology">
+        <xs:annotation>
+            <xs:documentation>Used for the "printType" data point of the "3Dprinter" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- fusedFilamentFabrication -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- fusedDepositionModelling -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- digitalLightProcessing -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- powderBedAndInkjetHead3DPrinting -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- photopolymerJettingTechnology -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- laminatedObjectManufacturing -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- stereolithographyApparatus -->
+            <xs:enumeration value="7" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- selectiveLaserSintering -->
+            <xs:enumeration value="8" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumAdfState">
+        <xs:annotation>
+            <xs:documentation>Used for the "currentAdfState" and "adfStates" data points of the "autoDocumentFeeder ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- processing -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- empty -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- jam -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- loaded -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- mispick -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- hatchOpen -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- duplexPageTooShort -->
+            <xs:enumeration value="7" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- duplexPageTooLong -->
+            <xs:enumeration value="8" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- multipickDetected -->
+            <xs:enumeration value="9" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- inputTrayFailed -->
+            <xs:enumeration value="10" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- inputTrayOverloaded -->
+            <xs:enumeration value="11" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumAirConJobMode">
+        <xs:annotation>
+            <xs:documentation>Used for the "currentJobMode" and "jobModes" data point of the "airConJobMode" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- cool -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- airDry -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- fan -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- AI -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- heat -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- airClean -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- ACO -->
+            <xs:enumeration value="7" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- aroma -->
+            <xs:enumeration value="8" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumAirPurifierJobMode">
+        <xs:annotation>
+            <xs:documentation>Used for the "currentJobMode" and "jobModes" data points of the "airPurifierJobMode" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- normalClean -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- sleep -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- silent -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- wet -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- circulate -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- dual -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- auto -->
+            <xs:enumeration value="7" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumAlertColourCode">
+        <xs:annotation>
+            <xs:documentation>Used for the "light" data point of the "alarmSpeaker" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- red -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- green -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumBaliseSystemIndicator">
+        <xs:annotation>
+            <xs:documentation>Used for the "baliseTransmissionModule" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- ATC -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- ATP -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- CTCS3 -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumCallState">
+        <xs:annotation>
+            <xs:documentation>Used for the "callState" data point in the "phoneCall" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- hangup -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- calling -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- ringing -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- busy -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- answered -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- noline -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- voicemail -->
+            <xs:enumeration value="7" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- redirected -->
+            <xs:enumeration value="8" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumClothesDryerJobMode">
+        <xs:annotation>
+            <xs:documentation>Used for the "currentJobMode" and "jobModes" data points of the "clothesDryerJobMode" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- normal -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- quickDry -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- permanentPress -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- heavyDuty -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- delicates -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- airDry -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- extendedTumble -->
+            <xs:enumeration value="7" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumClothesWasherDryerJobMode">
+        <xs:annotation>
+            <xs:documentation>Used for "currentJobModes" and "jobModes" data points of "clothesWasherDryerJobMode" ModuleClass. Manufacturers can define their own courses by setting this value to negative values.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- normal -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- quick -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- auto -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- delicates -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- heavyDuty -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumClothesWasherJobMode">
+        <xs:annotation>
+            <xs:documentation>Used for the "currentJobModes" and "jobModes" data points of the "clothesWasherJobMode" ModuleClass. Washing options such as water temperature and spin speed are decided to pre-set values upon selected washing course. Manufacturers can define their own courses by setting this value to negative values.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- normal -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- smallLoad -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- delicate -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- comforter -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- expressWash -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- cleanWash -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- kidsWear -->
+            <xs:enumeration value="7" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- workoutWears -->
+            <xs:enumeration value="8" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumCookerHoodJobMode">
+        <xs:annotation>
+            <xs:documentation>Used for the "currentJobMode" and "jobModes" DataPoints of the "cookerHoodJobMode" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- alwaysOn -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- intensive -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- sensor -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumDehumidifierJobMode">
+        <xs:annotation>
+            <xs:documentation>Used for "currentJobMode" and "jobModes" data points of the "dehumidifierJobMode" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- smart -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- fast -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- silent -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- focus -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- clothes -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumDishWasherJobMode">
+        <xs:annotation>
+            <xs:documentation>Used for the "currentJobMode" and "jobModes" DataPoints of the "dishWasherJobMode" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- normalWash -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- intensiveWash -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- quickWash -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- sensorWash -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- ecoWash -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- quietWash -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- maintenanceWash -->
+            <xs:enumeration value="7" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumDisplayOrder">
+        <xs:annotation>
+            <xs:documentation>Used for the "displayOrder" data point of the "galleryMode" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- fixed -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- sequence -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- loop -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- random -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumDisplayOrientation">
+        <xs:annotation>
+            <xs:documentation>Used for the "displayOrientation" data point of the "galleryMode" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- landscape -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- portrait -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumDoorState">
+        <xs:annotation>
+            <xs:documentation>Used for the "doorState" DataPoint of "doorStatus" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- closed -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- open -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- opening -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- closing -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- stopped -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumFoamStrength">
+        <xs:annotation>
+            <xs:documentation>Used for data points indicating the strength of a foam, for example, foaming milk from a coffee machine.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- zero -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- low -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- medium -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- high -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- maximum -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumGeneralLevel">
+        <xs:annotation>
+            <xs:documentation>Used for the "soilLevel" data point of the "washingCourseOption" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- light -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- normal -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- heavy -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumGeneralSpeed">
+        <xs:annotation>
+            <xs:documentation>Used for the "spinSpeed" data point of the "washingCourseOption" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- low -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- medium -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- high -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- extraHigh -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumGeneralTemperature">
+        <xs:annotation>
+            <xs:documentation>Used for the "washTemp" data point of the "washingCourseOption" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- cold -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- warm -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- hot -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumGrainsLevel">
+        <xs:annotation>
+            <xs:documentation>Used for the "grainsRemaining" data point of the "grinder" ModuleClss. This type specifies a level for supplies that have a grain-aspect, for example.the level of remaining coffee beans in the grinder part of a coffee machine, or the desired level of coffee beans in this machine. The values for the level of a liquid is covered by "hd:enumLiquidLevel".</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- zero -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- low -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- medium -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- high -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- maximum -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumGrindCoarseness">
+        <xs:annotation>
+            <xs:documentation>Used for the coarseness data points of the "grinder" ModuleClass. This type specifies the level of coarseness of a solid after grinding, for example grinded coffee beans.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- ultrafine -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- fine -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- medium -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- coarse -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- coarsest -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumHorizontalDirection">
+        <xs:annotation>
+            <xs:documentation>Used for the "horizontalDirection" and "supportedHorizontalDirection" of the "airflow" ModuleClass, indicating horizontal directions.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- auto -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- center -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- left -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- right -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumJobState">
+        <xs:annotation>
+            <xs:documentation>Used for the "currentJobState" and "jobStates" data points of the "runState" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- aborted -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- cancelled -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- completed -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- paused -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- pending -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- processing -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumLiquidLevel">
+        <xs:annotation>
+            <xs:documentation>Used for the "liquidLevel" and "liquidRemaining" data points in the respective "liquidLevel" and "liquidRemaining" ModuleClasses.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- zero -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- low -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- medium -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- high -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- maximum -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumLiquidLevel">
+        <xs:annotation>
+            <xs:documentation>Used for the "supportedMediaSources" data point of the "mediaSelect" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- tuner -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- component -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- composite -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- svideo -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- rgb -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- dvi -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- hdmi -->
+            <xs:enumeration value="7" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- displayPort -->
+            <xs:enumeration value="8" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- scart -->
+            <xs:enumeration value="9" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- externalStorage -->
+            <xs:enumeration value="10" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- network -->
+            <xs:enumeration value="11" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumMachineState">
+        <xs:annotation>
+            <xs:documentation>Used for the "currentMachineState" and "machineStates" data points of the "runState" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- idle -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- preActive -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- active -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- reserved -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- stopped -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- error -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- diagnostic -->
+            <xs:enumeration value="7" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- test -->
+            <xs:enumeration value="8" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- maintenance -->
+            <xs:enumeration value="9" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- clear -->
+            <xs:enumeration value="10" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- charging -->
+            <xs:enumeration value="11" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumOzoneStatus">
+        <xs:annotation>
+            <xs:documentation>Used for the "ozoneStatus" property of the "ozoneMeter" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- good -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- normal -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- bad -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- veryBad -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumPlayerMode">
+        <xs:annotation>
+            <xs:documentation>Used for the "currentMode" and "supportedModes" data points in the "playerControl" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- stop -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- play -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- pause -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- resume -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- record -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- rewind -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- fastRewind -->
+            <xs:enumeration value="7" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- foreward -->
+            <xs:enumeration value="8" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- fastForward -->
+            <xs:enumeration value="9" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- searchPrevious -->
+            <xs:enumeration value="10" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- searchNext -->
+            <xs:enumeration value="11" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumRobotCleanerJobMode">
+        <xs:annotation>
+            <xs:documentation>Used for the "currentJobMode" and "jobModes" data points of the "robotCleanerJobMode" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- zigzag -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- sectorBase -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- spot -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumSecurityMode">
+        <xs:annotation>
+            <xs:documentation>Used for the "currentSecurityMode" and "securityModes" data points of the "securityMode" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- active -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- armedAway -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- armedInstant -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- armedMaximum -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- armedNightStay -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- armedStay -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumSpinLevelStrength">
+        <xs:annotation>
+            <xs:documentation>Used for the "spinLevelStrength" data points of the "spinLevel" ModuleClass, indicating the strength of a spinLevel.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- zero -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- sensitive -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- weak -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- medium -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- strong -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- maximum -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumSteamClosetJobMode">
+        <xs:annotation>
+            <xs:documentation>Used for "currentJobMode" and "jobModes" data points of the "steamClosetJobMode" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- reduceOdor -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- steamWrinkle -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- helpClean -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- gentleDry -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumTasteStrength">
+        <xs:annotation>
+            <xs:documentation>Used for the "strength" data point of the "brewing" ModuleClass, indicating strength of a drink taste, for example coffee strength.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- zero -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- sensitive -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- medium -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- strong -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- maximum -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumTemperatureUnit">
+        <xs:annotation>
+            <xs:documentation>Used for the "unit" data point related to "temperature" and "temperatureAlarm" ModuleClass which contains temperature, indicating the units of the temperature.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- C -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- F -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- K -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumTone">
+        <xs:annotation>
+            <xs:documentation>Used for the "tone" data point of the "alarmSpeaker" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- fire -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- theft -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- emergency -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- doorbell -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- deviceFail -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumUvStatus">
+        <xs:annotation>
+            <xs:documentation>Used for the "uvStatus" data point of the "uvSensor" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- good -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- normal -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- bad -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- veryBad -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- danger -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumVerticalDirection">
+        <xs:annotation>
+            <xs:documentation>Used for the "verticalDirection" and "supportedVerticalDirection" data points of the “airFlow" ModuleClass, indicating vertical direction.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- auto -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- center -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- up -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- down -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumWaterFilterType">
+        <xs:annotation>
+            <xs:documentation>Used for the "filterType" data point of the "waterFilterType" ModuleClass.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- RO -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- UV -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- UF -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- AZ -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- SF -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumWaterFlowStrength">
+        <xs:annotation>
+            <xs:documentation>Used for the "waterLevelStrength" data point of the "waterFlow" ModuleClass, indicating the strength of a waterflow.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- zero -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- sensitive -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- weak -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- medium -->
+            <xs:enumeration value="4" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- strong -->
+            <xs:enumeration value="5" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- maximum -->
+            <xs:enumeration value="6" />
+        </xs:restriction>
+    </xs:simpleType>
+    <xs:simpleType name="enumWeightUnit">
+        <xs:annotation>
+            <xs:documentation>Used for the “unit” data point related to all ModuleClass which contains weight, indicating the units of the weight.</xs:documentation>
+        </xs:annotation>
+        <xs:restriction base="xs:integer">
+            <!-- kg -->
+            <xs:enumeration value="1" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- lb -->
+            <xs:enumeration value="2" />
+        </xs:restriction>
+        <xs:restriction base="xs:integer">
+            <!-- oz -->
+            <xs:enumeration value="3" />
+        </xs:restriction>
+    </xs:simpleType>
 </xs:schema>