diff --git a/schema/physicalUnits.xsd b/schema/physicalUnits.xsd
index 1314b53dbebf17e6a6c843fce676c7e898742899..04d8aaa5770168e52aacbcebe23bfb4f15ac7794 100644
--- a/schema/physicalUnits.xsd
+++ b/schema/physicalUnits.xsd
@@ -12,24 +12,39 @@
   <xs:include schemaLocation="genericRailML.xsd" />
 
   <xs:simpleType name="tLength">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="6" />
     </xs:restriction>
   </xs:simpleType>
 
   <xs:simpleType name="tLengthMM">
+    <xs:annotation>
+      <xs:documentation>generic type for length values measured in millimeter</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tLength" />
   </xs:simpleType>
 
   <xs:simpleType name="tLengthM">
+    <xs:annotation>
+      <xs:documentation>generic type for length values measured in meter</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tLength" />
   </xs:simpleType>
 
   <xs:simpleType name="tLengthKM">
+    <xs:annotation>
+      <xs:documentation>generic type for length values measured in kilometer</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tLength" />
   </xs:simpleType>
 
   <xs:simpleType name="tSpeed">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="1" />
       <xs:minInclusive value="0" />
@@ -38,14 +53,23 @@
   </xs:simpleType>
 
   <xs:simpleType name="tSpeedKmPerHour">
+    <xs:annotation>
+      <xs:documentation>generic type for speed/velocity values measured in kilometer per hour</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tSpeed" />
   </xs:simpleType>
 
   <xs:simpleType name="tSpeedMPerSec">
+    <xs:annotation>
+      <xs:documentation>generic type for speed/velocity values measured in meter per second</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tSpeed" />
   </xs:simpleType>
 
   <xs:simpleType name="tSpeedDegreesPerSecond">
+    <xs:annotation>
+      <xs:documentation>generic type for angular speed/velocity values measured in degree per second</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="3" />
       <xs:minInclusive value="0" />
@@ -53,16 +77,25 @@
   </xs:simpleType>
 
   <xs:simpleType name="tAcceleration">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="3" />
     </xs:restriction>
   </xs:simpleType>
 
   <xs:simpleType name="tAccelerationMeterPerSquareSec">
+    <xs:annotation>
+      <xs:documentation>generic type for acceleration values measured in meter per square second</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tAcceleration" />
   </xs:simpleType>
 
   <xs:simpleType name="tArea">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="3" />
       <xs:minInclusive value="0" />
@@ -70,10 +103,16 @@
   </xs:simpleType>
 
   <xs:simpleType name="tAreaSquareMeter">
+    <xs:annotation>
+      <xs:documentation>generic type for area values measured in square meter</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tArea" />
   </xs:simpleType>
 
   <xs:simpleType name="tVolume">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="3" />
       <xs:minInclusive value="0" />
@@ -81,94 +120,151 @@
   </xs:simpleType>
 
   <xs:simpleType name="tVolumeCubicMeter">
+    <xs:annotation>
+      <xs:documentation>generic type for volume values measured in cubic meter</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tVolume" />
   </xs:simpleType>
 
   <xs:simpleType name="tVolumeLitre">
+    <xs:annotation>
+      <xs:documentation>generic type for volume values measured in litre</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tVolume" />
   </xs:simpleType>
 
   <xs:simpleType name="tVoltage">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="1" />
     </xs:restriction>
   </xs:simpleType>
 
   <xs:simpleType name="tVoltageVolt">
+    <xs:annotation>
+      <xs:documentation>generic type for voltage values measured in volt</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tVoltage" />
   </xs:simpleType>
 
   <xs:simpleType name="tResistance">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="4" />
     </xs:restriction>
   </xs:simpleType>
 
   <xs:simpleType name="tResistanceOhm">
+    <xs:annotation>
+      <xs:documentation>generic type for electric resistance values measured in ohm</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tResistance" />
   </xs:simpleType>
 
   <xs:simpleType name="tInductance">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="6" />
     </xs:restriction>
   </xs:simpleType>
 
   <xs:simpleType name="tInductanceHenry">
+    <xs:annotation>
+      <xs:documentation>generic type for inductance values measured in henry</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tInductance" />
   </xs:simpleType>
 
   <xs:simpleType name="tFlux">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="6" />
     </xs:restriction>
   </xs:simpleType>
 
   <xs:simpleType name="tFluxVoltSecond">
+    <xs:annotation>
+      <xs:documentation>generic type for electric flux values measured in volt*second</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tFlux" />
   </xs:simpleType>
 
   <xs:simpleType name="tForce">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="0" />
     </xs:restriction>
   </xs:simpleType>
 
   <xs:simpleType name="tForceNewton">
+    <xs:annotation>
+      <xs:documentation>generic type for force values measured in newton</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tForce" />
   </xs:simpleType>
 
   <xs:simpleType name="tPower">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="0" />
     </xs:restriction>
   </xs:simpleType>
 
   <xs:simpleType name="tPowerWatt">
+    <xs:annotation>
+      <xs:documentation>generic type for power values measured in watt</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tPower" />
   </xs:simpleType>
 
   <xs:simpleType name="tEnergy">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="3" />
     </xs:restriction>
   </xs:simpleType>
 
   <xs:simpleType name="tEnergyKiloWattHours">
+    <xs:annotation>
+      <xs:documentation>generic type for energy values measured in kilowatt*hour</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tEnergy" />
   </xs:simpleType>
 
   <xs:simpleType name="tCurrent">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="1" />
     </xs:restriction>
   </xs:simpleType>
 
   <xs:simpleType name="tCurrentAmpere">
+    <xs:annotation>
+      <xs:documentation>generic type for electric current values measured in ampere</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tCurrent" />
   </xs:simpleType>
 
   <xs:simpleType name="tFrequency">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="3" />
       <xs:minInclusive value="0" />
@@ -176,32 +272,53 @@
   </xs:simpleType>
 
   <xs:simpleType name="tFrequencyHertz">
+    <xs:annotation>
+      <xs:documentation>generic type for frequency values measured in hertz</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tFrequency" />
   </xs:simpleType>
 
   <xs:simpleType name="tRotationalFrequency">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:positiveInteger" />
   </xs:simpleType>
 
   <xs:simpleType name="tRotationalFrequencyRevolutionsPerMinute">
+    <xs:annotation>
+      <xs:documentation>generic type for rotational frequency values measured in revolutions per minute</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tRotationalFrequency" />
   </xs:simpleType>
 
   <xs:simpleType name="tWeight">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="3" />
     </xs:restriction>
   </xs:simpleType>
 
   <xs:simpleType name="tWeightKG">
+    <xs:annotation>
+      <xs:documentation>generic type for weight/load values measured in kilogram</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tWeight" />
   </xs:simpleType>
 
   <xs:simpleType name="tWeightTons">
+    <xs:annotation>
+      <xs:documentation>generic type for weight/load values measured in ton</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tWeight" />
   </xs:simpleType>
 
   <xs:simpleType name="tAngleDeg">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="3" />
       <xs:totalDigits value="6" />
@@ -211,6 +328,9 @@
   </xs:simpleType>
 
   <xs:simpleType name="tAngleDegFullCircle">
+    <xs:annotation>
+      <xs:documentation>generic type for angle values measured in degree, allowing -180 ... +180</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tAngleDeg">
       <xs:minInclusive value="-180" />
       <xs:maxInclusive value="180" />
@@ -218,19 +338,35 @@
   </xs:simpleType>
 
   <xs:simpleType name="tAngleDegQuadrant">
+    <xs:annotation>
+      <xs:documentation>generic type for angle values measured in degree, allowing 0 ... +90</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tAngleDeg">
       <xs:minExclusive value="0" />
       <xs:maxInclusive value="90" />
     </xs:restriction>
   </xs:simpleType>
 
-  <xs:simpleType name="tGradientPromille">
+  <xs:simpleType name="tGradient">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="3" />
     </xs:restriction>
   </xs:simpleType>
 
+  <xs:simpleType name="tGradientPromille">
+    <xs:annotation>
+      <xs:documentation>generic type for gradient values measured in per thousand/mill</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="rail:tGradient"/>
+  </xs:simpleType>
+
   <xs:simpleType name="tRadiusM">
+    <xs:annotation>
+      <xs:documentation>generic type for radius values measured in meter</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tLengthM" />
   </xs:simpleType>
 
diff --git a/schema/railwayUnits.xsd b/schema/railwayUnits.xsd
index e018ab710fe0bf77b6a44bbfc6e7e378a96d1269..c1da4903aeda923e95d1d10f4eabbf1f5a314882 100644
--- a/schema/railwayUnits.xsd
+++ b/schema/railwayUnits.xsd
@@ -24,16 +24,25 @@
   </xs:simpleType>
 
   <xs:simpleType name="tMeterload">
+    <xs:annotation>
+      <xs:documentation>applies as basic type for inheritance, should not be used directly because of missing unit of measure</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:decimal">
       <xs:fractionDigits value="3" fixed="true" />
     </xs:restriction>
   </xs:simpleType>
 
   <xs:simpleType name="tMeterloadTonsPerMeter">
+    <xs:annotation>
+      <xs:documentation>generic type for load per meter values measured in ton per meter</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tMeterload" />
   </xs:simpleType>
 
   <xs:simpleType name="tDirValidity">
+    <xs:annotation>
+      <xs:documentation>generic type for direction statements</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:string">
       <xs:enumeration value="none" />
       <xs:enumeration value="up" />
@@ -44,18 +53,34 @@
   </xs:simpleType>
 
   <xs:simpleType name="tFlowDirection">
-    <xs:restriction base="xs:string">
-      <xs:enumeration value="in" />
-      <xs:enumeration value="out" />
-      <xs:enumeration value="both" />
-    </xs:restriction>
+    <xs:annotation>
+      <xs:documentation>extensible generic type for flow statements</xs:documentation>
+    </xs:annotation>
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="in" />
+          <xs:enumeration value="out" />
+          <xs:enumeration value="both" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>    
   </xs:simpleType>
 
   <xs:simpleType name="tTrainCategory">
+    <xs:annotation>
+      <xs:documentation>generic type for category names of trains; allowing digits, letters and whitespaces; length not limited</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:string" />
   </xs:simpleType>
 
   <xs:simpleType name="tTrainAlignment">
+    <xs:annotation>
+      <xs:documentation>generic type for the alignment of a train relative to some objective in the used context</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="xs:string">
       <xs:enumeration value="head" />
       <xs:enumeration value="center" />
@@ -64,6 +89,9 @@
   </xs:simpleType>
 
   <xs:simpleType name="tEffortNewton">
+    <xs:annotation>
+      <xs:documentation>generic type for effort values measured in newton</xs:documentation>
+    </xs:annotation>
     <xs:restriction base="rail:tForceNewton" />
   </xs:simpleType>