Dev:changes/2.1/diff

From railML 2 Wiki
Jump to navigation Jump to search
Diff Pages

Schema differences between railML® 2.0 and railML® 2.1

This page shows schema differences between railML® 2.0 and railML® 2.1. It is intended to support advanced railML® users in comprehending and documenting the differences between these versions. Thanks to Milan Wölke of PSI Transcom (external link) for compiling the data.

An explanation of how to interpret diff output can be found here (external link).

diff --git a/schema/genericRailML.xsd b/schema/genericRailML.xsd
index 5b38b5d..f442d8f 100644
--- a/schema/genericRailML.xsd
+++ b/schema/genericRailML.xsd
@@ -1,203 +1,351 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2009"
-	xmlns:xs="https://www.w3.org/2001/XMLSchema"
-    xmlns:xml="https://www.w3.org/XML/1998/namespace"
-    xmlns:dc="https://purl.org/dc/elements/1.1/"
-	targetNamespace="https://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2011" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:xml="https://www.w3.org/XML/1998/namespace" xmlns:dc="https://purl.org/dc/elements/1.1/" targetNamespace="https://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1">
 
+  <xs:annotation>
+    <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
+    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of generic simple types, used by all sub schemas</xs:documentation>
+  </xs:annotation>
+
+  <xs:import namespace="https://purl.org/dc/elements/1.1/" schemaLocation="https://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd">
     <xs:annotation>
-        <xs:documentation>
-        Copyright (c) railML.org; All Rights Reserved. 
+      <xs:documentation>Portions of this software may use XML schemas Copyright (c) 2009 DCMI, the Dublin Core Metadata Initiative. These are licensed under the Creative Commons 3.0 Attribution license.</xs:documentation>
+      <xs:documentation>For further information see: https://dublincore.org/ License link: https://creativecommons.org/licenses/by/3.0/</xs:documentation>
+    </xs:annotation>
+  </xs:import>
+
+  <xs:import namespace="https://www.w3.org/XML/1998/namespace" schemaLocation="https://www.w3.org/2001/03/xml.xsd" />
 
-        This work is licensed under a Creative Commons Attribution 2.0 License. 
-        https://creativecommons.org/licenses/by/2.0/
+  <xs:simpleType name="tRailMLVersion">
+    <xs:annotation>
+      <xs:documentation>Version Number is some official release number, rather than any internal numbering from an version control system</xs:documentation>
+      <xs:documentation>Allows two part or three part version numbers, 1.0 up to 99.99, or 1.0.1 up to 99.99.99</xs:documentation>
+      <xs:documentation>Allows additional SVN release numbers for testing unofficial releases: 1.1r4 or 2.0r271</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:pattern value="[1-9][0-9]?\.([0-9]|[1-9][0-9])(\.[1-9][0-9]?)?(r[1-9][0-9]?[0-9]?)?" />
+    </xs:restriction>
+  </xs:simpleType>
 
-        For further information see: https://www.railml.org/
+  <xs:simpleType name="tVersionNumber">
+    <xs:annotation>
+      <xs:documentation>an arbitrary version number for any system; allowing digits, letters and whitespace</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string" />
+  </xs:simpleType>
 
-        Content of this file: 
-        XML Schema for railML(R) 2.0 
-        Definition of generic simple types, used by all sub schemas
-        </xs:documentation>
+  <xs:simpleType name="tGenericID">
+    <xs:annotation>
+      <xs:documentation>an XML-side constrained biunique identity; unique across an XML file including its outsourced components (xi:include mechanism); whitespaces not allowed</xs:documentation>
     </xs:annotation>
+    <xs:restriction base="xs:ID" />
+  </xs:simpleType>
 
-    <xs:import namespace="https://purl.org/dc/elements/1.1/"
-        schemaLocation="https://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd" >
+  <xs:simpleType name="tGenericRef">
+    <xs:annotation>
+      <xs:documentation>an XML-side constrained reference to one xs:ID value, acts across an XML file including its outsourced components (xi:include mechanism)</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:IDREF" />
+  </xs:simpleType>
+
+  <xs:simpleType name="tGenericName">
+    <xs:annotation>
+      <xs:documentation>system-wide known name of an railway facility (e.g. station, timetable period or vehicle), allowing digits, letters and whitespace</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string" />
+  </xs:simpleType>
+
+  <xs:simpleType name="tElementDescription">
+    <xs:annotation>
+      <xs:documentation>an detailed description of an railway facility (e.g. station, timetable period or vehicle), allowing digits, letters and whitespace</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string" />
+  </xs:simpleType>
+
+  <xs:complexType name="tElementWithIDAndName">
+    <xs:annotation>
+      <xs:documentation>generic base type, used for inheritance of many railML types</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="additionalName" type="rail:tAdditionalName" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-            <xs:documentation>
-            Portions of this software may use XML schemas 
-            Copyright (c) 2009 DCMI, the Dublin Core Metadata Initiative.
-            These are licensed under the Creative Commons 3.0 Attribution license.
-            
-            For further information see:  https://dublincore.org/
-            License link: https://creativecommons.org/licenses/by/3.0/
-            </xs:documentation>
+          <xs:documentation>additional names and its according descriptions to be provided in other languages, dialects, encodings...</xs:documentation>
         </xs:annotation>
-    </xs:import>    
-
-    <xs:import namespace="https://www.w3.org/XML/1998/namespace"
-    schemaLocation="https://www.w3.org/2001/03/xml.xsd" />  
-
-    <!--*********************************************************-->
-    <!-- Version numbers -->
-    <!--*********************************************************-->
-
-	<xs:simpleType name="tRailMLVersion">
-		<xs:annotation>
-			<xs:documentation>
-				Version Number is some official release number, rather
-				than any internal numbering from an version control
-				system
-			</xs:documentation>
-			<xs:documentation>
-				Allows two part or three part version numbers, 1.0 up to
-				99.99, or 1.0.1 up to 99.99.99
-			</xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="xs:string">
-			<xs:pattern
-				value="[1-9][0-9]?\.([0-9]|[1-9][0-9])(\.[1-9][0-9]?)?" />
-		</xs:restriction>
-	</xs:simpleType>
-    
-    <xs:simpleType name="tVersionNumber">
-        <xs:restriction base="xs:string" />
-    </xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Identifier -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tGenericID">
-		<xs:restriction base="xs:ID" />
-	</xs:simpleType>
-
-	<xs:simpleType name="tGenericRef">
-		<xs:restriction base="xs:IDREF" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Names -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tGenericName">
-		<xs:restriction base="xs:string" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Generic Counter Type -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tCounter">
-		<xs:annotation>
-			<xs:documentation>
-				generic type for counters (number of equipment)
-			</xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="xs:positiveInteger" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Non-numeric multiplicities -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tVerbalCounter">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="single" />
-			<xs:enumeration value="double" />
-			<xs:enumeration value="triple" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Arbitrary strings to describe elements -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tElementDescription">
-		<xs:restriction base="xs:string" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Basic type for later inheritance -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tElementWithIDAndName">
-		<xs:attribute name="id" type="rail:tGenericID" use="required" />
-		<xs:attribute name="name" type="rail:tGenericName" />
-		<xs:attribute name="description" type="rail:tElementDescription" />
-		<!-- Provide an extension point for other attributes-->
-		<xs:attributeGroup ref="rail:anyAttribute" />
-	</xs:complexType>
-
-	<xs:complexType name="tElementWithReference">
-		<xs:attribute name="ref" type="rail:tGenericRef" use="required" />
-		<xs:attributeGroup ref="rail:anyAttribute" />
-	</xs:complexType>
-
-    <xs:complexType name="tGlobalElementWithMetadata">
-        <xs:complexContent>
-            <xs:extension base="rail:tElementWithIDAndName">
-                <xs:sequence>
-                    <xs:element name="metadata" type="dc:elementContainer" minOccurs="0" />
-                </xs:sequence>
-                <xs:attribute name="version" type="rail:tRailMLVersion"/>
-                <xs:attribute ref="xml:base"/>
-            </xs:extension>    
-        </xs:complexContent>
-    </xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Generic type for values only between 0 and 1 -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tOneToZero">
-		<xs:annotation>
-			<xs:documentation>
-				generic type for values only between 0 and 1, as
-				efficiency or cosinus phi.
-			</xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="xs:decimal">
-			<xs:minInclusive value="0" />
-			<xs:maxInclusive value="1" />
-			<xs:fractionDigits value="6" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Generic type for a list of double values  -->
-	<!--*********************************************************-->
-   <xs:simpleType name="tDoubleList">
-       <xs:list itemType="xs:double"/>
-    </xs:simpleType>
-    
-    <xs:simpleType name="tCoordinateList">
-      <xs:restriction base="rail:tDoubleList">
-        <xs:length value="3"/>
+      </xs:element>
+      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>provide an extension point for non-railML elements in foreign namespace</xs:documentation>
+        </xs:annotation>
+      </xs:any>
+    </xs:sequence>
+    <xs:attribute name="id" type="rail:tGenericID" use="required">
+      <xs:annotation>
+        <xs:documentation>XML-file-wide unique identity is required for later referencing that element</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="code" type="rail:tGenericName">
+      <xs:annotation>
+        <xs:documentation>for typical, specific abbreviations, used in different systems with the same understanding</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="name" type="rail:tGenericName">
+      <xs:annotation>
+        <xs:documentation>should be interpreted in its elements' context (e.g. track/name, vehicle/name)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="description" type="rail:tElementDescription">
+      <xs:annotation>
+        <xs:documentation>should be interpreted in its elements' context, substantiates the name</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute ref="xml:lang">
+      <xs:annotation>
+        <xs:documentation>natural language identification according to https://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attributeGroup ref="rail:anyAttribute">
+      <xs:annotation>
+        <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation>
+      </xs:annotation>
+    </xs:attributeGroup>
+  </xs:complexType>
+
+  <xs:complexType name="tAdditionalName">
+    <xs:attribute name="name" type="rail:tGenericName">
+      <xs:annotation>
+        <xs:documentation>should be interpreted in its elements' context (e.g. track/name, vehicle/name)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="description" type="rail:tElementDescription">
+      <xs:annotation>
+        <xs:documentation>should be interpreted in its elements' context, substantiates the name</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute ref="xml:lang">
+      <xs:annotation>
+        <xs:documentation>natural language identification according to https://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attributeGroup ref="rail:anyAttribute">
+      <xs:annotation>
+        <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation>
+      </xs:annotation>
+    </xs:attributeGroup>
+  </xs:complexType>
+
+  <xs:complexType name="tElementWithIDAndNameWithoutAny">
+    <xs:annotation>
+      <xs:documentation>Special derived type without 'any' element sequence but 'anyAttribute' for inheritance with 'xs:all' model group.</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:restriction base="rail:tElementWithIDAndName">
+        <xs:attribute name="id" type="rail:tGenericID" use="required">
+          <xs:annotation>
+            <xs:documentation>XML-file-wide unique identity is required for later referencing that element</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="code" type="rail:tGenericName">
+          <xs:annotation>
+            <xs:documentation>for typical, specific abbreviations, used in different systems with the same understanding</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="name" type="rail:tGenericName">
+          <xs:annotation>
+            <xs:documentation>should be interpreted in its elements' context (e.g. track/name, vehicle/name)</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="description" type="rail:tElementDescription">
+          <xs:annotation>
+            <xs:documentation>should be interpreted in its elements' context, substantiates the name</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attributeGroup ref="rail:anyAttribute">
+          <xs:annotation>
+            <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation>
+          </xs:annotation>
+        </xs:attributeGroup>
       </xs:restriction>
-    </xs:simpleType>
-
-    <xs:simpleType name="tOtherEnumerationValue">
-        <xs:restriction base="xs:string">
-            <xs:pattern value="other:\w{2,}" />
-        </xs:restriction>
-    </xs:simpleType>
-    
-    <xs:attributeGroup name="anyAttribute">
-        <xs:anyAttribute namespace="##other"/>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tElementWithReference">
+    <xs:annotation>
+      <xs:documentation>generic base type, used for inheritance of railML types deploying references</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="ref" type="rail:tGenericRef" use="required">
+      <xs:annotation>
+        <xs:documentation>reference is required because it's the purpose of the element</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attributeGroup ref="rail:anyAttribute">
+      <xs:annotation>
+        <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation>
+      </xs:annotation>
     </xs:attributeGroup>
+  </xs:complexType>
+
+  <xs:complexType name="tGlobalElementWithMetadata">
+    <xs:annotation>
+      <xs:documentation>generic base type, used for inheritance of railML subschema elements</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:sequence>
+          <xs:element name="metadata" type="dc:elementContainer" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>subschema-wide flexible collection of Dublin Core metadata based on xs:any according to https://dublincore.org/</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+        <xs:attribute name="version" type="rail:tRailMLVersion">
+          <xs:annotation>
+            <xs:documentation>only used, if subschema element is outsourced, else use 'version' attribute in root element ('railml')</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute ref="xml:base">
+          <xs:annotation>
+            <xs:documentation>provide outsourcing of subschema element with xi:include mechanism</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tCounter">
+    <xs:annotation>
+      <xs:documentation>generic type for counters (e.g. number of equipment), allowing zero</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:nonNegativeInteger" />
+  </xs:simpleType>
+
+  <xs:simpleType name="tPositiveCounter">
+    <xs:annotation>
+      <xs:documentation>generic type for counters (e.g. order number of a vehicle in an formation), starting with '1'</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:positiveInteger" />
+  </xs:simpleType>
+
+  <xs:simpleType name="tVerbalCounter">
+    <xs:annotation>
+      <xs:documentation>generic enumeration, where digits are not common</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="single" />
+      <xs:enumeration value="double" />
+      <xs:enumeration value="triple" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tOneToZero">
+    <xs:annotation>
+      <xs:documentation>generic type for values only between 0 and 1, as efficiency or cosinus phi.</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:decimal">
+      <xs:minInclusive value="0" />
+      <xs:maxInclusive value="1" />
+      <xs:fractionDigits value="6" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tDigitString">
+    <xs:annotation>
+      <xs:documentation>an arbitrary string consisting of digits from 0 to 9; not allowing whitespace, letters; no length restriction</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:pattern value="[0-9]*" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tOneDigit">
+    <xs:annotation>
+      <xs:documentation>an identification string consisting of exactly one digit</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="rail:tDigitString">
+      <xs:length value="1" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tTwoDigits">
+    <xs:annotation>
+      <xs:documentation>an identification string consisting of exactly two digits</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="rail:tDigitString">
+      <xs:length value="2" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tThreeDigits">
+    <xs:annotation>
+      <xs:documentation>an identification string consisting of exactly three digits</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="rail:tDigitString">
+      <xs:length value="3" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tFourDigits">
+    <xs:annotation>
+      <xs:documentation>an identification string consisting of exactly four digits</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="rail:tDigitString">
+      <xs:length value="4" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tFiveDigits">
+    <xs:annotation>
+      <xs:documentation>an identification string consisting of exactly five digits</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="rail:tDigitString">
+      <xs:length value="5" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tDoubleList">
+    <xs:annotation>
+      <xs:documentation>an arbitrary list consisting of xs:double values separated by whitespace; no length restriction</xs:documentation>
+    </xs:annotation>
+    <xs:list itemType="xs:double" />
+  </xs:simpleType>
+
+  <xs:simpleType name="tCoordinateList">
+    <xs:annotation>
+      <xs:documentation>an coordinate list consisting of two or three coordinates</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="rail:tDoubleList">
+      <xs:minLength value="2" />
+      <xs:maxLength value="3" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tOtherEnumerationValue">
+    <xs:annotation>
+      <xs:documentation>an arbitrary string starting with 'other:' followed by at minimum two characters, whitespace not allowed for extending railML enumeration lists</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:pattern value="other:\w{2,}" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:attributeGroup name="anyAttribute">
+    <xs:anyAttribute namespace="##other">
+      <xs:annotation>
+        <xs:documentation>'any attributes' should be deployed in a foreign namespace</xs:documentation>
+      </xs:annotation>
+    </xs:anyAttribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tElementRefInGroup">
+    <xs:annotation>
+      <xs:documentation>generic type for inheritance in serialized reference elements</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <xs:attribute name="sequence" type="rail:tPositiveCounter" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
-	<!--*********************************************************-->
-	<!-- Generic type for element references in groups  -->
-	<!--*********************************************************-->
-    
-    <xs:complexType name="tElementRefInGroup">
-        <xs:complexContent>
-            <xs:extension base="rail:tElementWithReference">
-				<xs:attribute name="sequence" type="rail:tCounter" />
-            </xs:extension>    
-        </xs:complexContent>
-	</xs:complexType>
-    
 </xs:schema>
diff --git a/schema/infrastructure.xsd b/schema/infrastructure.xsd
index 5dca930..61ce423 100644
--- a/schema/infrastructure.xsd
+++ b/schema/infrastructure.xsd
@@ -1,867 +1,493 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2009"
-	xmlns:xs="https://www.w3.org/2001/XMLSchema"
-	xmlns:xml="https://www.w3.org/XML/1998/namespace"
-    targetNamespace="https://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
-
-    <xs:annotation>
-        <xs:documentation>
-        Copyright (c) railML.org; All Rights Reserved. 
-
-        This work is licensed under a Creative Commons Attribution 2.0 License. 
-        https://creativecommons.org/licenses/by/2.0/
-
-        For further information see: https://www.railml.org/
-
-        Content of this file: 
-        XML Schema for railML(R) 2.0 
-        Definition of elements (partially hidden as complex type) for 
-        infrastructure sub schema (IS), uses infrastructure types and 
-        attribute groups from "xs:include" path
-        </xs:documentation>
-    </xs:annotation>
-
-	<xs:include schemaLocation="infrastructureTypes.xsd" />
-
-    <xs:import namespace="https://www.w3.org/XML/1998/namespace"
-    schemaLocation="https://www.w3.org/2001/03/xml.xsd" />  
-
-	<!---->
-	<!-- infrastructure                                                          -->
-	<!--   +- tracks                                                             -->
-	<!--   +- trackGroups                                                        -->
-	<!--   +- operationControlPoints                                             -->
-	<!---->
-	<xs:element name="infrastructure">
-        <xs:complexType>
-            <xs:complexContent>
-                <xs:extension base="rail:tInfrastructure">
-				    <xs:sequence>
-						<xs:element name="infraAttrGroups" type="rail:eInfraAttrGroup" minOccurs="0" />
-						<xs:element name="tracks" type="rail:eTracks" minOccurs="0" />
-						<xs:element name="trackGroups" type="rail:eTrackGroups" minOccurs="0" />
-                        <xs:element name="operationControlPoints" type="rail:eOperationControlPoints" minOccurs="0" />
-				    </xs:sequence>
-                </xs:extension>
-            </xs:complexContent>
-        </xs:complexType>
-    </xs:element>
-
-	<!---->
-	<!-- operationControlPoints                                                  -->
-	<!--   +- ocp                                                                -->
-	<!---->
-
-	<xs:complexType name="eOperationControlPoints">
-		<xs:sequence>
-			<xs:element name="ocp" type="rail:eOcp" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- ocp                                                                     -->
-	<!--   +- propOperational                                                    -->
-	<!--   +- propService                                                        -->
-	<!--   +- propOther                                                          -->
-	<!--   +- area                                                               -->
-	<!--   +- geoCoord                                                           -->
-	<!---->
-
-	<xs:complexType name="eOcp">
-		<xs:complexContent>
-			<xs:extension base="rail:tOperationControlPoint">
-				<xs:sequence>
-					<xs:element name="propOperational" type="rail:eOcpPropOperational" minOccurs="0" />
-					<xs:element name="propService" type="rail:tOcpPropService" minOccurs="0" />
-					<xs:element name="propEquipment" type="rail:eOcpPropEquipment" minOccurs="0" />
-					<xs:element name="propOther" type="rail:eOcpPropOther" minOccurs="0" />
-					<xs:element name="area" type="rail:tOcpArea" minOccurs="0" />
-					<xs:element name="geoCoord" type="rail:tGeoCoord" minOccurs="0" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- propOperational                                                         -->
-	<!--   +- uptime                                                             -->
-	<!---->
-
-	<xs:complexType name="eOcpPropOperational">
-		<xs:complexContent>
-			<xs:extension base="rail:tOcpPropOperational">
-				<xs:sequence>
-					<xs:element name="uptime" type="rail:tOcpUptime" minOccurs="0" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- propOther                                                         -->
-	<!--   +- additionalName                                                             -->
-	<!---->
-
-	<xs:complexType name="eOcpPropOther">
-		<xs:complexContent>
-			<xs:extension base="rail:tOcpPropOther">
-				<xs:sequence>
-					<xs:element name="additionalName" type="rail:tOcpAdditionalName" minOccurs="0" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- propEquipment                                                         -->
-	<!--   +- summary                                                             -->
-	<!--   +- trackRef                                                             -->
-	<!---->
-
-	<xs:complexType name="eOcpPropEquipment">
-		<xs:choice>
-		    <xs:element name="summary" type="rail:tOcpPropEquipmentSummary" />
-		    <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded" />
-		</xs:choice>
-	</xs:complexType>
-
-	<!---->
-	<!-- infraAttrGroup                                                          -->
-	<!--   +- infraAttributes                                                    -->
-	<!---->
-
-	<xs:complexType name="eInfraAttrGroup">
-		<xs:complexContent>
-			<xs:extension base="rail:tInfraAttrGroup">
-				<xs:sequence>
-					<xs:element name="infraAttributes" type="rail:eInfraAttr" minOccurs="0" maxOccurs="unbounded"/>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- locallyControlledArea                                                                    -->
-	<!--   +- trackRefs                                                          -->
-	<!---->
-
-	<xs:complexType name="eLocallyControlledArea">
-		<xs:complexContent>
-			<xs:extension base="rail:tLocallyControlledArea">
-				<xs:sequence>
-				    <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-
-	<!---->
-	<!-- line                                                                    -->
-	<!--   +- infraAttrGroupID                                                   -->
-	<!--   +- lineDescr                                                          -->
-	<!--   +- trackRefs                                                          -->
-	<!---->
-
-	<xs:complexType name="eLine">
-		<xs:complexContent>
-			<xs:extension base="rail:tLine">
-				<xs:sequence>
-					<xs:element name="lineDescr" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
-				    <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- trackGroups                                                            -->
-	<!--   +- line                                                               -->
-	<!---->
-
-	<xs:complexType name="eTrackGroups">
-		<xs:sequence>
-			<xs:element name="line" type="rail:eLine" minOccurs="0" maxOccurs="unbounded" />
-			<xs:element name="locallyControlledArea" type="rail:eLocallyControlledArea" minOccurs="0" maxOccurs="unbounded" />
-			<xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-
-	<!---->
-	<!-- tracks                                                                  -->
-	<!--   +- track                                                              -->
-	<!---->
-
-	<xs:complexType name="eTracks">
-		<xs:sequence>
-			<xs:element name="track" type="rail:eTrack" minOccurs="0"
-				maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- track                                                                   -->
-	<!--   +- trackDescr                                                         -->
-	<!--   +- trackTopology                                                      -->
-	<!--   +- trackElements                                                      -->
-	<!--   +- ocsElements                                                        -->
-	<!---->
-
-	<xs:complexType name="eTrack">
-		<xs:complexContent>
-			<xs:extension base="rail:tTrack">
-				<xs:sequence>
-					<xs:element name="trackDescr" type="xs:string"
-						minOccurs="0" maxOccurs="unbounded" />
-					<xs:element name="trackTopology"
-						type="rail:eTrackTopology" />
-					<xs:element name="trackElements"
-						type="rail:eTrackElements" minOccurs="0" />
-					<xs:element name="ocsElements" type="rail:eOcsElements"
-						minOccurs="0" />
-					<!-- Provide an extension point for other attributes-->
-					<xs:any namespace="##other"
-						processContents="strict" minOccurs="0" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- trackTopology                                                           -->
-	<!--   +- trackBegin                                                         -->
-	<!--   +- trackEnd                                                           -->
-	<!--   +- mileageChanges                                                     -->
-	<!--   +- connections                                                        -->
-	<!--   +- crossSections                                                      -->
-	<!--   +- borders                                                            -->
-	<!---->
-
-	<xs:complexType name="eTrackTopology">
-		<xs:sequence>
-			<xs:element name="trackBegin" type="rail:eTrackNode" />
-			<xs:element name="trackEnd" type="rail:eTrackNode" />
-			<xs:element name="mileageChanges" type="rail:eMileageChanges"
-				minOccurs="0" />
-			<xs:element name="connections" type="rail:eConnections"
-				minOccurs="0" />
-			<xs:element name="crossSections" type="rail:eCrossSections"
-				minOccurs="0" />
-			<xs:element name="borders" type="rail:eBorder" minOccurs="0" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- trackBegin  /  trackEnd                                                 -->
-	<!--   +- connection                                                   -->
-	<!--   +- bufferStop                                                         -->
-	<!--   +- openEnd                                               -->
-	<!--   +- macroscopicNode                                               -->
-	<!---->
-
-	<xs:complexType name="eTrackNode">
-		<xs:complexContent>
-			<xs:extension base="rail:tTrackNode">
-				<xs:choice>
-					<xs:element name="connection" type="rail:tConnectionData" />
-					<xs:element name="bufferStop" type="rail:tBufferStop" />
-					<xs:element name="openEnd" type="rail:tOpenEnd"></xs:element>
-					<xs:element name="macroscopicNode" type="rail:tMacroscopicNode"></xs:element>
-				</xs:choice>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-
-
-	<!---->
-	<!-- switch                                                                  -->
-	<!--   +- connection                                                         -->
-	<!---->
-
-	<xs:complexType name="eSwitch">
-		<xs:complexContent>
-			<xs:extension base="rail:tSwitch">
-				<xs:sequence>
-					<xs:element name="connection"
-						type="rail:tSwitchConnectionData" maxOccurs="3" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- crossing                                                                -->
-	<!--   +- connection                                                         -->
-	<!---->
-
-	<xs:complexType name="eCrossing">
-		<xs:complexContent>
-			<xs:extension base="rail:tCrossing">
-				<xs:sequence>
-					<xs:element name="connection"
-						type="rail:tSwitchConnectionData" maxOccurs="3" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- mileageChanges                                                          -->
-	<!--   +- mileageChange                                                      -->
-	<!---->
-
-	<xs:complexType name="eMileageChanges">
-		<xs:sequence>
-			<xs:element name="mileageChange" type="rail:tMileageChange"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- connections                                                             -->
-	<!--   +- switch                                                             -->
-	<!--   +- crossing                                                           -->
-	<!---->
-
-	<xs:complexType name="eConnections">
-		<xs:choice minOccurs="0" maxOccurs="unbounded">
-			<xs:element name="switch" type="rail:eSwitch" minOccurs="0"
-				maxOccurs="unbounded" />
-			<xs:element name="crossing" type="rail:eCrossing" minOccurs="0"
-				maxOccurs="unbounded" />
-		</xs:choice>
-	</xs:complexType>
-
-	<!---->
-	<!-- crossSections                                                           -->
-	<!--   +- crossSection                                                       -->
-	<!---->
-
-	<xs:complexType name="eCrossSections">
-		<xs:sequence>
-			<xs:element name="crossSection" type="rail:tCrossSection"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- borders                                                                 -->
-	<!--   +- border                                                             -->
-	<!---->
-
-	<xs:complexType name="eBorder">
-		<xs:sequence>
-			<xs:element name="border" type="rail:tBorder" minOccurs="0"
-				maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- trackElements                                                           -->
-	<!--   +- speedChanges                                                       -->
-	<!--   +- gradientChanges                                                    -->
-	<!--   +- radiusChanges                                                      -->
-	<!--   +- tunnels                                                            -->
-	<!--   +- bridges                                                            -->
-	<!--   +- levelCrossings                                                     -->
-	<!--   +- ownerChanges                                                       -->
-	<!--   +- operationModeChanges                                               -->
-	<!--   +- trainProtectionChanges                                             -->
-	<!--   +- electrificationChanges                                             -->
-	<!--   +- powerTransmissionChanges                                           -->
-	<!--   +- axleWeightChanges                                                  -->
-	<!--   +- gaugeChanges                                                       -->
-	<!--   +- geoMappings                                                        -->
-	<!---->
-
-	<xs:complexType name="eTrackElements">
-		<xs:sequence>
-			<xs:element name="speedChanges" type="rail:eSpeedChanges"
-				minOccurs="0" />
-			<xs:element name="gradientChanges" type="rail:eGradientChanges"
-				minOccurs="0" />
-			<xs:element name="radiusChanges" type="rail:eRadiusChanges"
-				minOccurs="0" />
-			<xs:element name="tunnels" type="rail:eTunnels" minOccurs="0" />
-			<xs:element name="bridges" type="rail:eBridges" minOccurs="0" />
-			<xs:element name="levelCrossings" type="rail:eLevelCrossings"
-				minOccurs="0" />
-			<xs:element name="ownerChanges" type="rail:eOwnerChanges"
-				minOccurs="0" />
-			<xs:element name="operationModeChanges"
-				type="rail:eOperationModeChanges" minOccurs="0" />
-			<xs:element name="trainProtectionChanges"
-				type="rail:eTrainProtectionChanges" minOccurs="0" />
-			<xs:element name="electrificationChanges"
-				type="rail:eElectrificationChanges" minOccurs="0" />
-			<xs:element name="powerTransmissionChanges"
-				type="rail:ePowerTransmissionChanges" minOccurs="0" />
-			<xs:element name="axleWeightChanges"
-				type="rail:eAxleWeightChanges" minOccurs="0" />
-			<xs:element name="gaugeChanges" type="rail:eGaugeChanges"
-				minOccurs="0" />
-            <xs:element name="geoMappings" type="rail:eGeoMappings" minOccurs="0"/>
-			<!-- Provide an extension point for other elements-->
-            <xs:any namespace="##other" processContents="strict"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- speedChanges                                                            -->
-	<!--   +- speedChange                                                        -->
-	<!---->
-
-	<xs:complexType name="eSpeedChanges">
-		<xs:sequence>
-			<xs:element name="speedChange" type="rail:tSpeedChange"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- gradientChanges                                                         -->
-	<!--   +- gradientChange                                                     -->
-	<!---->
-
-	<xs:complexType name="eGradientChanges">
-		<xs:sequence>
-			<xs:element name="gradientChange" type="rail:tGradientChange"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- radiusChanges                                                           -->
-	<!--   +- radiusChange                                                       -->
-	<!---->
-
-	<xs:complexType name="eRadiusChanges">
-		<xs:sequence>
-			<xs:element name="radiusChange" type="rail:tRadiusChange"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- tunnels                                                                 -->
-	<!--   +- tunnel                                                             -->
-	<!---->
-
-	<xs:complexType name="eTunnels">
-		<xs:sequence>
-			<xs:element name="tunnel" type="rail:tTunnel" minOccurs="0"
-				maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- bridges                                                                 -->
-	<!--   +- bridge                                                             -->
-	<!---->
-
-	<xs:complexType name="eBridges">
-		<xs:sequence>
-			<xs:element name="brigde" type="rail:tBridge" minOccurs="0"
-				maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- levelCrossings                                                          -->
-	<!--   +- levelCrossing                                                      -->
-	<!---->
-
-	<xs:complexType name="eLevelCrossings">
-		<xs:sequence>
-			<xs:element name="levelCrossing" type="rail:tLevelCrossing"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- ownerChanges                                                            -->
-	<!--   +- ownerChange                                                        -->
-	<!---->
-
-	<xs:complexType name="eOwnerChanges">
-		<xs:sequence>
-			<xs:element name="ownerChange" type="rail:tOwnerChange"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- operationModeChanges                                                    -->
-	<!--   +- operationModeChange                                                -->
-	<!---->
-
-	<xs:complexType name="eOperationModeChanges">
-		<xs:sequence>
-			<xs:element name="operationModeChange"
-				type="rail:tOperationModeChange" minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- trainProtectionChanges                                                  -->
-	<!--   +- trainProtectionChange                                              -->
-	<!---->
-
-	<xs:complexType name="eTrainProtectionChanges">
-		<xs:sequence>
-			<xs:element name="trainProtectionChange"
-				type="rail:tTrainProtectionChange" minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- electrificationChanges                                                  -->
-	<!--   +- electrificationChange                                              -->
-	<!---->
-
-	<xs:complexType name="eElectrificationChanges">
-		<xs:sequence>
-			<xs:element name="electrificationChange"
-				type="rail:tElectrificationChange" minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- powerTransmissionChanges                                                -->
-	<!--   +- powerTransmissionChange                                            -->
-	<!---->
-
-	<xs:complexType name="ePowerTransmissionChanges">
-		<xs:sequence>
-			<xs:element name="powerTransmissionChange"
-				type="rail:tPowerTransmissionChange" minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- axleWeightChanges                                                       -->
-	<!--   +- axleWeightChange                                                   -->
-	<!---->
-
-	<xs:complexType name="eAxleWeightChanges">
-		<xs:sequence>
-			<xs:element name="axleWeightChange"
-				type="rail:tAxleWeightChange" minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- gaugeChanges                                                            -->
-	<!--   +- gaugeChange                                                        -->
-	<!---->
-
-	<xs:complexType name="eGaugeChanges">
-		<xs:sequence>
-			<xs:element name="gaugeChange" type="rail:tGaugeChange"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- geoMappings                                                       -->
-	<!--   +- geoMapping                                                   -->
-	<!---->
-	<xs:complexType name="eGeoMappings">
-		<xs:sequence minOccurs="0" maxOccurs="unbounded">
-			<xs:element name="geoMapping" type="rail:tPlacedElement"></xs:element>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- ocsElements                                                             -->
-	<!--   +- signals                                                            -->
-	<!--   +- trainDetectionElements                                             -->
-	<!--   +- balises                                                            -->
-	<!--   +- trainProtectionElements                                            -->
-	<!---->
-
-	<xs:complexType name="eOcsElements">
-		<xs:sequence>
-			<xs:element name="signals" type="rail:eSignals" minOccurs="0" />
-			<xs:element name="trainDetectionElements"
-				type="rail:eTrainDetectionElements" minOccurs="0" />
-			<xs:element name="balises" type="rail:eBalises" minOccurs="0" />
-			<xs:element name="trainProtectionElements"
-				type="rail:eTrainProtectionElements" minOccurs="0" />
-			<!-- Provide an extension point for other elements-->
-			<xs:any namespace="##other" processContents="strict"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- signals                                                                 -->
-	<!--   +- signal                                                             -->
-	<!--   +- signalGroup                                                        -->
-	<!---->
-
-	<xs:complexType name="eSignals">
-		<xs:choice minOccurs="0" maxOccurs="unbounded">
-			<xs:element name="signal" type="rail:tSignal" />
-			<xs:element name="signalGroups" type="rail:eSignalGroups" />
-		</xs:choice>
-	</xs:complexType>
-
-	<!---->
-	<!-- signalGroups                                                             -->
-	<!--   +- signalGroup                                                             -->
-	<!---->
-
-	<xs:complexType name="eSignalGroups">
-		<xs:sequence>
-			<xs:element name="signalGroup" type="rail:eSignalGroup" minOccurs="0"
-				maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- signalGroup                                                             -->
-	<!--   +- signalRef                                                             -->
-	<!---->
-	
-	<xs:complexType name="eSignalGroup">
-		<xs:complexContent>
-			<xs:extension base="rail:tSignalGroup">
-				<xs:sequence>
-					<xs:element name="signalRef" type="rail:tSignalRefInGroup"
-						minOccurs="0" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- trainDetectionElements                                                  -->
-	<!--   +- trainDetector                                                      -->
-	<!--   +- trackCircuitBorder                                                 -->
-	<!---->
-
-	<xs:complexType name="eTrainDetectionElements">
-		<xs:choice minOccurs="0" maxOccurs="unbounded">
-			<xs:element name="trainDetector" type="rail:tTrainDetector" />
-			<xs:element name="trackCircuitBorder"
-				type="rail:tTrackCircuitBorder" />
-		</xs:choice>
-	</xs:complexType>
-
-	<!---->
-	<!-- balises                                                                 -->
-	<!--   +- balise                                                             -->
-	<!--   +- baliseGroup                                                        -->
-	<!---->
-
-	<xs:complexType name="eBalises">
-		<xs:sequence>
-			<xs:element name="balise" type="rail:tBalise" maxOccurs="unbounded"/>
-			<xs:element name="baliseGroup" type="rail:eBaliseGroup" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- baliseGroup                                                             -->
-	<!--   +- balise                                                             -->
-	<!---->
-
-	<xs:complexType name="eBaliseGroup">
-		<xs:sequence>
-			<xs:element name="baliseRef" type="rail:tBaliseRefInGroup" maxOccurs="8" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- trainProtectionElements                                                 -->
-	<!--   +- trainProtectionElement                                             -->
-	<!---->
-
-	<xs:complexType name="eTrainProtectionElements">
-		<xs:sequence>
-			<xs:element name="trainProtectionElement"
-				type="rail:tTrainProtectionElement" minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Infrastructure attributes -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="eInfraAttr">
-		<xs:all>
-			<xs:element name="owner" type="rail:tOwner" minOccurs="0" />
-			<xs:element name="operationMode" type="rail:tOperationMode"
-				minOccurs="0" />
-			<xs:element name="trainProtection" type="rail:tTrainProtection"
-				minOccurs="0" />
-			<xs:element name="electrification" type="rail:tElectrification"
-				minOccurs="0" />
-			<xs:element name="powerTransmission"
-				type="rail:tPowerTransmission" minOccurs="0" />
-			<xs:element name="axleWeight" type="rail:tAxleWeight"
-				minOccurs="0" />
-			<xs:element name="gauge" type="rail:tGauge" minOccurs="0" />
-			<xs:element name="speeds" type="rail:eSpeeds" minOccurs="0" />
-            <xs:element name="epsgCode" type="rail:tEpsgCode" minOccurs="0" />
-            <xs:element name="generalInfraAttributes"
-				type="rail:eGeneralInfraAttributes" minOccurs="0" />
-		</xs:all>
-	</xs:complexType>
-
-	<!---->
-	<!-- speeds                                                                  -->
-	<!--   +- speed                                                              -->
-	<!---->
-
-	<xs:complexType name="eSpeeds">
-		<xs:sequence>
-			<xs:element name="speed" type="rail:tSpeedInfo" minOccurs="0"
-				maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- generalInfraAttributes                                                  -->
-	<!--   +- generalInfraAttribute                                              -->
-	<!---->
-
-	<xs:complexType name="eGeneralInfraAttributes">
-		<xs:sequence>
-			<xs:element name="generalInfraAttribute"
-				type="rail:eGeneralInfraAttribute" minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- generalInfraAttribute                                                   -->
-	<!--   +- attributes                                                         -->
-	<!--   +- others                                                             -->
-	<!---->
-
-	<xs:complexType name="eGeneralInfraAttribute">
-		<xs:sequence>
-			<xs:element name="attributes" type="rail:eAttributes"
-				minOccurs="0" />
-			<xs:any namespace="##other" processContents="strict"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- attributes                                                              -->
-	<!--   +- attribute                                                          -->
-	<!---->
-
-	<xs:complexType name="eAttributes">
-		<xs:sequence>
-			<xs:element name="attribute" type="rail:tAttribute"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- infrastructureVisualizations                                            -->
-	<!--   +- infrastructureVisualization                                        -->
-	<!---->
-
-    <xs:element name="infrastructureVisualizations">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element name="visualization"
-                    type="rail:eInfrastructureVisualization" minOccurs="0"
-                    maxOccurs="unbounded" />
-            </xs:sequence>
-            <xs:attribute ref="xml:base" />
-        </xs:complexType>
-    </xs:element>
-
-	<!---->
-	<!-- infrastructureVisualization                                             -->
-	<!--   +- lineVis                                                            -->
-	<!--   +- ocpVis                                                             -->
-	<!---->
-
-	<xs:complexType name="eInfrastructureVisualization">
-		<xs:complexContent>
-			<xs:extension base="rail:tInfrastructureVisualization">
-				<xs:sequence>
-					<xs:element name="lineVis" type="rail:eLineVis"
-						minOccurs="0" maxOccurs="unbounded" />
-					<xs:element name="ocpVis" type="rail:eOcpVis"
-						minOccurs="0" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- lineVis                                                                 -->
-	<!--   +- trackVis                                                           -->
-	<!---->
-
-	<xs:complexType name="eLineVis">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithReference">
-				<xs:sequence>
-					<xs:element name="trackVis" type="rail:eTrackVis"
-						minOccurs="0" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- trackVis                                                                -->
-	<!--   +- trackElementVis                                                    -->
-	<!---->
-
-	<xs:complexType name="eTrackVis">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithReference">
-				<xs:sequence>
-					<xs:element name="trackElementVis"
-						type="rail:eTrackElementVis" minOccurs="0" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- trackElementVis                                                         -->
-	<!--   +- position                                                           -->
-	<!---->
-
-	<xs:complexType name="eTrackElementVis">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithReference">
-				<xs:sequence>
-					<xs:element name="position" type="rail:tPoint" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- ocpVis                                                                  -->
-	<!--   +- position                                                           -->
-	<!--   +- size                                                               -->
-	<!---->
-
-	<xs:complexType name="eOcpVis">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithReference">
-				<xs:sequence>
-					<xs:element name="position" type="rail:tPoint" />
-					<xs:element name="size" type="rail:tSize" minOccurs="0" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2011" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:xml="https://www.w3.org/XML/1998/namespace" targetNamespace="https://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1">
+
+  <xs:annotation>
+    <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
+    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of elements (partially hidden as complex type) for infrastructure sub schema (IS), uses infrastructure types and attribute groups from "xs:include" path</xs:documentation>
+  </xs:annotation>
+
+  <xs:include schemaLocation="infrastructureTypes.xsd" />
+
+  <xs:import namespace="https://www.w3.org/XML/1998/namespace" schemaLocation="https://www.w3.org/2001/03/xml.xsd" />
+
+  <xs:element name="infrastructure">
+    <xs:complexType>
+      <xs:complexContent>
+        <xs:extension base="rail:tInfrastructure">
+          <xs:sequence>
+            <xs:element name="infraAttrGroups" type="rail:eInfraAttrGroup" minOccurs="0" />
+            <xs:element name="tracks" type="rail:eTracks" minOccurs="0" />
+            <xs:element name="trackGroups" type="rail:eTrackGroups" minOccurs="0" />
+            <xs:element name="operationControlPoints" type="rail:eOperationControlPoints" minOccurs="0" />
+            <xs:element name="controllers" type="rail:eControllers" minOccurs="0" />
+          </xs:sequence>
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+  </xs:element>
+
+  <xs:complexType name="eOperationControlPoints">
+    <xs:sequence>
+      <xs:element name="ocp" type="rail:eOcp" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eOcp">
+    <xs:complexContent>
+      <xs:extension base="rail:tOperationControlPoint">
+        <xs:sequence>
+          <xs:element name="propOperational" type="rail:eOcpPropOperational" minOccurs="0" />
+          <xs:element name="propService" type="rail:tOcpPropService" minOccurs="0" />
+          <xs:element name="propEquipment" type="rail:eOcpPropEquipment" minOccurs="0" />
+          <xs:element name="propOther" type="rail:eOcpPropOther" minOccurs="0" />
+          <xs:element name="tsi" type="rail:tOcpTsi" minOccurs="0" />
+          <xs:element name="area" type="rail:tOcpArea" minOccurs="0" />
+          <xs:element name="geoCoord" type="rail:tGeoCoord" minOccurs="0" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eOcpPropOperational">
+    <xs:complexContent>
+      <xs:extension base="rail:tOcpPropOperational">
+        <xs:sequence>
+          <xs:element name="uptime" type="rail:tOcpUptime" minOccurs="0" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eOcpPropOther">
+    <xs:complexContent>
+      <xs:extension base="rail:tOcpPropOther">
+        <xs:sequence>
+          <xs:element name="additionalName" type="rail:tOcpAdditionalName" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>Deprecated for next major release, use "additionalName" in "ocp" instead.</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eOcpPropEquipment">
+    <xs:choice>
+      <xs:element name="summary" type="rail:tOcpPropEquipmentSummary" />
+      <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded" />
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="eControllers">
+    <xs:sequence>
+      <xs:element name="controller" type="rail:tController" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eInfraAttrGroup">
+    <xs:sequence>
+      <xs:element name="infraAttributes" type="rail:eInfraAttr" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eLocallyControlledArea">
+    <xs:complexContent>
+      <xs:extension base="rail:tLocallyControlledArea">
+        <xs:sequence>
+          <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eLine">
+    <xs:complexContent>
+      <xs:extension base="rail:tLine">
+        <xs:sequence>
+          <xs:element name="lineDescr" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
+          <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eTrackGroups">
+    <xs:sequence>
+      <xs:element name="line" type="rail:eLine" minOccurs="0" maxOccurs="unbounded" />
+      <xs:element name="locallyControlledArea" type="rail:eLocallyControlledArea" minOccurs="0" maxOccurs="unbounded" />
+      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eTracks">
+    <xs:sequence>
+      <xs:element name="track" type="rail:eTrack" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eTrack">
+    <xs:complexContent>
+      <xs:extension base="rail:tTrack">
+        <xs:sequence>
+          <xs:element name="trackDescr" type="xs:string" minOccurs="0" maxOccurs="unbounded" />
+          <xs:element name="trackTopology" type="rail:eTrackTopology" />
+          <xs:element name="trackElements" type="rail:eTrackElements" minOccurs="0" />
+          <xs:element name="ocsElements" type="rail:eOcsElements" minOccurs="0" />
+          <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>Deprecated for next major release, use "generic any element" instead.</xs:documentation>
+            </xs:annotation>
+          </xs:any>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eTrackTopology">
+    <xs:sequence>
+      <xs:element name="trackBegin" type="rail:eTrackNode" />
+      <xs:element name="trackEnd" type="rail:eTrackNode" />
+      <xs:element name="mileageChanges" type="rail:eMileageChanges" minOccurs="0" />
+      <xs:element name="connections" type="rail:eConnections" minOccurs="0" />
+      <xs:element name="crossSections" type="rail:eCrossSections" minOccurs="0" />
+      <xs:element name="borders" type="rail:eBorder" minOccurs="0" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eTrackNode">
+    <xs:complexContent>
+      <xs:extension base="rail:tTrackNode">
+        <xs:choice>
+          <xs:element name="connection" type="rail:tConnectionData" />
+          <xs:element name="bufferStop" type="rail:tBufferStop" />
+          <xs:element name="openEnd" type="rail:tOpenEnd"></xs:element>
+          <xs:element name="macroscopicNode" type="rail:tMacroscopicNode"></xs:element>
+        </xs:choice>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eSwitch">
+    <xs:complexContent>
+      <xs:extension base="rail:tSwitch">
+        <xs:sequence>
+          <xs:element name="connection" type="rail:tSwitchConnectionData" maxOccurs="3" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eCrossing">
+    <xs:complexContent>
+      <xs:extension base="rail:tCrossing">
+        <xs:sequence>
+          <xs:element name="connection" type="rail:tSwitchConnectionData" maxOccurs="3" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eMileageChanges">
+    <xs:sequence>
+      <xs:element name="mileageChange" type="rail:tMileageChange" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eConnections">
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="switch" type="rail:eSwitch" minOccurs="0" maxOccurs="unbounded" />
+      <xs:element name="crossing" type="rail:eCrossing" minOccurs="0" maxOccurs="unbounded" />
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="eCrossSections">
+    <xs:sequence>
+      <xs:element name="crossSection" type="rail:tCrossSection" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eBorder">
+    <xs:sequence>
+      <xs:element name="border" type="rail:tBorder" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eTrackElements">
+    <xs:sequence>
+      <xs:element name="speedChanges" type="rail:eSpeedChanges" minOccurs="0" />
+      <xs:element name="gradientChanges" type="rail:eGradientChanges" minOccurs="0" />
+      <xs:element name="radiusChanges" type="rail:eRadiusChanges" minOccurs="0" />
+      <xs:element name="tunnels" type="rail:eTunnels" minOccurs="0" />
+      <xs:element name="bridges" type="rail:eBridges" minOccurs="0" />
+      <xs:element name="levelCrossings" type="rail:eLevelCrossings" minOccurs="0" />
+      <xs:element name="ownerChanges" type="rail:eOwnerChanges" minOccurs="0" />
+      <xs:element name="operationModeChanges" type="rail:eOperationModeChanges" minOccurs="0" />
+      <xs:element name="trainProtectionChanges" type="rail:eTrainProtectionChanges" minOccurs="0" />
+      <xs:element name="electrificationChanges" type="rail:eElectrificationChanges" minOccurs="0" />
+      <xs:element name="powerTransmissionChanges" type="rail:ePowerTransmissionChanges" minOccurs="0" />
+      <xs:element name="axleWeightChanges" type="rail:eAxleWeightChanges" minOccurs="0" />
+      <xs:element name="gaugeChanges" type="rail:eGaugeChanges" minOccurs="0" />
+      <xs:element name="geoMappings" type="rail:eGeoMappings" minOccurs="0" />
+      <xs:element name="trackConditions" type="rail:eTrackConditions" minOccurs="0" />
+      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eSpeedChanges">
+    <xs:sequence>
+      <xs:element name="speedChange" type="rail:tSpeedChange" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eGradientChanges">
+    <xs:sequence>
+      <xs:element name="gradientChange" type="rail:tGradientChange" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eRadiusChanges">
+    <xs:sequence>
+      <xs:element name="radiusChange" type="rail:tRadiusChange" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eTunnels">
+    <xs:sequence>
+      <xs:element name="tunnel" type="rail:tTunnel" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eBridges">
+    <xs:sequence>
+      <xs:element name="brigde" type="rail:tBridge" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eLevelCrossings">
+    <xs:sequence>
+      <xs:element name="levelCrossing" type="rail:tLevelCrossing" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eOwnerChanges">
+    <xs:sequence>
+      <xs:element name="ownerChange" type="rail:tOwnerChange" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eOperationModeChanges">
+    <xs:sequence>
+      <xs:element name="operationModeChange" type="rail:tOperationModeChange" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eTrainProtectionChanges">
+    <xs:sequence>
+      <xs:element name="trainProtectionChange" type="rail:tTrainProtectionChange" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eElectrificationChanges">
+    <xs:sequence>
+      <xs:element name="electrificationChange" type="rail:tElectrificationChange" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ePowerTransmissionChanges">
+    <xs:sequence>
+      <xs:element name="powerTransmissionChange" type="rail:tPowerTransmissionChange" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eAxleWeightChanges">
+    <xs:sequence>
+      <xs:element name="axleWeightChange" type="rail:tAxleWeightChange" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eGaugeChanges">
+    <xs:sequence>
+      <xs:element name="gaugeChange" type="rail:tGaugeChange" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eGeoMappings">
+    <xs:sequence>
+      <xs:element name="geoMapping" type="rail:tPlacedElement" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eTrackConditions">
+    <xs:sequence>
+      <xs:element name="trackCondition" type="rail:tTrackCondition" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eOcsElements">
+    <xs:sequence>
+      <xs:element name="signals" type="rail:eSignals" minOccurs="0" />
+      <xs:element name="trainDetectionElements" type="rail:eTrainDetectionElements" minOccurs="0" />
+      <xs:element name="balises" type="rail:eBalises" minOccurs="0" />
+      <xs:element name="trainProtectionElements" type="rail:eTrainProtectionElements" minOccurs="0" />
+      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eSignals">
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="signal" type="rail:tSignal" />
+      <xs:element name="signalGroups" type="rail:eSignalGroups" />
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="eSignalGroups">
+    <xs:sequence>
+      <xs:element name="signalGroup" type="rail:eSignalGroup" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eSignalGroup">
+    <xs:complexContent>
+      <xs:extension base="rail:tSignalGroup">
+        <xs:sequence>
+          <xs:element name="signalRef" type="rail:tSignalRefInGroup" minOccurs="0" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eTrainDetectionElements">
+    <xs:choice minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="trainDetector" type="rail:tTrainDetector" />
+      <xs:element name="trackCircuitBorder" type="rail:tTrackCircuitBorder" />
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="eBalises">
+    <xs:sequence>
+      <xs:element name="balise" type="rail:tBalise" maxOccurs="unbounded" />
+      <xs:element name="baliseGroup" type="rail:eBaliseGroup" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eBaliseGroup">
+    <xs:sequence>
+      <xs:element name="baliseRef" type="rail:tBaliseRefInGroup" maxOccurs="8" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eTrainProtectionElements">
+    <xs:sequence>
+      <xs:element name="trainProtectionElement" type="rail:tTrainProtectionElement" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eInfraAttr">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndNameWithoutAny">
+        <xs:all>
+          <xs:element name="owner" type="rail:tOwner" minOccurs="0" />
+          <xs:element name="operationMode" type="rail:tOperationMode" minOccurs="0" />
+          <xs:element name="trainProtection" type="rail:tTrainProtection" minOccurs="0" />
+          <xs:element name="electrification" type="rail:tElectrification" minOccurs="0" />
+          <xs:element name="powerTransmission" type="rail:tPowerTransmission" minOccurs="0" />
+          <xs:element name="axleWeight" type="rail:tAxleWeight" minOccurs="0" />
+          <xs:element name="gauge" type="rail:tGauge" minOccurs="0" />
+          <xs:element name="speeds" type="rail:eSpeeds" minOccurs="0" />
+          <xs:element name="epsgCode" type="rail:tEpsgCode" minOccurs="0" />
+          <xs:element name="generalInfraAttributes" type="rail:eGeneralInfraAttributes" minOccurs="0" />
+        </xs:all>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eSpeeds">
+    <xs:sequence>
+      <xs:element name="speed" type="rail:tSpeedInfo" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eGeneralInfraAttributes">
+    <xs:sequence>
+      <xs:element name="generalInfraAttribute" type="rail:eGeneralInfraAttribute" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eGeneralInfraAttribute">
+    <xs:sequence>
+      <xs:element name="attributes" type="rail:eAttributes" minOccurs="0" />
+      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eAttributes">
+    <xs:sequence>
+      <xs:element name="attribute" type="rail:tAttribute" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:element name="infrastructureVisualizations">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="visualization" type="rail:eInfrastructureVisualization" minOccurs="0" maxOccurs="unbounded" />
+      </xs:sequence>
+      <xs:attribute ref="xml:base" />
+    </xs:complexType>
+  </xs:element>
+
+  <xs:complexType name="eInfrastructureVisualization">
+    <xs:complexContent>
+      <xs:extension base="rail:tInfrastructureVisualization">
+        <xs:sequence>
+          <xs:element name="lineVis" type="rail:eLineVis" minOccurs="0" maxOccurs="unbounded" />
+          <xs:element name="ocpVis" type="rail:eOcpVis" minOccurs="0" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eLineVis">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <xs:sequence>
+          <xs:element name="trackVis" type="rail:eTrackVis" minOccurs="0" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eTrackVis">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <xs:sequence>
+          <xs:element name="trackElementVis" type="rail:eTrackElementVis" minOccurs="0" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eTrackElementVis">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <xs:sequence>
+          <xs:element name="position" type="rail:tPoint" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eOcpVis">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <xs:sequence>
+          <xs:element name="position" type="rail:tPoint" />
+          <xs:element name="size" type="rail:tSize" minOccurs="0" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 </xs:schema>
diff --git a/schema/infrastructureTypes.xsd b/schema/infrastructureTypes.xsd
index 63f41ed..6bb4fbe 100644
--- a/schema/infrastructureTypes.xsd
+++ b/schema/infrastructureTypes.xsd
@@ -1,1080 +1,1129 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2009"
-	xmlns:xs="https://www.w3.org/2001/XMLSchema"
-	xmlns:xml="https://www.w3.org/XML/1998/namespace"
-    targetNamespace="https://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
-
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2011" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:xml="https://www.w3.org/XML/1998/namespace" targetNamespace="https://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1">
+
+  <xs:annotation>
+    <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
+    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of attribute groups, simple and complex types, used by infrastructure sub schema (IS)</xs:documentation>
+  </xs:annotation>
+
+  <xs:include schemaLocation="railwayUnits.xsd" />
+  <xs:include schemaLocation="railwayBaseTypes.xsd" />
+
+  <xs:import namespace="https://www.w3.org/XML/1998/namespace" schemaLocation="https://www.w3.org/2001/03/xml.xsd" />
+
+  <xs:complexType name="tPlacedElement">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:sequence>
+          <xs:element name="geoCoord" type="rail:tGeoCoord" minOccurs="0" />
+        </xs:sequence>
+        <xs:attributeGroup ref="rail:aRelPosition" />
+        <xs:attributeGroup ref="rail:aAbsPosition" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tOrientedElement">
+    <xs:complexContent>
+      <xs:extension base="rail:tPlacedElement">
+        <xs:attributeGroup ref="rail:aOrientation" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tGeoCoord">
+    <xs:attribute name="coord" type="rail:tCoordinateList" use="required" />
+    <xs:attribute name="extraHeight" type="xs:double" />
+    <xs:attribute name="epsgCode" type="xs:anyURI" />
+    <xs:attribute name="heightEpsgCode" type="xs:anyURI" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aRelPosition">
+    <xs:attribute name="pos" type="rail:tLengthM" use="required" />
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="aOrientation">
+    <xs:attribute name="dir" type="rail:tLaxDirection" />
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="aAbsPosition">
+    <xs:attribute name="absPos" type="rail:tLengthM" />
+    <xs:attribute name="absPosOffset" type="rail:tLengthM" use="optional">
+      <xs:annotation>
+        <xs:documentation>DEPRECATED, not needed, not used</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tOcpArea">
+    <xs:attribute name="name" type="rail:tGenericName" />
+    <xs:attribute name="number" type="rail:tPositiveCounter" />
+    <xs:attribute name="zip" type="rail:tPositiveCounter" use="required" />
+  </xs:complexType>
+
+  <xs:complexType name="tOcpPropOperational">
+    <xs:attribute name="operationalType" type="rail:tOcpOperationalType" />
+    <xs:attribute name="trafficType" type="rail:tOcpTrafficType" />
+    <xs:attribute name="orderChangeable" type="xs:boolean" default="false" />
+    <xs:attribute name="ensuresTrainSequence" type="xs:boolean" default="true" />
+  </xs:complexType>
+
+  <xs:complexType name="tOcpPropEquipmentSummary">
+    <xs:attribute name="signalBox" type="rail:tInterlockingTypes" />
+    <xs:attribute name="powerstation" type="xs:boolean" default="false" />
+    <xs:attribute name="hasHomeSignals" type="xs:boolean" default="false" />
+    <xs:attribute name="hasStarterSignals" type="xs:boolean" default="false" />
+    <xs:attribute name="hasSwitches" type="xs:boolean" default="false" />
+  </xs:complexType>
+
+  <xs:complexType name="tTrackRefInGroup">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementRefInGroup">
+        <!-- Possible trackGroup-specific attributes to be added here later -->
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tOcpPropService">
+    <xs:attribute name="passenger" type="xs:boolean" default="false" />
+    <xs:attribute name="service" type="xs:boolean" default="false" />
+    <xs:attribute name="ship" type="xs:boolean" default="false" />
+    <xs:attribute name="bus" type="xs:boolean" default="false" />
+    <xs:attribute name="tariffpoint" type="xs:boolean" default="false" />
+    <xs:attribute name="goodsLoading" type="xs:boolean" default="false" />
+    <xs:attribute name="goodsSiding" type="xs:boolean" default="false" />
+    <xs:attribute name="goodsIntermodal" type="xs:boolean" default="false" />
+    <xs:attribute name="goodsMarshalling" type="xs:boolean" default="false" />
+  </xs:complexType>
+
+  <xs:complexType name="tOcpTsi">
+    <xs:attribute name="country" type="rail:tTwoDigits" />
+    <xs:attribute name="location" type="rail:tFiveDigits" />
+    <xs:attribute name="check" type="rail:tOneDigit" />
+    <!-- more attributes can be added here later -->
+  </xs:complexType>
+
+  <xs:complexType name="tOcpPropOther">
+    <xs:attribute name="frontier" type="xs:boolean" default="false" />
+    <xs:attribute name="chargeFrontier" type="xs:boolean" default="false" />
+    <xs:attribute name="status" type="rail:tOcpStatus" default="operational" />
+  </xs:complexType>
+
+  <xs:simpleType name="tOcpStatus">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="planned" />
+          <xs:enumeration value="operational" />
+          <xs:enumeration value="disabled" />
+          <xs:enumeration value="closed" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tOcpManMode">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="manned" />
+          <xs:enumeration value="unmanned" />
+          <xs:enumeration value="off" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tOcpUptime">
+    <xs:complexContent>
+      <xs:extension base="rail:tTimeSpan">
+        <xs:attribute name="mode" type="rail:tOcpManMode" use="required" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tOperationControlPoint">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attribute name="number" type="xs:string">
+          <xs:annotation>
+            <xs:documentation>DEPRECATED: use "generic attribute" 'code' or a foreign 'anyAttribute' instead</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="abbrevation" type="xs:string">
+          <xs:annotation>
+            <xs:documentation>DEPRECATED: use "generic attribute" 'code' or a foreign 'anyAttribute' instead</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="timezone" type="rail:tTimeZone">
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tOcpOperationalType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="station" />
+          <xs:enumeration value="depot" />
+          <xs:enumeration value="stoppingPoint" />
+          <xs:enumeration value="crossover" />
+          <xs:enumeration value="junction" />
+          <xs:enumeration value="blockPost" />
+          <xs:enumeration value="blockSignal" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tOcpTrafficType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="passenger" />
+          <xs:enumeration value="freight" />
+          <xs:enumeration value="shunting" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tOcpAdditionalName">
     <xs:annotation>
-        <xs:documentation>
-        Copyright (c) railML.org; All Rights Reserved. 
-
-        This work is licensed under a Creative Commons Attribution 2.0 License. 
-        https://creativecommons.org/licenses/by/2.0/
-
-        For further information see: https://www.railml.org/
-
-        Content of this file: 
-        XML Schema for railML(R) 2.0 
-        Definition of attribute groups, simple and complex types, 
-        used by infrastructure sub schema (IS)
-        </xs:documentation>
+      <xs:documentation>Deprecated for next major release, type "tAdditionalName" is used by "additionalName" in "ocp"</xs:documentation>
     </xs:annotation>
-
-	<xs:include schemaLocation="railwayUnits.xsd" />
-	<xs:include schemaLocation="railwayBaseTypes.xsd" />
-
-    <xs:import namespace="https://www.w3.org/XML/1998/namespace"
-        schemaLocation="https://www.w3.org/2001/03/xml.xsd" />  
-
-	<!--*********************************************************-->
-	<!-- Basic elements for later inheritance -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tPlacedElement">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:sequence>
-					<xs:element name="geoCoord" type="rail:tGeoCoord"
-						minOccurs="0" />
-				</xs:sequence>
-				<xs:attributeGroup ref="rail:aRelPosition" />
-				<xs:attributeGroup ref="rail:aAbsPosition" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:complexType name="tOrientedElement">
-		<xs:complexContent>
-			<xs:extension base="rail:tPlacedElement">
-				<xs:attributeGroup ref="rail:aOrientation" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Positioning -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tGeoCoord">
-		<xs:attribute name="coord" type="rail:tCoordinateList" use="required" />
-		<xs:attribute name="extraHeight" type="xs:double" />
-		<xs:attribute name="epsgCode" type="xs:anyURI" />
-		<xs:attribute name="heightEpsgCode" type="xs:anyURI" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aRelPosition">
-		<xs:attribute name="pos" type="rail:tLengthM" use="required" />
-	</xs:attributeGroup>
-
-	<xs:attributeGroup name="aOrientation">
-		<xs:attribute name="dir" type="rail:tDirValidity" />
-	</xs:attributeGroup>
-
-	<xs:attributeGroup name="aAbsPosition">
-		<xs:attribute name="absPos" type="rail:tLengthM" />
-		<xs:attribute name="absPosOffset" type="rail:tLengthM" use="optional" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Operation and control points -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tOcpArea">
-		<xs:attribute name="name" type="rail:tGenericName" />
-		<xs:attribute name="number" type="xs:integer" />
-		<xs:attribute name="zip" type="xs:integer" use="required" />
-	</xs:complexType>
-
-	<xs:complexType name="tOcpPropOperational">
-		<xs:attribute name="operationalType" type="rail:tOcpOperationalType" />
-		<xs:attribute name="trafficType" type="rail:tOcpTrafficType" />
-		<xs:attribute name="orderChangeable" type="xs:boolean" default="false" />
-		<xs:attribute name="ensuresTrainSequence" type="xs:boolean" default="true" />
-	</xs:complexType>
-
-	<xs:complexType name="tOcpPropEquipmentSummary">
-		<xs:attribute name="signalBox" type="rail:tInterlockingTypes" />
-		<xs:attribute name="powerstation" type="xs:boolean" default="false" />
-		<xs:attribute name="hasHomeSignals" type="xs:boolean" default="false" />
-		<xs:attribute name="hasStarterSignals" type="xs:boolean" default="false" />
-		<xs:attribute name="hasSwitches" type="xs:boolean" default="false" />
-	</xs:complexType>
-
-	<xs:complexType name="tTrackRefInGroup">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementRefInGroup">
-				<!-- Possible trackGroup-specific attributes to be added here later -->
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:complexType name="tOcpPropService">
-		<xs:attribute name="passenger" type="xs:boolean" default="false" />
-		<xs:attribute name="service" type="xs:boolean" default="false" />
-		<xs:attribute name="ship" type="xs:boolean" default="false" />
-		<xs:attribute name="bus" type="xs:boolean" default="false" />
-		<xs:attribute name="tariffpoint" type="xs:boolean" default="false" />
-		<xs:attribute name="goodsLoading" type="xs:boolean" default="false" />
-		<xs:attribute name="goodsSiding" type="xs:boolean" default="false" />
-		<xs:attribute name="goodsIntermodal" type="xs:boolean" default="false" />
-		<xs:attribute name="goodsMarshalling" type="xs:boolean" default="false" />
-	</xs:complexType>
-
-	<xs:complexType name="tOcpPropOther">
-		<xs:attribute name="frontier" type="xs:boolean" default="false" />
-		<xs:attribute name="chargeFrontier" type="xs:boolean" default="false" />
-		<xs:attribute name="status" type="rail:tOcpStatus" default="operational" />
-	</xs:complexType>
-
-	<xs:simpleType name="tOcpStatus">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="planned" />
-			<xs:enumeration value="operational" />
-			<xs:enumeration value="disabled" />
-			<xs:enumeration value="closed" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tOcpManMode">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="manned" />
-			<xs:enumeration value="unmanned" />
-			<xs:enumeration value="off" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:complexType name="tOcpUptime">
-		<xs:complexContent>
-			<xs:extension base="rail:tTimeSpan">
-				<xs:attribute name="mode" type="rail:tOcpManMode"
-					use="required" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:complexType name="tOperationControlPoint">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attribute name="number" type="xs:string" />
-				<xs:attribute name="abbrevation" type="xs:string" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:simpleType name="tOcpOperationalType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="station" />
-			<xs:enumeration value="depot" />
-			<xs:enumeration value="stoppingPoint" />
-			<xs:enumeration value="crossover" />
-			<xs:enumeration value="junction" />
-			<xs:enumeration value="blockPost" />
-			<xs:enumeration value="blockSignal" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tOcpTrafficType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="passenger" />
-			<xs:enumeration value="freight" />
-			<xs:enumeration value="shunting" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:complexType name="tOcpAdditionalName">
-		<xs:attribute name="value" type="xs:string" use="required" />
-		<xs:attribute name="type" type="rail:tOcpNameType" />
-		<xs:attribute ref="xml:lang" />
-	</xs:complexType>
-
-	<xs:simpleType name="tOcpNameType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="operationalName" />
-			<xs:enumeration value="trafficName" />
-			<xs:enumeration value="localName" />
-		</xs:restriction>
-	</xs:simpleType>
-
-
-	<!--*********************************************************-->
-	<!-- Owners -->
-	<!--*********************************************************-->
-
-	<xs:attributeGroup name="aOwner">
-		<xs:attribute name="ownerName" type="xs:string"
-			use="required" />
-		<xs:attribute name="uic-no" type="xs:integer" />
-	</xs:attributeGroup>
-
-	<xs:complexType name="tOwner">
-		<xs:attributeGroup ref="rail:aOwner" />
-	</xs:complexType>
-
-	<xs:complexType name="tOwnerChange">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attributeGroup ref="rail:aOwner" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Operation Mode -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tClearanceManaging">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="sight" />
-			<xs:enumeration value="time" />
-			<xs:enumeration value="blocking" />
-			<xs:enumeration value="LZB-blocking" />
-			<xs:enumeration value="absBrakeDist" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:complexType name="tOperationMode">
-		<xs:attributeGroup ref="rail:aOperationMode" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aOperationMode">
-		<xs:attribute name="modeLegislative" type="xs:string"
-			use="required" />
-		<xs:attribute name="modeExecutive" type="xs:string"
-			use="required" />
-		<xs:attribute name="clearanceManaging"
-			type="rail:tClearanceManaging" />
-	</xs:attributeGroup>
-
-	<xs:complexType name="tOperationModeChange">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attributeGroup ref="rail:aOperationMode" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Train Protection -->
-	<!--*********************************************************-->
-
-	<xs:attributeGroup name="aTrainProtection">
-		<xs:attribute name="monitoring"
-			type="rail:tTrainProtectionMonitoring" default="none" />
-		<xs:attribute name="medium" type="rail:tTrainProtectionMedium" />
-	</xs:attributeGroup>
-
-	<xs:complexType name="tTrainProtection">
-		<xs:attributeGroup ref="rail:aTrainProtection" />
-	</xs:complexType>
-
-	<xs:complexType name="tTrainProtectionChange">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attributeGroup ref="rail:aTrainProtection" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:complexType name="tTrainProtectionElement">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attribute name="medium"
-					type="rail:tTrainProtectionMedium" />
-				<xs:attribute name="system" type="xs:string" />
-				<xs:attribute name="model" type="xs:string" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Electrification -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tElectrification">
-		<xs:attributeGroup ref="rail:aElectrification" />
-	</xs:complexType>
-
-	<xs:simpleType name="tElectrificationType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="none" />
-			<xs:enumeration value="overhead" />
-			<xs:enumeration value="3rdRail" />
-			<xs:enumeration value="sideRail" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:attributeGroup name="aElectrification">
-		<xs:attribute name="type" type="rail:tElectrificationType"
-			default="none" />
-		<xs:attribute name="voltage" type="rail:tElectrificationVoltage"
-			default="15000" />
-		<xs:attribute name="frequency" type="rail:tFrequency"
-			default="16.667" />
-	</xs:attributeGroup>
-
-	<xs:complexType name="tElectrificationChange">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attributeGroup ref="rail:aElectrification" />
-				<xs:attribute name="vMax" type="rail:tSpeedKmPerHour" />
-				<xs:attribute name="isolatedSection" type="xs:boolean"
-					default="false" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-	<!--*********************************************************-->
-	<!-- EPSG-Code -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tEpsgCode">
-		<xs:attributeGroup ref="rail:aEpsgCode" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aEpsgCode">
-		<xs:attribute name="default" type="xs:anyURI" use="required"/>
-		<xs:attribute name="extraHeight" type="xs:anyURI" use="required"/>
-	</xs:attributeGroup>
-
-
-	<!--*********************************************************-->
-	<!-- Gauge -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tGauge">
-		<xs:attributeGroup ref="rail:aGauge" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aGauge">
-		<xs:attribute name="value" type="rail:tLengthMM"
-			default="1435" />
-	</xs:attributeGroup>
-
-	<xs:complexType name="tGaugeChange">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attributeGroup ref="rail:aGauge" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Power Transmission -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tPowerTransmission">
-		<xs:attributeGroup ref="rail:aPowerTransmission" />
-	</xs:complexType>
-
-	<xs:simpleType name="tPowerTransmissionType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="adhesion" />
-			<xs:enumeration value="gearrack" />
-			<xs:enumeration value="cable" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:attributeGroup name="aPowerTransmission">
-		<xs:attribute name="type" type="rail:tPowerTransmissionType"
-			default="adhesion">
-		</xs:attribute>
-		<xs:attribute name="style" type="xs:string" />
-	</xs:attributeGroup>
-
-	<xs:complexType name="tPowerTransmissionChange">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attributeGroup ref="rail:aPowerTransmission" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Axle Weight -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tAxleWeight">
-		<xs:attributeGroup ref="rail:aAxleWeight" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aAxleWeight">
-		<xs:attribute name="value" type="rail:tWeightTons" use="required" />
-		<xs:attribute name="meterload" type="rail:tMeterloadTonsPerMeter" />
-	</xs:attributeGroup>
-
-	<xs:complexType name="tAxleWeightChange">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attributeGroup ref="rail:aAxleWeight" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Mileage Change -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tMileageChangeDescr">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="overlapping" />
-			<xs:enumeration value="missing" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:complexType name="tMileageChange">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attribute name="absPosIn" type="rail:tLengthM" use="required" />
-				<xs:attribute name="absPosInOffset" type="rail:tLengthM" use="optional" />
-				<xs:attribute name="type" type="rail:tMileageChangeDescr" use="required"/>
-				<xs:attribute name="absPos" type="rail:tLengthM" use="required"/>
-				<xs:attribute name="pos" type="rail:tLengthM" use="required" />
-				<xs:attribute name="dir" type="rail:tDirValidity" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Switches and crossings -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tSwitchType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="ordinarySwitch" />
-			<xs:enumeration value="insideCurvedSwitch" />
-			<xs:enumeration value="outsideCurvedSwitch" />
-			<xs:enumeration value="threeWaySwitch" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tCrossingType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="simpleCrossing" />
-			<xs:enumeration value="simpleSwitchCrossing" />
-			<xs:enumeration value="doubleSwitchCrossing" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tNormalPosition">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="straight" />
-			<xs:enumeration value="left" />
-			<xs:enumeration value="right" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:complexType name="tCommonSwitchAndCrossingData">
-		<xs:complexContent>
-			<xs:extension base="rail:tPlacedElement">
-				<xs:attribute name="trackContinueCourse" type="rail:tCourse" />
-				<xs:attribute name="trackContinueRadius"
-					type="rail:tRadiusM" />
-				<xs:attribute name="normalPosition" type="rail:tCourse" />
-				<xs:attribute name="model" type="xs:string" />
-				<xs:attribute name="length" type="rail:tLengthM" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:complexType name="tSwitch">
-		<xs:complexContent>
-			<xs:extension base="rail:tCommonSwitchAndCrossingData">
-				<xs:attribute name="type" type="rail:tSwitchType" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:complexType name="tCrossing">
-		<xs:complexContent>
-			<xs:extension base="rail:tCommonSwitchAndCrossingData">
-				<xs:attribute name="type" type="rail:tCrossingType" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Buffer Stop -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tBufferStop">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName" />
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Open End -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tOpenEnd">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName" />
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Macroscopic Node (aka "Star" or "Hub") -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tMacroscopicNode">
-		<xs:attribute name="ocpRef" type="rail:tGenericRef" use="required" />
-		<xs:attribute name="flowDirection" type="rail:tFlowDirection" default="both"/>
-	</xs:complexType>
-
-
-	<!--*********************************************************-->
-	<!-- Tracks -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tTrackType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="mainTrack" />
-			<xs:enumeration value="secondaryTrack" />
-			<xs:enumeration value="connectingTrack" />
-			<xs:enumeration value="sidingTrack" />
-			<xs:enumeration value="stationTrack" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:complexType name="tTrack">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attribute name="type" type="rail:tTrackType" />
-				<xs:attribute name="mainDir" type="rail:tDirValidity" />
-				<xs:attribute name="infraAttrGroupRef" type="rail:tGenericRef"></xs:attribute>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Lines -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tLineType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="mainLine" />
-			<xs:enumeration value="secondaryLine" />
-			<xs:enumeration value="branchLine" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:complexType name="tLine">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attribute name="type" type="rail:tLineType" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Locally Controlled Areas -->
-	<!--*********************************************************-->
-	<xs:complexType name="tLocallyControlledArea">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attribute name="ocpRef" type="rail:tGenericRef" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-
-	<!--*********************************************************-->
-	<!-- Track Begin, Track End, Connections -->
-	<!--*********************************************************-->
-	
-	<xs:complexType name="tTrackNode">
-		<xs:attribute name="id" type="rail:tGenericID" use="required" />
-		<xs:attributeGroup ref="rail:aRelPosition" />
-		<xs:attributeGroup ref="rail:aAbsPosition" />
-	</xs:complexType>
-
-	<xs:complexType name="tConnectionData">
-		<xs:attribute name="id" type="rail:tGenericID" use="required" />
-		<xs:attribute name="ref" type="rail:tGenericRef" use="required"/>
-	</xs:complexType>
-
-	<xs:complexType name="tSwitchConnectionData">
-		<xs:complexContent>
-			<xs:extension base="rail:tConnectionData">
-				<xs:attributeGroup ref="rail:aConnectionData" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aConnectionData">
-		<xs:attribute name="course" type="rail:tCourse" />
-		<xs:attribute name="radius" type="rail:tRadiusM" />
-		<xs:attribute name="maxSpeed" type="rail:tSpeedKmPerHour" />
-		<xs:attribute name="branchDist" type="rail:tLengthM" />
-		<xs:attribute name="orientation" type="rail:tConnectionOrientation" use="required" />
-		<xs:attribute name="passable" type="xs:boolean" default="true" />
-	</xs:attributeGroup>
-
-	<xs:simpleType name="tConnectionOrientation">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="incoming" />
-			<xs:enumeration value="outgoing" />
-			<xs:enumeration value="rightAngled" />
-			<xs:enumeration value="unknown" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tCourse">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="left" />
-			<xs:enumeration value="right" />
-			<xs:enumeration value="straight" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Cross Section -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tCrossSectionBlockType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="station" />
-			<xs:enumeration value="block" />
-			<xs:enumeration value="autoblock" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:complexType name="tCrossSection">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attribute name="type" type="rail:tCrossSectionBlockType" />
-				<xs:attribute name="ocpRef" type="rail:tGenericRef"
-					use="required" />
-				<xs:attribute name="ocpTrackID" type="xs:unsignedByte" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Borders -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tBorderType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="tarif" />
-			<xs:enumeration value="area" />
-			<xs:enumeration value="state" />
-			<xs:enumeration value="country" />
-			<xs:enumeration value="station" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:complexType name="tBorder">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attribute name="type" type="rail:tBorderType"
-					use="required" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Speeds -->
-	<!--*********************************************************-->
-
-	<xs:attributeGroup name="aSpeed">
-		<xs:attribute name="trainCategory" type="rail:tTrainCategory" />
-		<xs:attribute name="status" type="xs:string" />
-		<xs:attribute name="vMax" type="rail:tSpeedKmPerHour"
-			use="required" />
-	</xs:attributeGroup>
-
-	<xs:complexType name="tSpeedInfo">
-		<xs:attributeGroup ref="rail:aSpeed" />
-	</xs:complexType>
-
-	<xs:complexType name="tSpeedChange">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attributeGroup ref="rail:aSpeed" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Gradients -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tGradientChange">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attribute name="slope" type="rail:tGradientPromille"
-					use="required" />
-				<xs:attribute name="transitionLenght" type="rail:tLengthM" />
-				<xs:attribute name="transitionRadius" type="rail:tRadiusM" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Level crossings -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tLevelCrossing">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attribute name="length" type="rail:tLengthM"
-					default="0.000" />
-				<xs:attribute name="angle" type="rail:tAngleDegQuadrant"
-					default="90" />
-				<xs:attribute name="protection" type="xs:string"
-					default="none" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Tunnels -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tTunnelType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="natural stone" />
-			<xs:enumeration value="quarrystone" />
-			<xs:enumeration value="brick" />
-			<xs:enumeration value="concrete" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:complexType name="tTunnel">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attribute name="length" type="rail:tLengthM" />
-				<xs:attribute name="crossSection" type="rail:tLengthM" />
-				<xs:attribute name="kind" type="rail:tTunnelType" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Radii -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tRadiusChange">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attribute name="radius" type="rail:tRadiusM"
-					use="required" />
-				<xs:attribute name="superelevation" type="rail:tLengthMM" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Bridges -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tBridge">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attribute name="length" type="rail:tLengthM" />
-				<xs:attribute name="kind" type="xs:string" />
-				<xs:attribute name="meterload"
-					type="rail:tMeterloadTonsPerMeter" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Signals -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tSignal">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attributeGroup ref="rail:aSignal" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-    <xs:simpleType name="tSignalType">
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="main" />
-                    <xs:enumeration value="distant" />
-                    <xs:enumeration value="repeater" />
-                    <xs:enumeration value="combined" />
-                    <xs:enumeration value="shunting" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
-
-    <xs:simpleType name="tSignalFunction">
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="exit" />
-                    <xs:enumeration value="home" />
-                    <xs:enumeration value="blocking" />
-                    <xs:enumeration value="intermediate" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
-
-	<xs:attributeGroup name="aSignal">
-		<xs:attribute name="sight" type="rail:tLengthM" />
-		<xs:attribute name="type" type="rail:tSignalType" />
-		<xs:attribute name="function" type="rail:tSignalFunction" />
-		<xs:attribute name="sigSystem" type="xs:string" />
-		<xs:attribute name="switchable" type="xs:boolean" />
-		<xs:attribute name="maskableRoute" type="xs:boolean" />
-		<xs:attribute name="maskableATC" type="xs:boolean" />
-		<xs:attribute name="virtual" type="xs:boolean"
-			default="false" />
-		<xs:attribute name="signalBoxOcpRef" type="rail:tGenericRef" />
-		<xs:attribute name="stationOcpRef" type="rail:tGenericRef" />
-		<xs:attribute name="distNearestDangerPoint" type="rail:tLengthM" />
-		<xs:attribute name="trackDist" type="rail:tLengthM" />
-		<xs:attribute name="height" type="rail:tLengthM" />
-	</xs:attributeGroup>
-
-	<xs:attributeGroup name="aSignalGroup">
-		<xs:attribute name="type" type="rail:tSignalGroupType" />
-	</xs:attributeGroup>
-
-    <xs:simpleType name="tSignalGroupType">
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="distant-main" />
-                    <xs:enumeration value="station" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
-
-	<xs:complexType name="tSignalGroup">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aSignalGroup" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:complexType name="tSignalRefInGroup">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementRefInGroup">
-				<!-- Possible signalGroup-specific attributes to be added here later -->
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-
-	<!--*********************************************************-->
-	<!-- Balises -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tPIG">
-		<xs:restriction base="xs:integer">
-			<xs:minInclusive value="0" />
-			<xs:maxInclusive value="7" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:complexType name="tBalise">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attributeGroup ref="rail:aBalise" />
-				<xs:attribute name="ndx" type="rail:tPIG">
-				</xs:attribute>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:complexType name="tBaliseRefInGroup">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementRefInGroup">
-				<!-- Possible baliseGroup-specific attributes to be added here later -->
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:simpleType name="tBaliseCountryID">
-		<xs:restriction base="xs:integer">
-			<xs:minInclusive value="0" />
-			<xs:maxInclusive value="1023" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tBaliseGroupID">
-		<xs:restriction base="xs:integer">
-			<xs:minInclusive value="0" />
-			<xs:maxInclusive value="16383" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tBaliseLinkingAcc">
-		<xs:restriction base="xs:integer">
-			<xs:minInclusive value="-63" />
-			<xs:maxInclusive value="63" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:attributeGroup name="aBalise">
-		<xs:attribute name="countryID" type="rail:tBaliseCountryID" />
-		<xs:attribute name="groupID" type="rail:tBaliseGroupID" />
-		<xs:attribute name="linkingAccuracy" type="rail:tBaliseLinkingAcc" />
-		<xs:attribute name="linkReactionAscending"
-			type="rail:tBaliseLinkReaction" />
-		<xs:attribute name="linkReactionDescending"
-			type="rail:tBaliseLinkReaction" />
-		<xs:attribute name="staticTelegram" type="xs:string" />
-	</xs:attributeGroup>
-
-	<xs:simpleType name="tBaliseLinkReaction">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="trainTrip" />
-			<xs:enumeration value="applyServiceBrake" />
-			<xs:enumeration value="noReaction" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Train detectors -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tDetectionObject">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="wheel" />
-			<xs:enumeration value="axle" />
-			<xs:enumeration value="train" />
-			<xs:enumeration value="endOfTrain" />
-			<xs:enumeration value="obstacle" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tDetectorMedium">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="mechanical" />
-			<xs:enumeration value="hydraulic" />
-			<xs:enumeration value="pneumatic" />
-			<xs:enumeration value="magnetic" />
-			<xs:enumeration value="inductive" />
-			<xs:enumeration value="optical" />
-			<xs:enumeration value="radio" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tPosInTrack">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="center" />
-			<xs:enumeration value="leftRail" />
-			<xs:enumeration value="leftRailInside" />
-			<xs:enumeration value="leftRailOutside" />
-			<xs:enumeration value="rightRail" />
-			<xs:enumeration value="rightRailInside" />
-			<xs:enumeration value="rightRailOutside" />
-			<xs:enumeration value="outside" />
-			<xs:enumeration value="outsideLeft" />
-			<xs:enumeration value="outsideRight" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:complexType name="tTrainDetector">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attribute name="detectionObject"
-					type="rail:tDetectionObject" />
-				<xs:attribute name="medium" type="rail:tDetectorMedium" />
-				<xs:attribute name="posInTrack" type="rail:tPosInTrack" />
-				<xs:attribute name="directionDetection"
-					type="xs:boolean" />
-				<xs:attribute name="model" type="xs:string" />
-				<xs:attribute name="axleCounting" type="xs:boolean" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Track Circuit Border -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tInsulatedRailSide">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="none" />
-			<xs:enumeration value="left" />
-			<xs:enumeration value="right" />
-			<xs:enumeration value="both" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:complexType name="tTrackCircuitBorder">
-		<xs:complexContent>
-			<xs:extension base="rail:tOrientedElement">
-				<xs:attribute name="insulatedRail"
-					type="rail:tInsulatedRailSide" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Infrastructure itself -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tInfrastructure">
-        <xs:complexContent>
-            <xs:extension base="rail:tGlobalElementWithMetadata">
-                <xs:attributeGroup ref="rail:aInfrastructure" />
-            </xs:extension>
-        </xs:complexContent>
-	</xs:complexType>
-
-    <xs:attributeGroup name="aInfrastructure">
-        <xs:attribute name="timetableRef" type="rail:tGenericRef" />
-        <xs:attribute name="rollingstockRef" type="rail:tGenericRef" />
-    </xs:attributeGroup>
-
-	<xs:complexType name="tInfraAttrGroup">
-		<xs:attribute name="id" type="rail:tGenericID" use="required" />
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Visualization -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tInfrastructureVisualization">
-		<xs:attribute name="version" type="rail:tRailMLVersion"
-			use="required" />
-		<xs:attribute name="infrastructureRef" type="rail:tGenericRef" />
-		<xs:attribute name="id" type="rail:tGenericID"
-			use="required" />
-	</xs:complexType>
-
-	<xs:complexType name="tPoint">
-		<xs:attribute name="x" type="xs:double" use="required" />
-		<xs:attribute name="y" type="xs:double" use="required" />
-	</xs:complexType>
-
-	<xs:complexType name="tSize">
-		<xs:attribute name="width" type="xs:double" use="required" />
-		<xs:attribute name="height" type="xs:double" use="required" />
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- General Attributes -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tAttribute">
-		<xs:attribute name="name" type="xs:string" use="required" />
-		<xs:attribute name="value" type="xs:string" use="required" />
-	</xs:complexType>
+    <xs:attribute name="value" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation>Deprecated for next major release, use attribute "name" in element "additionalName" in "ocp" instead</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="type" type="rail:tOcpNameType">
+      <xs:annotation>
+        <xs:documentation>Deprecated for next major release, use "any" attribute in element "additionalName" in "ocp" instead</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute ref="xml:lang">
+      <xs:annotation>
+        <xs:documentation>Deprecated for next major release, element "additionalName" in "ocp" provides the same attribute</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:simpleType name="tOcpNameType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="operationalName" />
+          <xs:enumeration value="trafficName" />
+          <xs:enumeration value="localName" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tController">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:annotation>
+          <xs:documentation>controller element, e.g. interlocking</xs:documentation>
+        </xs:annotation>
+        <!--<xs:attribute name="type" type="xs:string" use="optional" />-->
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aOcpRef">
+    <xs:attribute name="ocpStationRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>reference on ocp element, e.g. station</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="controllerRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>reference on controller element, e.g. interlocking</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="aOwner">
+    <xs:attribute name="ownerName" type="xs:string" use="required" />
+    <xs:attribute name="uic-no" type="rail:tPositiveCounter" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tOwner">
+    <xs:attributeGroup ref="rail:aOwner" />
+  </xs:complexType>
+
+  <xs:complexType name="tOwnerChange">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attributeGroup ref="rail:aOwner" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tClearanceManaging">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="sight" />
+          <xs:enumeration value="time" />
+          <xs:enumeration value="blocking" />
+          <xs:enumeration value="LZB-blocking" />
+          <xs:enumeration value="absBrakeDist" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tOperationMode">
+    <xs:attributeGroup ref="rail:aOperationMode" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aOperationMode">
+    <xs:attribute name="modeLegislative" type="xs:string" use="required" />
+    <xs:attribute name="modeExecutive" type="xs:string" use="required" />
+    <xs:attribute name="clearanceManaging" type="rail:tClearanceManaging" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tOperationModeChange">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attributeGroup ref="rail:aOperationMode" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTrainProtection">
+    <xs:attribute name="monitoring" type="rail:tTrainProtectionMonitoring" default="none" />
+    <xs:attribute name="medium" type="rail:tTrainProtectionMedium" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTrainProtection">
+    <xs:attributeGroup ref="rail:aTrainProtection" />
+  </xs:complexType>
+
+  <xs:complexType name="tTrainProtectionChange">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attributeGroup ref="rail:aTrainProtection" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tTrainProtectionElement">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attribute name="medium" type="rail:tTrainProtectionMedium" />
+        <xs:attribute name="system" type="xs:string" />
+        <xs:attribute name="model" type="xs:string" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tElectrification">
+    <xs:attributeGroup ref="rail:aElectrification" />
+  </xs:complexType>
+
+  <xs:simpleType name="tElectrificationType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="none" />
+          <xs:enumeration value="overhead" />
+          <xs:enumeration value="3rdRail" />
+          <xs:enumeration value="sideRail" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:attributeGroup name="aElectrification">
+    <xs:attribute name="type" type="rail:tElectrificationType" default="none" />
+    <xs:attribute name="voltage" type="rail:tVoltageVolt" default="15000" />
+    <xs:attribute name="frequency" type="rail:tFrequencyHertz" default="16.667" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tElectrificationChange">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attributeGroup ref="rail:aElectrification" />
+        <xs:attribute name="vMax" type="rail:tSpeedKmPerHour" />
+        <xs:attribute name="isolatedSection" type="xs:boolean" default="false" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tEpsgCode">
+    <xs:attributeGroup ref="rail:aEpsgCode" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aEpsgCode">
+    <xs:attribute name="default" type="xs:anyURI" use="required" />
+    <xs:attribute name="extraHeight" type="xs:anyURI" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tGauge">
+    <xs:attributeGroup ref="rail:aGauge" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aGauge">
+    <xs:attribute name="value" type="rail:tLengthMM" default="1435" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tGaugeChange">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attributeGroup ref="rail:aGauge" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tPowerTransmission">
+    <xs:attributeGroup ref="rail:aPowerTransmission" />
+  </xs:complexType>
+
+  <xs:simpleType name="tPowerTransmissionType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="adhesion" />
+          <xs:enumeration value="gearrack" />
+          <xs:enumeration value="cable" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:attributeGroup name="aPowerTransmission">
+    <xs:attribute name="type" type="rail:tPowerTransmissionType" default="adhesion" />
+    <xs:attribute name="style" type="xs:string" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tPowerTransmissionChange">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attributeGroup ref="rail:aPowerTransmission" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tAxleWeight">
+    <xs:attributeGroup ref="rail:aAxleWeight" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aAxleWeight">
+    <xs:attribute name="value" type="rail:tWeightTons" use="required" />
+    <xs:attribute name="meterload" type="rail:tMeterloadTonsPerMeter" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tAxleWeightChange">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attributeGroup ref="rail:aAxleWeight" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tMileageChangeDescr">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="overlapping" />
+      <xs:enumeration value="missing" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="tMileageChange">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attribute name="absPosIn" type="rail:tLengthM" use="required" />
+        <xs:attribute name="absPosInOffset" type="rail:tLengthM" use="optional">
+          <xs:annotation>
+            <xs:documentation>DEPRECATED: not needed, not used</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="type" type="rail:tMileageChangeDescr" use="required" />
+        <xs:attribute name="absPos" type="rail:tLengthM" use="required" />
+        <xs:attribute name="pos" type="rail:tLengthM" use="required" />
+        <xs:attribute name="dir" type="rail:tDelimitedDirection" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tSwitchType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="ordinarySwitch" />
+          <xs:enumeration value="insideCurvedSwitch" />
+          <xs:enumeration value="outsideCurvedSwitch" />
+          <xs:enumeration value="threeWaySwitch" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tCrossingType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="simpleCrossing" />
+          <xs:enumeration value="simpleSwitchCrossing" />
+          <xs:enumeration value="doubleSwitchCrossing" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tCommonSwitchAndCrossingData">
+    <xs:complexContent>
+      <xs:extension base="rail:tPlacedElement">
+        <xs:attribute name="trackContinueCourse" type="rail:tCourse" />
+        <xs:attribute name="trackContinueRadius" type="rail:tRadiusM" />
+        <xs:attribute name="normalPosition" type="rail:tCourse" />
+        <xs:attribute name="model" type="xs:string" />
+        <xs:attribute name="length" type="rail:tLengthM" />
+        <xs:attributeGroup ref="rail:aOcpRef" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tSwitch">
+    <xs:complexContent>
+      <xs:extension base="rail:tCommonSwitchAndCrossingData">
+        <xs:attribute name="type" type="rail:tSwitchType" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tCrossing">
+    <xs:complexContent>
+      <xs:extension base="rail:tCommonSwitchAndCrossingData">
+        <xs:attribute name="type" type="rail:tCrossingType" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tBufferStop">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName" />
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tOpenEnd">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName" />
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tMacroscopicNode">
+    <xs:annotation>
+      <xs:documentation>also "Star" or "Hub"</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="ocpRef" type="rail:tGenericRef" use="required" />
+    <xs:attribute name="flowDirection" type="rail:tFlowDirection" default="both" />
+  </xs:complexType>
+
+  <xs:simpleType name="tTrackType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="mainTrack" />
+          <xs:enumeration value="secondaryTrack" />
+          <xs:enumeration value="connectingTrack" />
+          <xs:enumeration value="sidingTrack" />
+          <xs:enumeration value="stationTrack" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tTrack">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attribute name="type" type="rail:tTrackType" />
+        <xs:attribute name="mainDir" type="rail:tExtendedDirection" />
+        <xs:attribute name="infraAttrGroupRef" type="rail:tGenericRef" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tLineType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="mainLine" />
+          <xs:enumeration value="secondaryLine" />
+          <xs:enumeration value="branchLine" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tLine">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attribute name="type" type="rail:tLineType" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tLocallyControlledArea">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attribute name="ocpRef" type="rail:tGenericRef">
+          <xs:annotation>
+            <xs:documentation>DEPRECATED: use attribute 'ocpStationRef' or 'controllerRef' instead</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attributeGroup ref="rail:aOcpRef" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tTrackNode">
+    <xs:attribute name="id" type="rail:tGenericID" use="required" />
+    <xs:attributeGroup ref="rail:aRelPosition" />
+    <xs:attributeGroup ref="rail:aAbsPosition" />
+  </xs:complexType>
+
+  <xs:complexType name="tConnectionData">
+    <xs:attribute name="id" type="rail:tGenericID" use="required" />
+    <xs:attribute name="ref" type="rail:tGenericRef" use="required" />
+  </xs:complexType>
+
+  <xs:complexType name="tSwitchConnectionData">
+    <xs:complexContent>
+      <xs:extension base="rail:tConnectionData">
+        <xs:attributeGroup ref="rail:aConnectionData" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aConnectionData">
+    <xs:attribute name="course" type="rail:tCourse" />
+    <xs:attribute name="radius" type="rail:tRadiusM" />
+    <xs:attribute name="maxSpeed" type="rail:tSpeedKmPerHour" />
+    <xs:attribute name="branchDist" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>DEPRECATED: use short 'track' instead</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="orientation" type="rail:tConnectionOrientation" use="required" />
+    <xs:attribute name="passable" type="xs:boolean" default="true" />
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tConnectionOrientation">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="incoming" />
+          <xs:enumeration value="outgoing" />
+          <xs:enumeration value="rightAngled" />
+          <xs:enumeration value="unknown" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tCourse">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="straight" />
+          <xs:enumeration value="left" />
+          <xs:enumeration value="right" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tCrossSectionBlockType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="station" />
+          <xs:enumeration value="block" />
+          <xs:enumeration value="autoblock" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tCrossSection">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attribute name="type" type="rail:tCrossSectionBlockType" />
+        <xs:attribute name="ocpRef" type="rail:tGenericRef" use="required" />
+        <xs:attribute name="ocpTrackID" type="xs:unsignedByte" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tBorderType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="tarif" />
+          <xs:enumeration value="area" />
+          <xs:enumeration value="state" />
+          <xs:enumeration value="country" />
+          <xs:enumeration value="station" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tBorder">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attribute name="type" type="rail:tBorderType" use="required" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aSpeed">
+    <xs:attribute name="trainCategory" type="rail:tTrainCategory" />
+    <xs:attribute name="status" type="xs:string" />
+    <xs:attribute name="vMax" type="rail:tSpeedKmPerHour" use="required" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tSpeedInfo">
+    <xs:attributeGroup ref="rail:aSpeed" />
+  </xs:complexType>
+
+  <xs:complexType name="tSpeedChange">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attributeGroup ref="rail:aSpeed" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tGradientChange">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attribute name="slope" type="rail:tGradientPromille" use="required" />
+        <xs:attribute name="transitionLenght" type="rail:tLengthM" />
+        <xs:attribute name="transitionRadius" type="rail:tRadiusM" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tLevelCrossing">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attribute name="length" type="rail:tLengthM" default="0.000" />
+        <xs:attribute name="angle" type="rail:tAngleDegQuadrant" default="90" />
+        <xs:attribute name="protection" type="xs:string" default="none" />
+        <xs:attributeGroup ref="rail:aOcpRef" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tTunnelType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="natural stone" />
+          <xs:enumeration value="quarrystone" />
+          <xs:enumeration value="brick" />
+          <xs:enumeration value="concrete" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tTunnel">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attribute name="length" type="rail:tLengthM" />
+        <xs:attribute name="crossSection" type="rail:tLengthM" />
+        <xs:attribute name="kind" type="rail:tTunnelType" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tRadiusChange">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attribute name="radius" type="rail:tRadiusM" use="required" />
+        <xs:attribute name="superelevation" type="rail:tLengthMM" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tBridge">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attribute name="length" type="rail:tLengthM" />
+        <xs:attribute name="kind" type="xs:string" />
+        <xs:attribute name="meterload" type="rail:tMeterloadTonsPerMeter" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tTrackCondition">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attribute name="length" type="rail:tLengthM" />
+        <xs:attribute name="type" type="rail:tTrackConditionType" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tTrackConditionType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="nonStoppingArea" />
+          <xs:enumeration value="lowerPantograph" />
+          <xs:enumeration value="mainPowerSwitchOff" />
+          <xs:enumeration value="radioHole" />
+          <xs:enumeration value="airTightness" />
+          <xs:enumeration value="noRegenerativeBrake" />
+          <xs:enumeration value="noEddyCurrentBrake" />
+          <xs:enumeration value="noMagneticShoeBrake" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tSignal">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attributeGroup ref="rail:aSignal" />
+        <xs:attributeGroup ref="rail:aOcpRef" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tSignalType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="main" />
+          <xs:enumeration value="distant" />
+          <xs:enumeration value="repeater" />
+          <xs:enumeration value="combined" />
+          <xs:enumeration value="shunting" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tSignalFunction">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="exit" />
+          <xs:enumeration value="home" />
+          <xs:enumeration value="blocking" />
+          <xs:enumeration value="intermediate" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:attributeGroup name="aSignal">
+    <xs:attribute name="sight" type="rail:tLengthM" />
+    <xs:attribute name="type" type="rail:tSignalType" />
+    <xs:attribute name="function" type="rail:tSignalFunction" />
+    <xs:attribute name="sigSystem" type="xs:string" />
+    <xs:attribute name="switchable" type="xs:boolean" />
+    <xs:attribute name="maskableRoute" type="xs:boolean" />
+    <xs:attribute name="maskableATC" type="xs:boolean" />
+    <xs:attribute name="virtual" type="xs:boolean" default="false" />
+    <xs:attribute name="signalBoxOcpRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>DEPRECATED: use attribute 'controllerRef' instead</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="stationOcpRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>DEPRECATED: use attribute 'ocpStationRef' instead</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="distNearestDangerPoint" type="rail:tLengthM" />
+    <xs:attribute name="trackDist" type="rail:tLengthM" />
+    <xs:attribute name="height" type="rail:tLengthM" />
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="aSignalGroup">
+    <xs:attribute name="type" type="rail:tSignalGroupType" />
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tSignalGroupType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="distant-main" />
+          <xs:enumeration value="station" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tSignalGroup">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aSignalGroup" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tSignalRefInGroup">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementRefInGroup">
+        <!-- Possible signalGroup-specific attributes to be added here later -->
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tPIG">
+    <xs:restriction base="xs:integer">
+      <xs:minInclusive value="0" />
+      <xs:maxInclusive value="7" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="tBalise">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attributeGroup ref="rail:aBalise" />
+        <xs:attribute name="ndx" type="rail:tPIG">
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tBaliseRefInGroup">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementRefInGroup">
+        <!-- Possible baliseGroup-specific attributes to be added here later -->
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tBaliseCountryID">
+    <xs:restriction base="xs:integer">
+      <xs:minInclusive value="0" />
+      <xs:maxInclusive value="1023" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tBaliseGroupID">
+    <xs:restriction base="xs:integer">
+      <xs:minInclusive value="0" />
+      <xs:maxInclusive value="16383" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tBaliseLinkingAcc">
+    <xs:restriction base="xs:integer">
+      <xs:minInclusive value="-63" />
+      <xs:maxInclusive value="63" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:attributeGroup name="aBalise">
+    <xs:attribute name="countryID" type="rail:tBaliseCountryID" />
+    <xs:attribute name="groupID" type="rail:tBaliseGroupID" />
+    <xs:attribute name="linkingAccuracy" type="rail:tBaliseLinkingAcc" />
+    <xs:attribute name="linkReactionAscending" type="rail:tBaliseLinkReaction" />
+    <xs:attribute name="linkReactionDescending" type="rail:tBaliseLinkReaction" />
+    <xs:attribute name="staticTelegram" type="xs:string" />
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tBaliseLinkReaction">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="trainTrip" />
+      <xs:enumeration value="applyServiceBrake" />
+      <xs:enumeration value="noReaction" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tDetectionObject">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="wheel" />
+          <xs:enumeration value="axle" />
+          <xs:enumeration value="train" />
+          <xs:enumeration value="endOfTrain" />
+          <xs:enumeration value="obstacle" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tDetectorMedium">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="mechanical" />
+          <xs:enumeration value="hydraulic" />
+          <xs:enumeration value="pneumatic" />
+          <xs:enumeration value="magnetic" />
+          <xs:enumeration value="inductive" />
+          <xs:enumeration value="optical" />
+          <xs:enumeration value="radio" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tPosInTrack">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="center" />
+      <xs:enumeration value="leftRail" />
+      <xs:enumeration value="leftRailInside" />
+      <xs:enumeration value="leftRailOutside" />
+      <xs:enumeration value="rightRail" />
+      <xs:enumeration value="rightRailInside" />
+      <xs:enumeration value="rightRailOutside" />
+      <xs:enumeration value="outside" />
+      <xs:enumeration value="outsideLeft" />
+      <xs:enumeration value="outsideRight" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="tTrainDetector">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attribute name="detectionObject" type="rail:tDetectionObject" />
+        <xs:attribute name="medium" type="rail:tDetectorMedium" />
+        <xs:attribute name="posInTrack" type="rail:tPosInTrack" />
+        <xs:attribute name="directionDetection" type="xs:boolean" />
+        <xs:attribute name="model" type="xs:string" />
+        <xs:attribute name="axleCounting" type="xs:boolean" />
+        <xs:attributeGroup ref="rail:aOcpRef" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tInsulatedRailSide">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none" />
+      <xs:enumeration value="left" />
+      <xs:enumeration value="right" />
+      <xs:enumeration value="both" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="tTrackCircuitBorder">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attribute name="insulatedRail" type="rail:tInsulatedRailSide" />
+        <xs:attributeGroup ref="rail:aOcpRef" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tInfrastructure">
+    <xs:complexContent>
+      <xs:extension base="rail:tGlobalElementWithMetadata">
+        <xs:attributeGroup ref="rail:aInfrastructure" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aInfrastructure">
+    <xs:attribute name="timetableRef" type="rail:tGenericRef" />
+    <xs:attribute name="rollingstockRef" type="rail:tGenericRef" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tInfrastructureVisualization">
+    <xs:attribute name="version" type="rail:tRailMLVersion" use="required" />
+    <xs:attribute name="infrastructureRef" type="rail:tGenericRef" />
+    <xs:attribute name="id" type="rail:tGenericID" use="required" />
+  </xs:complexType>
+
+  <xs:complexType name="tPoint">
+    <xs:attribute name="x" type="xs:double" use="required" />
+    <xs:attribute name="y" type="xs:double" use="required" />
+  </xs:complexType>
+
+  <xs:complexType name="tSize">
+    <xs:attribute name="width" type="xs:double" use="required" />
+    <xs:attribute name="height" type="xs:double" use="required" />
+  </xs:complexType>
+
+  <xs:complexType name="tAttribute">
+    <xs:attribute name="name" type="xs:string" use="required" />
+    <xs:attribute name="value" type="xs:string" use="required" />
+  </xs:complexType>
 
 </xs:schema>
diff --git a/schema/physicalUnits.xsd b/schema/physicalUnits.xsd
index 7934ae8..4927969 100644
--- a/schema/physicalUnits.xsd
+++ b/schema/physicalUnits.xsd
@@ -1,313 +1,399 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2009"
-	xmlns:xs="https://www.w3.org/2001/XMLSchema"
-	targetNamespace="https://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
-
-    <xs:annotation>
-        <xs:documentation>
-        Copyright (c) railML.org; All Rights Reserved. 
-
-        This work is licensed under a Creative Commons Attribution 2.0 License. 
-        https://creativecommons.org/licenses/by/2.0/
-
-        For further information see: https://www.railml.org/
-
-        Content of this file: 
-        XML Schema for railML(R) 2.0 
-        Definition of simple types, which represent general units of measure, 
-        used by all sub schemas
-        </xs:documentation>
-    </xs:annotation>
-
-    <xs:include schemaLocation="genericRailML.xsd" />
-
-	<!--*********************************************************-->
-	<!--Distances and Lengths-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tLength">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="6" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tLengthMM">
-		<xs:restriction base="rail:tLength" />
-	</xs:simpleType>
-
-	<xs:simpleType name="tLengthM">
-		<xs:restriction base="rail:tLength" />
-	</xs:simpleType>
-
-	<xs:simpleType name="tLengthKM">
-		<xs:restriction base="rail:tLength" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!--Speeds and velocities-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tSpeed">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="1" />
-			<xs:minInclusive value="0" />
-			<xs:totalDigits value="5" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tSpeedKmPerHour">
-		<xs:restriction base="rail:tSpeed" />
-	</xs:simpleType>
-
-	<xs:simpleType name="tSpeedMPerSec">
-		<xs:restriction base="rail:tSpeed" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!--Acceleration-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tAcceleration">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="3" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tAccelerationMeterPerSquareSec">
-		<xs:restriction base="rail:tAcceleration" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!--Volume-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tVolume">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="3" />
-			<xs:minInclusive value="0" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tVolumeCubicMeter">
-		<xs:restriction base="rail:tVolume" />
-	</xs:simpleType>
-
-	<xs:simpleType name="tVolumeLitre">
-		<xs:restriction base="rail:tVolume" />
-	</xs:simpleType>
-	
-	<!--*********************************************************-->
-	<!--Voltage-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tVoltage">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="1" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tVoltageVolt">
-		<xs:restriction base="rail:tVoltage" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!--Resistance-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tResistance">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="4" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tResistanceOhm">
-		<xs:restriction base="rail:tResistance" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!--Inductance-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tInductance">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="6" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tInductanceHenry">
-		<xs:restriction base="rail:tInductance" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!--Magnetic Flux-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tFlux">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="6" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tFluxVoltSecond">
-		<xs:restriction base="rail:tFlux" />
-	</xs:simpleType>
-	
-	<!--*********************************************************-->
-	<!--Force-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tForce">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="0" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tForceNewton">
-		<xs:restriction base="rail:tForce" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!--Power-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tPower">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="0" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tPowerWatt">
-		<xs:restriction base="rail:tPower" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!--Current-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tCurrent">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="1" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tCurrentAmpere">
-		<xs:restriction base="rail:tCurrent" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!--Frequency-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tFrequency">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="3" />
-			<xs:minInclusive value="0" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tFrequencyHertz">
-		<xs:restriction base="rail:tFrequency" />
-	</xs:simpleType>
-
-    <xs:simpleType name="tRotationalFrequency">
-        <xs:restriction base="xs:positiveInteger" />
-    </xs:simpleType>
-
-    <xs:simpleType name="tRotationalFrequencyRevolutionsPerMinute">
-        <xs:restriction base="rail:tRotationalFrequency" />
-    </xs:simpleType>
-
-	<!--*********************************************************-->
-	<!--Weight-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tWeight">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="3" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tWeightKG">
-		<xs:restriction base="rail:tWeight" />
-	</xs:simpleType>
-
-	<xs:simpleType name="tWeightTons">
-		<xs:restriction base="rail:tWeight" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!--Angles-->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tAngleDeg">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="3" />
-			<xs:totalDigits value="6" />
-			<xs:minInclusive value="-360" />
-			<xs:maxInclusive value="360" />
-		</xs:restriction>
-	</xs:simpleType>
-
-    <xs:simpleType name="tAngleDegFullCircle">
-        <xs:restriction base="rail:tAngleDeg">
-            <xs:minInclusive value="-180" />
-            <xs:maxInclusive value="180" />
-        </xs:restriction>
-    </xs:simpleType>
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2011" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="https://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1">
+
+  <xs:annotation>
+    <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
+    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: https://www.railml.org</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of simple types, which represent general units of measure, used by all sub schemas</xs:documentation>
+  </xs:annotation>
+
+  <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" />
+      <xs:totalDigits value="5" />
+    </xs:restriction>
+  </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" />
+    </xs:restriction>
+  </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" />
+    </xs:restriction>
+  </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" />
+    </xs:restriction>
+  </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="tAngleDegQuadrant">
-        <xs:restriction base="rail:tAngleDeg">
-            <xs:minExclusive value="0" />
-            <xs:maxInclusive value="90" />
+  <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" />
+    </xs:restriction>
+  </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" />
+      <xs:minInclusive value="-360" />
+      <xs:maxInclusive value="360" />
+    </xs:restriction>
+  </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" />
+    </xs:restriction>
+  </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="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>
+
+  <xs:simpleType name="tUnitName">
+    <xs:annotation>
+      <xs:documentation>enumeration of physical units</xs:documentation>
+    </xs:annotation>
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="m/s" />
+          <xs:enumeration value="km/h" />
+          <xs:enumeration value="A" />
+          <xs:enumeration value="N" />
+          <xs:enumeration value="Hz" />
+          <xs:enumeration value="%" />
+          <xs:enumeration value="V" />
+          <xs:enumeration value="W" />
+          <xs:enumeration value="VA" />
+          <xs:enumeration value="Vs" />
+          <xs:enumeration value="1" />
         </xs:restriction>
-    </xs:simpleType>
-
-    <!--*********************************************************-->
-    <!--Angles, gradients, radii-->
-    <!--*********************************************************-->
-
-	<xs:simpleType name="tGradientPromille">
-		<xs:restriction base="xs:decimal">
-			<xs:fractionDigits value="3" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tRadiusM">
-		<xs:restriction base="rail:tLengthM" />
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!--Names of physical units-->
-	<!--*********************************************************-->
-
-    <xs:simpleType name="tUnitName">
-        <xs:annotation>
-            <xs:documentation>
-                enumeration of physical units
-			</xs:documentation>
-        </xs:annotation>
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="m/s" />
-                    <xs:enumeration value="km/h" />
-                    <xs:enumeration value="A" />
-                    <xs:enumeration value="N" />
-                    <xs:enumeration value="Hz" />
-                    <xs:enumeration value="%" />
-                    <xs:enumeration value="V" />
-                    <xs:enumeration value="W" />
-                    <xs:enumeration value="VA" />
-                    <xs:enumeration value="Vs" />
-                    <xs:enumeration value="1" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
 
 </xs:schema>
diff --git a/schema/railML.xsd b/schema/railML.xsd
index 42e3a45..08c218c 100644
--- a/schema/railML.xsd
+++ b/schema/railML.xsd
@@ -1,67 +1,109 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2009"
-	xmlns:xs="https://www.w3.org/2001/XMLSchema"
-	xmlns:dc="https://purl.org/dc/elements/1.1/"
-    targetNamespace="https://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2011" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:dc="https://purl.org/dc/elements/1.1/" targetNamespace="https://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1">
 
-    <xs:annotation>
-        <xs:documentation>
-        Copyright (c) railML.org; All Rights Reserved. 
-
-        This work is licensed under a Creative Commons Attribution 2.0 License. 
-        https://creativecommons.org/licenses/by/2.0/
+  <xs:annotation>
+    <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
+    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of root element "railml", refers to elements of all sub schemas from "xs:include" paths</xs:documentation>
+  </xs:annotation>
 
-        For further information see: https://www.railml.org/
+  <xs:include schemaLocation="infrastructure.xsd" />
+  <xs:include schemaLocation="rollingstock.xsd" />
+  <xs:include schemaLocation="timetable.xsd" />
 
-        Content of this file: 
-        XML Schema for railML(R) 2.0 
-        Definition of root element "railml", refers to elements of all 
-        sub schemas from "xs:include" paths
-        </xs:documentation>
+  <xs:import namespace="https://purl.org/dc/elements/1.1/" schemaLocation="https://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd">
+    <xs:annotation>
+      <xs:documentation>Portions of this software may use XML schemas Copyright (c) 2009 DCMI, the Dublin Core Metadata Initiative. These are licensed under the Creative Commons 3.0 Attribution license.</xs:documentation>
+      <xs:documentation>For further information see: https://dublincore.org/ License link: https://creativecommons.org/licenses/by/3.0/</xs:documentation>
     </xs:annotation>
+  </xs:import>
 
-	<xs:include schemaLocation="infrastructure.xsd" />
-	<xs:include schemaLocation="rollingstock.xsd" />
-	<xs:include schemaLocation="timetable.xsd" />
-
-    <xs:import namespace="https://purl.org/dc/elements/1.1/"
-        schemaLocation="https://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd">
+  <xs:element name="railml">
+    <xs:complexType>
+      <xs:sequence>
+        <xs:element name="metadata" type="dc:elementContainer" minOccurs="0">
+          <xs:annotation>
+            <xs:documentation>flexible collection of Dublin Core metadata based on xs:any according to https://dublincore.org/</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="rail:infrastructure" minOccurs="0">
+          <xs:annotation>
+            <xs:documentation>"subschema Infrastructure (IS)" can be outsourced in extra file and imported with xi:include mechanism</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="rail:infrastructureVisualizations" minOccurs="0">
+          <xs:annotation>
+            <xs:documentation>DEPRECATED: moving as 'visualizations' inside 'infrastructure'</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="rail:rollingstock" minOccurs="0">
+          <xs:annotation>
+            <xs:documentation>"subschema Rollingstock (RS)" can be outsourced in extra file and imported with xi:include mechanism</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element ref="rail:timetable" minOccurs="0">
+          <xs:annotation>
+            <xs:documentation>"subschema Timetable (TT)" can be outsourced in extra file and imported with xi:include mechanism</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+      </xs:sequence>
+      <xs:attribute name="version" type="rail:tRailMLVersion">
         <xs:annotation>
-            <xs:documentation>
-            Portions of this software may use XML schemas 
-            Copyright (c) 2009 DCMI, the Dublin Core Metadata Initiative.
-            These are licensed under the Creative Commons 3.0 Attribution license.
-            
-            For further information see:  https://dublincore.org/
-            License link: https://creativecommons.org/licenses/by/3.0/
-            </xs:documentation>
+          <xs:documentation>supported railML version should be declared for software compatibility reasons, valid for all subschemas, don't mix railML versions between subschemas in one XML file</xs:documentation>
         </xs:annotation>
-    </xs:import>
+      </xs:attribute>
+    </xs:complexType>
+
+    <xs:key name="vehicleKey">
+      <xs:selector xpath=".//rail:vehicles/rail:vehicle" />
+      <xs:field xpath="@id" />
+    </xs:key>
+
+    <!-- vehicle reference in rollingstock subschema -->
+    <xs:keyref name="vehicle-vehicleFamilyRefKey" refer="rail:vehicleKey">
+      <xs:selector xpath=".//rail:vehicles/rail:vehicle" />
+      <xs:field xpath="@vehicleFamilyRef" />
+    </xs:keyref>
+    <xs:keyref name="vehicle-vehicleRefKey" refer="rail:vehicleKey">
+      <xs:selector xpath=".//rail:formations/rail:formation/rail:trainOrder/rail:vehicleRef" />
+      <xs:field xpath="@vehicleRef" />
+    </xs:keyref>
+
+    <!-- vehicle reference in timetable subschema -->
+    <xs:keyref name="vehicle-formationTTKeyref" refer="rail:vehicleKey">
+      <xs:selector xpath=".//rail:reservationInfo/rail:booking" />
+      <xs:field xpath="@vehicleRef" />
+    </xs:keyref>
+    <xs:keyref name="vehicle-rosteringKeyref" refer="rail:vehicleKey">
+      <xs:selector xpath=".//rail:rosterings/rail:rostering" />
+      <xs:field xpath="@vehicleRef" />
+    </xs:keyref>
+    <xs:keyref name="vehicle-blockPartKeyref" refer="rail:vehicleKey">
+      <xs:selector xpath=".//rail:blockParts/rail:blockPart" />
+      <xs:field xpath="@vehicleRef" />
+    </xs:keyref>
+
+    <xs:key name="formationKey">
+      <xs:selector xpath=".//rail:formations/rail:formation" />
+      <xs:field xpath="@id" />
+    </xs:key>
 
-	<!---->
-	<!-- railml                                                                  -->
-    <!--   +- metadata                                                           -->
-	<!--   +- infrastructure                                                     -->
-	<!--   +- infrastructureVisualizations                                       -->
-	<!--   +- rollingstock                                                       -->
-	<!--   +- timetable                                                          -->
-	<!---->
+    <!-- formation reference in timetable subschema -->
+    <xs:keyref name="formation-formationTTKeyref" refer="rail:formationKey">
+      <xs:selector xpath=".//rail:trainParts/rail:trainPart/rail:formationTT" />
+      <xs:field xpath="@formationRef" />
+    </xs:keyref>
+    <xs:keyref name="formation-rosteringKeyref" refer="rail:formationKey">
+      <xs:selector xpath=".//rail:rosterings/rail:rostering" />
+      <xs:field xpath="@formationRef" />
+    </xs:keyref>
+    <xs:keyref name="formation-blockPartKeyref" refer="rail:formationKey">
+      <xs:selector xpath=".//rail:blockParts/rail:blockPart" />
+      <xs:field xpath="@formationRef" />
+    </xs:keyref>
 
-	<xs:element name="railml">
-		<xs:complexType>
-			<xs:sequence>
-				<xs:element name="metadata" type="dc:elementContainer"
-                    minOccurs="0" />
-                <xs:element ref="rail:infrastructure" minOccurs="0" />
-                <xs:element ref="rail:infrastructureVisualizations"
-                    minOccurs="0" />
-				<xs:element ref="rail:rollingstock" minOccurs="0" />
-				<xs:element ref="rail:timetable" minOccurs="0" />
-			</xs:sequence>
-			<xs:attribute name="version" type="rail:tRailMLVersion" />
-		</xs:complexType>
-	</xs:element>
+  </xs:element>
 
 </xs:schema>
diff --git a/schema/railwayBaseTypes.xsd b/schema/railwayBaseTypes.xsd
index 066145e..fa094b8 100644
--- a/schema/railwayBaseTypes.xsd
+++ b/schema/railwayBaseTypes.xsd
@@ -1,304 +1,428 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2009"
-	xmlns:xs="https://www.w3.org/2001/XMLSchema"
-	targetNamespace="https://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2011" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="https://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1">
 
-    <xs:annotation>
-        <xs:documentation>
-        Copyright (c) railML.org; All Rights Reserved. 
-
-        This work is licensed under a Creative Commons Attribution 2.0 License. 
-        https://creativecommons.org/licenses/by/2.0/
+  <xs:annotation>
+    <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
+    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of attribute groups, simple and complex types, used by more than one sub schema</xs:documentation>
+  </xs:annotation>
 
-        For further information see: https://www.railml.org/
+  <xs:include schemaLocation="genericRailML.xsd" />
+  <xs:include schemaLocation="railwayUnits.xsd" />
 
-        Content of this file: 
-        XML Schema for railML(R) 2.0 
-        Definition of attribute groups, simple and complex types, 
-        used by more than one sub schema
-        </xs:documentation>
+  <xs:complexType name="tTimeSpan">
+    <xs:annotation>
+      <xs:documentation>generic type for time spans/periods in required context</xs:documentation>
     </xs:annotation>
+    <xs:attribute name="from" type="xs:time" use="required" />
+    <xs:attribute name="until" type="xs:time" use="required" />
+  </xs:complexType>
 
-	<xs:include schemaLocation="genericRailML.xsd" />
-	<xs:include schemaLocation="railwayUnits.xsd" />
-
-    <!--*********************************************************-->
-    <!--Time and time spans-->
-    <!--*********************************************************-->
-
-    <xs:complexType name="tTimeSpan">
-        <xs:attribute name="from" type="xs:time" use="required" />
-        <xs:attribute name="until" type="xs:time" use="required" />
-    </xs:complexType>	
-	
-    <xs:attributeGroup name="aPeriodTimeSpan">
-        <xs:attribute name="startTime" type="xs:time" />
-        <xs:attribute name="endTime" type="xs:time" />
-    </xs:attributeGroup>
+  <xs:attributeGroup name="aPeriodTimeSpan">
+    <xs:annotation>
+      <xs:documentation>generic type for time spans/periods in optional context</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="startTime" type="xs:time" />
+    <xs:attribute name="endTime" type="xs:time" />
+  </xs:attributeGroup>
 
-    <xs:attributeGroup name="aTimePeriod">
-        <xs:attribute name="startDate" type="xs:date" />
-        <xs:attribute name="endDate" type="xs:date" />
-    </xs:attributeGroup>
+  <xs:attributeGroup name="aTimePeriod">
+    <xs:annotation>
+      <xs:documentation>generic type for time spans/periods regarding its dates</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="startDate" type="xs:date" />
+    <xs:attribute name="endDate" type="xs:date" />
+  </xs:attributeGroup>
 
-	<!--*********************************************************-->
-	<!-- Attributes for braking systems -->
-	<!--*********************************************************-->
+  <xs:simpleType name="tTimeZone">
+    <xs:annotation>
+      <xs:documentation>timezone as defined in the tz database, e.g. "America/New_York"</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string" />
+  </xs:simpleType>
 
-	<xs:complexType name="tBasicBrakeType">
-		<xs:annotation>
-			<xs:documentation>
-				settings and characteristic of a particular brake
-				type or brake application position
-			</xs:documentation>
-		</xs:annotation>
-		<xs:sequence>
-			<xs:element name="auxiliaryBrakes" minOccurs="0">
-				<xs:annotation>
-					<xs:documentation>provides access to the list of possible 
-					auxiliary brake systems</xs:documentation>
-				</xs:annotation>
-				<xs:complexType>
-					<xs:attributeGroup ref="rail:aAuxiliaryBrakes" />
-				</xs:complexType>
-			</xs:element>
-		</xs:sequence>
-		<xs:attributeGroup ref="rail:aBasicBrakeAttributes" />
-	</xs:complexType>
+  <xs:complexType name="tBasicBrakeType">
+    <xs:annotation>
+      <xs:documentation>settings and characteristic of a particular brake type or brake application position</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="auxiliaryBrakes" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>provides access to the list of possible auxiliary brake systems</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:attributeGroup ref="rail:aAuxiliaryBrakes" />
+        </xs:complexType>
+      </xs:element>
+    </xs:sequence>
+    <xs:attributeGroup ref="rail:aBasicBrakeAttributes" />
+  </xs:complexType>
 
-	<xs:attributeGroup name="aBasicBrakeAttributes">
-		<xs:attribute name="brakeType" type="rail:tBrakeType" use="required">
-			<xs:annotation>
-				<xs:documentation>vacuum or compressed air brake, hand brake,
-					parking brake, cable brake</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="airBrakeApplicationPosition" type="rail:tAirBrakeApplicationPosition"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>base brake switch, one of G, P or R
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="regularBrakeMass" type="rail:tWeightTons">
-			<xs:annotation>
-				<xs:documentation>brake mass for normal brake operations of
-					none-automatic brakes</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="emergencyBrakeMass" type="rail:tWeightTons">
-			<xs:annotation>
-				<xs:documentation>brake mass for emergency brake operations,
-					differs from regular brake mass depending on auxiliary brakes
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="maxDeceleration" type="rail:tAccelerationMeterPerSquareSec">
-			<xs:annotation>
-				<xs:documentation>alternative specification of maximum
-					possible momentary deceleration</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="meanDeceleration" type="rail:tAccelerationMeterPerSquareSec">
-			<xs:annotation>
-				<xs:documentation>alternative specification of effective mean 
-				deceleration of a whole brake operation
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>	
-	
-	<!--*********************************************************-->
-	<!-- Types of braking systems -->
-	<!--*********************************************************-->
+  <xs:attributeGroup name="aBasicBrakeAttributes">
+    <xs:attribute name="brakeType" type="rail:tBrakeType" use="required">
+      <xs:annotation>
+        <xs:documentation>vacuum or compressed air brake, hand brake, parking brake, cable brake</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="airBrakeApplicationPosition" type="rail:tAirBrakeApplicationPosition">
+      <xs:annotation>
+        <xs:documentation>base brake switch, one of G, P or R</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="regularBrakeMass" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>brake mass for normal brake operations of none-automatic brakes</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="emergencyBrakeMass" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>brake mass for emergency brake operations, differs from regular brake mass depending on auxiliary brakes</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maxDeceleration" type="rail:tAccelerationMeterPerSquareSec">
+      <xs:annotation>
+        <xs:documentation>alternative specification of maximum possible momentary deceleration</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="meanDeceleration" type="rail:tAccelerationMeterPerSquareSec">
+      <xs:annotation>
+        <xs:documentation>alternative specification of effective mean deceleration of a whole brake operation</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
 
-    <xs:simpleType name="tBrakeType">
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="none" />
-                    <xs:enumeration value="compressedAir" />
-                    <xs:enumeration value="vacuum" />
-                    <xs:enumeration value="handBrake" />
-                    <xs:enumeration value="parkingBrake" />
-                    <xs:enumeration value="cableBrake" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
+  <xs:simpleType name="tBrakeType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="none" />
+          <xs:enumeration value="compressedAir">
+            <xs:annotation>
+              <xs:documentation>de: Druckluftbremse</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="vacuum">
+            <xs:annotation>
+              <xs:documentation>de: Saugluftbremse</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="handBrake" />
+          <xs:enumeration value="parkingBrake" />
+          <xs:enumeration value="cableBrake">
+            <xs:annotation>
+              <xs:documentation>de: Seilzugbremse</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
 
-	<!--*********************************************************-->
-	<!-- Positions for air brake application -->
-	<!-- G=goods, P=passenger, R=rapid -->
-	<!--*********************************************************-->
+  <xs:simpleType name="tAirBrakeApplicationPosition">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="N/A" />
+      <xs:enumeration value="G">
+        <xs:annotation>
+          <xs:documentation>Goods</xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="P">
+        <xs:annotation>
+          <xs:documentation>Passenger</xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="R">
+        <xs:annotation>
+          <xs:documentation>Rapid</xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+    </xs:restriction>
+  </xs:simpleType>
 
-	<xs:simpleType name="tAirBrakeApplicationPosition">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="N/A" />
-			<xs:enumeration value="G" />
-			<xs:enumeration value="P" />
-			<xs:enumeration value="R" />
-		</xs:restriction>
-	</xs:simpleType>
+  <xs:simpleType name="tBrakePercentage">
+    <xs:annotation>
+      <xs:documentation>Brake percentage as value of braking performance in relation to vehicle weight</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:integer">
+      <xs:maxInclusive value="225" />
+      <xs:minInclusive value="6" />
+    </xs:restriction>
+  </xs:simpleType>
 
-	<!--*********************************************************-->
-	<!-- Brake percentage as value of braking performance in relation to vehicle weight -->
-	<!--*********************************************************-->
-	
-	<xs:simpleType name="tBrakePercentage">
-		<xs:restriction base="xs:integer">
-			<xs:maxInclusive value="225"/>
-			<xs:minInclusive value="6"/>
-		</xs:restriction>
-	</xs:simpleType>
-	
-	<!--*********************************************************-->
-	<!-- Auxiliary brake systems -->
-	<!--*********************************************************-->
+  <xs:attributeGroup name="aAuxiliaryBrakes">
+    <xs:annotation>
+      <xs:documentation>de: Zusatz-/Hilfsbremsen</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="brakeUse" type="rail:tBrakeUse" />
+    <xs:attribute name="H" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>de: hydrodynamisch</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="E" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>de: elektro-motorisch</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="Mg" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>de: Magnetschienenbremse</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="Wb" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>de: Wirbelstrombremse</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="ep" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>de: elektro-pneumatisch</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
 
-	<xs:attributeGroup name="aAuxiliaryBrakes">
-		<xs:attribute name="H" type="xs:boolean" />
-		<xs:attribute name="E" type="xs:boolean" />
-		<xs:attribute name="Mg" type="xs:boolean" />
-		<xs:attribute name="Wb" type="xs:boolean" />
-		<xs:attribute name="ep" type="xs:boolean" />
-	</xs:attributeGroup>
-	
-	<!--*********************************************************-->
-	<!-- Train Protection -->
-	<!--*********************************************************-->
+  <xs:simpleType name="tBrakeUse">
+    <xs:annotation>
+      <xs:documentation>planned/calculated usage of specified brakes</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="unknown" />
+      <xs:enumeration value="normal" />
+      <xs:enumeration value="emergency" />
+      <xs:enumeration value="both" />
+    </xs:restriction>
+  </xs:simpleType>
 
-	<xs:simpleType name="tTrainProtectionMedium">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="none" />
-			<xs:enumeration value="mechanical" />
-			<xs:enumeration value="inductive" />
-			<xs:enumeration value="magnetic" />
-			<xs:enumeration value="optical" />
-			<xs:enumeration value="radio" />
-			<xs:enumeration value="rail" />
-			<xs:enumeration value="cable" />
-		</xs:restriction>
-	</xs:simpleType>
+  <xs:simpleType name="tTrainProtectionMedium">
+    <xs:annotation>
+      <xs:documentation>classification of a train protection system by physical medium</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none" />
+      <xs:enumeration value="mechanical" />
+      <xs:enumeration value="electric" />
+      <xs:enumeration value="inductive" />
+      <xs:enumeration value="magnetic" />
+      <xs:enumeration value="optical" />
+      <xs:enumeration value="radio" />
+      <xs:enumeration value="rail" />
+      <xs:enumeration value="cable" />
+    </xs:restriction>
+  </xs:simpleType>
 
-	<xs:simpleType name="tTrainProtectionMonitoring">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="none" />
-			<xs:enumeration value="intermittent" />
-			<xs:enumeration value="continuous" />
-		</xs:restriction>
-	</xs:simpleType>
+  <xs:simpleType name="tTrainProtectionMonitoring">
+    <xs:annotation>
+      <xs:documentation>classification of a train protection system by coverage</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none" />
+      <xs:enumeration value="intermittent" />
+      <xs:enumeration value="continuous" />
+    </xs:restriction>
+  </xs:simpleType>
 
-    <!--*********************************************************-->
-    <!-- Places in passenger cars -->
-    <!--*********************************************************-->
+  <xs:simpleType name="tInterlockingTypes">
+    <xs:annotation>
+      <xs:documentation>classification of an interlocking system by kind of implementation</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none" />
+      <xs:enumeration value="mechanical" />
+      <xs:enumeration value="electro-mechanical" />
+      <xs:enumeration value="electrical">
+        <xs:annotation>
+          <xs:documentation>de: Gleisbildstellwerk, Spurplanstellwerk ...</xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="electronical">
+        <xs:annotation>
+          <xs:documentation>de: ESTW</xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+    </xs:restriction>
+  </xs:simpleType>
 
-    <xs:complexType name="tPlaces">
+  <xs:complexType name="ePassengerFacility">
+    <xs:sequence>
+      <xs:element name="places" type="rail:tPlaces" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>list of place capacity of the vehicle divided by particular categories</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="service" type="rail:tService" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-            <xs:documentation>
-                description of any places of the passenger car(part)
-            </xs:documentation>
+          <xs:documentation>description of any additional service provided per vehicle</xs:documentation>
         </xs:annotation>
-        <xs:attributeGroup ref="rail:aPlaces" />
-    </xs:complexType>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
 
-    <xs:attributeGroup name="aPlaces">
-        <xs:attribute name="category" type="rail:tPlaceCategory" use="required" />
-        <xs:attribute name="count" type="rail:tCounter" use="required" />
-        <xs:attribute name="description" type="rail:tElementDescription" />
-    </xs:attributeGroup>
+  <xs:complexType name="tPlaces">
+    <xs:annotation>
+      <xs:documentation>description of any places of the passenger car(part)</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aPlaces" />
+  </xs:complexType>
 
-    <xs:simpleType name="tPlaceCategory">
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="class1" />
-                    <xs:enumeration value="class2" />
-                    <xs:enumeration value="class3" />
-                    <xs:enumeration value="standing" />
-                    <xs:enumeration value="wheelchair" />
-                    <xs:enumeration value="bicycle" />
-                    <xs:enumeration value="couchette" />
-                    <xs:enumeration value="bed" />
-                    <xs:enumeration value="chair" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
-    
-    <!--*********************************************************-->
-    <!-- Service in passenger cars -->
-    <!--*********************************************************-->
+  <xs:attributeGroup name="aPlaces">
+    <xs:attribute name="category" type="rail:tPlaceCategory" use="required" />
+    <xs:attribute name="count" type="rail:tCounter" use="required">
+      <xs:annotation>
+        <xs:documentation>count="0" means: there is no place of this category</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="description" type="rail:tElementDescription" />
+  </xs:attributeGroup>
 
-    <xs:complexType name="tService">
-        <xs:annotation>
-            <xs:documentation>
-                description of any service provided by the passenger car(part)
-            </xs:documentation>
-        </xs:annotation>
-        <xs:attributeGroup ref="rail:aService" />
-    </xs:complexType>
+  <xs:simpleType name="tPlaceCategory">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="class1" />
+          <xs:enumeration value="class2" />
+          <xs:enumeration value="class3" />
+          <xs:enumeration value="standing" />
+          <xs:enumeration value="wheelchair" />
+          <xs:enumeration value="bicycle" />
+          <xs:enumeration value="couchette" />
+          <xs:enumeration value="bed" />
+          <xs:enumeration value="chair" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tService">
+    <xs:annotation>
+      <xs:documentation>description of any service provided by the passenger car(part)</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aService" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aService">
+    <xs:attribute name="name" type="rail:tGenericName" use="required" />
+    <xs:attribute name="count" type="rail:tCounter" use="required">
+      <xs:annotation>
+        <xs:documentation>count="0" means: there is not such a service</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="description" type="rail:tElementDescription" />
+    <xs:attribute name="value" type="xs:decimal">
+      <xs:annotation>
+        <xs:documentation>generic decimal value for additional information of the service, meaning should be clarified by its "description"</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:attributeGroup>
 
-    <xs:attributeGroup name="aService">
-        <xs:attribute name="name" type="rail:tGenericName" use="required" />
-        <xs:attribute name="count" type="rail:tCounter" use="required" />
-        <xs:attribute name="description" type="rail:tElementDescription" />
-        <xs:attribute name="value" type="xs:decimal" />
-        <xs:attributeGroup ref="rail:anyAttribute" />
-    </xs:attributeGroup>
+  <xs:simpleType name="tNationalSystemsType">
+    <xs:annotation>
+      <xs:documentation>list of common european train control/protection systems</xs:documentation>
+    </xs:annotation>
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="ALSEN" />
+          <xs:enumeration value="ALSN" />
+          <xs:enumeration value="ASFA" />
+          <xs:enumeration value="ATB" />
+          <xs:enumeration value="ATBEG" />
+          <xs:enumeration value="ATBEN" />
+          <xs:enumeration value="ATC" />
+          <xs:enumeration value="ATSP" />
+          <xs:enumeration value="ATSS" />
+          <xs:enumeration value="AWS" />
+          <xs:enumeration value="BACC" />
+          <xs:enumeration value="CIR-ELKE" />
+          <xs:enumeration value="CIR-ELKE2" />
+          <xs:enumeration value="Crocodile" />
+          <xs:enumeration value="CSS" />
+          <xs:enumeration value="DATC" />
+          <xs:enumeration value="EBICAB" />
+          <xs:enumeration value="EVM120" />
+          <xs:enumeration value="EVM160" />
+          <xs:enumeration value="Fahrsp" />
+          <xs:enumeration value="GWATP" />
+          <xs:enumeration value="Indusi54" />
+          <xs:enumeration value="Indusi60" />
+          <xs:enumeration value="Indusi60R" />
+          <xs:enumeration value="Integra-Signum" />
+          <xs:enumeration value="KHP" />
+          <xs:enumeration value="KLUBU" />
+          <xs:enumeration value="KVB" />
+          <xs:enumeration value="LS" />
+          <xs:enumeration value="LS90" />
+          <xs:enumeration value="LZB" />
+          <xs:enumeration value="Memor" />
+          <xs:enumeration value="Memor2" />
+          <xs:enumeration value="Mirel" />
+          <xs:enumeration value="PZ80" />
+          <xs:enumeration value="PZB90" />
+          <xs:enumeration value="RS4c" />
+          <xs:enumeration value="SAUTC" />
+          <xs:enumeration value="SAUTCM" />
+          <xs:enumeration value="SAUTU" />
+          <xs:enumeration value="SCMT" />
+          <xs:enumeration value="SELCAB" />
+          <xs:enumeration value="SHP" />
+          <xs:enumeration value="SSC" />
+          <xs:enumeration value="TBL" />
+          <xs:enumeration value="TPWS" />
+          <xs:enumeration value="TVM300" />
+          <xs:enumeration value="TVM430" />
+          <xs:enumeration value="ZSI127" />
+          <xs:enumeration value="ZSI90" />
+          <xs:enumeration value="ZSL90" />
+          <xs:enumeration value="ZST90" />
+          <xs:enumeration value="ZUB121" />
+          <xs:enumeration value="ZUB122" />
+          <xs:enumeration value="ZUB123" />
+          <xs:enumeration value="ZUB262" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
 
-	<!--*********************************************************-->
-	<!-- Type of national train protection/train control systems -->
-	<!--*********************************************************-->
+  <xs:simpleType name="tLineClassificationType">
+    <xs:annotation>
+      <xs:documentation>according RIV</xs:documentation>
+    </xs:annotation>
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="A" />
+          <xs:enumeration value="B1" />
+          <xs:enumeration value="B2" />
+          <xs:enumeration value="B3" />
+          <xs:enumeration value="B4" />
+          <xs:enumeration value="C1" />
+          <xs:enumeration value="C2" />
+          <xs:enumeration value="C3" />
+          <xs:enumeration value="C4" />
+          <xs:enumeration value="CM2" />
+          <xs:enumeration value="CM3" />
+          <xs:enumeration value="CM4" />
+          <xs:enumeration value="D2" />
+          <xs:enumeration value="D3" />
+          <xs:enumeration value="D4" />
+          <xs:enumeration value="E" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
 
-    <xs:simpleType name="tNationalSystemsType">
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="ATB" />
-                    <xs:enumeration value="ATC" />
-                    <xs:enumeration value="AWS" />
-                    <xs:enumeration value="ALSN" />
-                    <xs:enumeration value="Crocodile" />
-                    <xs:enumeration value="Memor" />
-                    <xs:enumeration value="EVM120" />
-                    <xs:enumeration value="EBICAB" />
-                    <xs:enumeration value="SELCAB" />
-                    <xs:enumeration value="ASFA" />
-                    <xs:enumeration value="Indusi54" />
-                    <xs:enumeration value="Indusi60R" />
-                    <xs:enumeration value="PZ80" />
-                    <xs:enumeration value="PZB90" />
-                    <xs:enumeration value="Integra-Signum" />
-                    <xs:enumeration value="KVB" />
-                    <xs:enumeration value="LS90" />
-                    <xs:enumeration value="LZB" />
-                    <xs:enumeration value="CIR-ELKE" />
-                    <xs:enumeration value="Mirel" />
-                    <xs:enumeration value="SHP" />
-                    <xs:enumeration value="RS4c" />
-                    <xs:enumeration value="SCMT" />
-                    <xs:enumeration value="SSC" />
-                    <xs:enumeration value="TBL" />
-                    <xs:enumeration value="TVM300" />
-                    <xs:enumeration value="TVM430" />
-                    <xs:enumeration value="TPWS" />
-                    <xs:enumeration value="ZUB121" />
-                    <xs:enumeration value="ZUB122" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
-    
 </xs:schema>
diff --git a/schema/railwayUnits.xsd b/schema/railwayUnits.xsd
index 21d0e41..a5f199c 100644
--- a/schema/railwayUnits.xsd
+++ b/schema/railwayUnits.xsd
@@ -1,92 +1,110 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2009"
-	xmlns:xs="https://www.w3.org/2001/XMLSchema"
-	targetNamespace="https://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2011" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="https://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1">
 
-    <xs:annotation>
-        <xs:documentation>
-        Copyright (c) railML.org; All Rights Reserved. 
-
-        This work is licensed under a Creative Commons Attribution 2.0 License. 
-        https://creativecommons.org/licenses/by/2.0/
+  <xs:annotation>
+    <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
+    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of simple types, which represent railway specific units of measure and enumeration lists, used by all sub schemas</xs:documentation>
+  </xs:annotation>
 
-        For further information see: https://www.railml.org/
+  <xs:include schemaLocation="physicalUnits.xsd" />
 
-        Content of this file: 
-        XML Schema for railML(R) 2.0 
-        Definition of simple types, which represent railway specific 
-        units of measure and enumeration lists, used by all sub schemas
-        </xs:documentation>
+  <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:include schemaLocation="physicalUnits.xsd" />
-
-	<xs:simpleType name="tElectrificationVoltage">
-		<xs:restriction base="rail:tVoltageVolt">
-			<xs:enumeration value="600" />
-			<xs:enumeration value="750" />
-			<xs:enumeration value="1500" />
-			<xs:enumeration value="3000" />
-			<xs:enumeration value="15000" />
-			<xs:enumeration value="25000" />
-			<xs:enumeration value="50000" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<xs:simpleType name="tMeterload">
-		<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="tMeterloadTonsPerMeter">
-		<xs:restriction base="rail:tMeterload" />
-	</xs:simpleType>
+  <xs:simpleType name="tLaxDirection">
+    <xs:annotation>
+      <xs:documentation>generic type for direction statements</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="up" />
+      <xs:enumeration value="down" />
+      <xs:enumeration value="unknown" />
+      <xs:enumeration value="none" />
+      <xs:enumeration value="both" />
+    </xs:restriction>
+  </xs:simpleType>
 
-	<xs:simpleType name="tInterlockingTypes">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="none" />
-			<xs:enumeration value="mechanical" />
-			<xs:enumeration value="electro-mechanical" />
-			<xs:enumeration value="electrical" />
-			<xs:enumeration value="electronical" />
-		</xs:restriction>
-	</xs:simpleType>
+  <xs:simpleType name="tExtendedDirection">
+    <xs:annotation>
+      <xs:documentation>generic type for more constrained direction statements</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="rail:tLaxDirection">
+      <xs:enumeration value="up" />
+      <xs:enumeration value="down" />
+      <xs:enumeration value="unknown" />
+      <xs:enumeration value="none" />
+    </xs:restriction>
+  </xs:simpleType>
 
-	<xs:simpleType name="tDirValidity">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="none" />
-			<xs:enumeration value="up" />
-			<xs:enumeration value="down" />
-			<xs:enumeration value="both" />
-			<xs:enumeration value="unknown" />
-		</xs:restriction>
-	</xs:simpleType>
+  <xs:simpleType name="tDelimitedDirection">
+    <xs:annotation>
+      <xs:documentation>generic type for more constrained direction statements</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="rail:tLaxDirection">
+      <xs:enumeration value="up" />
+      <xs:enumeration value="down" />
+      <xs:enumeration value="unknown" />
+    </xs:restriction>
+  </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:simpleType>
+  <xs:simpleType name="tFlowDirection">
+    <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:enumeration value="unknown" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
 
-	<xs:simpleType name="tTrainCategory">
-		<xs:restriction base="xs:string" />
-	</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:restriction base="xs:string">
-			<xs:enumeration value="head" />
-			<xs:enumeration value="center" />
-			<xs:enumeration value="rear" />
-		</xs:restriction>
-	</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" />
+      <xs:enumeration value="rear" />
+    </xs:restriction>
+  </xs:simpleType>
 
-	<xs:simpleType name="tEffortNewton">
-		<xs:restriction base="rail:tForce" />
-	</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>
 
 </xs:schema>
diff --git a/schema/rollingstock.xsd b/schema/rollingstock.xsd
index f508514..45f172e 100644
--- a/schema/rollingstock.xsd
+++ b/schema/rollingstock.xsd
@@ -1,884 +1,730 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2009"
-	xmlns:xs="https://www.w3.org/2001/XMLSchema"
-    xmlns:xml="https://www.w3.org/XML/1998/namespace"
-	targetNamespace="https://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2011" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:xml="https://www.w3.org/XML/1998/namespace" targetNamespace="https://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1">
+  <xs:annotation>
+    <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
+    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of elements (partially hidden as complex type) for rollingstock sub schema (RS), uses rollingstock types and attribute groups from "xs:include" path</xs:documentation>
+  </xs:annotation>
+
+  <xs:include schemaLocation="rollingstockTypes.xsd" />
+
+  <xs:element name="rollingstock">
+    <xs:complexType>
+      <xs:annotation>
+        <xs:documentation>container for rolling stock data of single vehicles and train formations</xs:documentation>
+      </xs:annotation>
+      <xs:complexContent>
+        <xs:extension base="rail:tRollingstock">
+          <xs:sequence>
+            <xs:element name="vehicles" type="rail:eVehicles" minOccurs="0">
+              <xs:annotation>
+                <xs:documentation>container for single vehicle data or vehicle family data</xs:documentation>
+              </xs:annotation>
+            </xs:element>
+            <xs:element name="formations" type="rail:eFormations" minOccurs="0">
+              <xs:annotation>
+                <xs:documentation>container for complete train formations or sets of vehicles</xs:documentation>
+              </xs:annotation>
+            </xs:element>
+          </xs:sequence>
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+
+    <xs:key name="etcsKey">
+      <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:monitoring/rail:etcs" />
+      <xs:field xpath="@id" />
+    </xs:key>
+
+    <xs:key name="specificTransmissionModuleKey">
+      <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:monitoring/rail:etcs/rail:specificTransmissionModule" />
+      <xs:field xpath="@id" />
+    </xs:key>
+
+    <xs:key name="nationalSystemKey">
+      <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:monitoring/rail:nationalSystem" />
+      <xs:field xpath="@id" />
+    </xs:key>
+
+    <xs:key name="trainRadioKey">
+      <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:monitoring/rail:trainRadio" />
+      <xs:field xpath="@id" />
+    </xs:key>
+
+    <xs:key name="otherEquipmentKey">
+      <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:monitoring/rail:otherEquipment" />
+      <xs:field xpath="@id" />
+    </xs:key>
+
+    <xs:key name="energyStorageKey">
+      <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:energyStorage" />
+      <xs:field xpath="@id" />
+    </xs:key>
+
+    <xs:key name="propulsionKey">
+      <xs:selector xpath=".//rail:vehicles/rail:vehicle/rail:engine/rail:propulsion" />
+      <xs:field xpath="@id" />
+    </xs:key>
+
+  </xs:element>
+
+  <xs:complexType name="eVehicles">
+    <xs:sequence>
+      <xs:element name="vehicle" type="rail:eVehicle" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>data related to single vehicle or vehicle family</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eVehicle">
+    <xs:complexContent>
+      <xs:extension base="rail:tVehicle">
+        <xs:sequence>
+          <xs:element name="classification" type="rail:eClassification" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>general management and classification data of vehicle</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="engine" type="rail:eEngine" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>engine data about a motor car or locomotive</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="wagon" type="rail:eWagon" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>technical and payload data about a (motor) car or locomotive</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="vehicleBrakes" type="rail:eVehicleBrakes" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>data about brake systems independent from propulsion</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="loadLimitMatrix" type="rail:eLoadLimitMatrix" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>matrix of permissible speed, line classification and payload</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="curvingLimitation" type="rail:eCurvingLimitation" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>list of permissible curve radius in horizontal and vertical direction</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eClassification">
+    <xs:sequence>
+      <xs:element name="manufacturer" type="rail:tManufacturer" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>manufacturer data related to the vehicle</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="operator" type="rail:tOperator" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>general operator specific vehicle data</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
 
+  <xs:complexType name="eEngine">
     <xs:annotation>
-        <xs:documentation>
-        Copyright (c) railML.org; All Rights Reserved. 
+      <xs:documentation>engine data about a motor car or locomotive, may be used in conjunction with 'wagon'</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tEngine">
+        <xs:sequence>
+          <xs:element name="propulsion" type="rail:ePropulsion" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>technical data about the propulsion system of a vehicle</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="pantograph" type="rail:ePantograph" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>technical data about the installed pantographs of a vehicle</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="energyStorage" type="rail:eStorage" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>technical data about the installed energy storage devices of a vehicle</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="monitoring" type="rail:eMonitoring" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>types of signalling systems fitted to the vehicle</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
-        This work is licensed under a Creative Commons Attribution 2.0 License. 
-        https://creativecommons.org/licenses/by/2.0/
+  <xs:complexType name="ePantograph">
+    <xs:annotation>
+      <xs:documentation>technical data about the installed pantographs of a vehicle</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tPantograph">
+        <xs:sequence>
+          <xs:element name="dedicatedSupplySystem" type="rail:tElectrificationSystem" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>technical data of the supply system the pantograph is used for</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eStorage">
+    <xs:complexContent>
+      <xs:extension base="rail:tStorage">
+        <xs:sequence>
+          <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>detailed efficiency of energy storage device</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
-        For further information see: https://www.railml.org/
+  <xs:complexType name="ePropulsion">
+    <xs:annotation>
+      <xs:documentation>technical data about the propulsion system of a vehicle</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tPropulsion">
+        <xs:sequence>
+          <xs:element name="transformer" type="rail:eTransformer" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>technical data of main transformer</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="fourQuadrantChopper" type="rail:eFourQuadrantChopper" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>technical data of inverter between OHL/transformer and link circuit</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="link" type="rail:tLink" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>nominal values of link circuit between input inverter and motor inverter</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="tractionInverter" type="rail:eTractionInverter" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>technical data of inverter between link circuit and motors</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="tractionMotor" type="rail:eTractionMotor" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>technical data of traction motor</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="diesel" type="rail:tDieselEngine" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>technical data of diesel engine</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="gear" type="rail:eGear" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>technical data of transmission system between motor and wheel</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="auxiliarySupply" type="rail:eAuxiliarySupply" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>technical data of auxiliary systems (supply and consumption)</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="tractiveEffort" type="rail:tEffortCurve" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>mechanical tractive effort at wheel vs. speed by propulsion system</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="brakeEffort" type="rail:tEffortCurve" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>mechanical brake effort at wheel vs. speed by propulsion system</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="tractiveCurrent" type="rail:tCurrentCurve" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>net current of the entire propulsion system as curve vs. speed for traction mode</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="brakeCurrent" type="rail:tCurrentCurve" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>net current of the entire propulsion system as curve vs. speed for braking mode</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="tractiveCurrentLimitation" type="rail:tCurrentLimitation" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>limitation curve of net current of the entire propulsion system vs. net voltage for traction mode</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="brakeCurrentLimitation" type="rail:tCurrentLimitation" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>limitation curve of net current of the entire propulsion system vs. net voltage for braking mode</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="tractiveVehicleEfficiency" type="rail:tEfficiencyCurve" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>efficiency of the entire propulsion system as curve vs. speed or effort for traction mode</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="brakeVehicleEfficiency" type="rail:tEfficiencyCurve" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>efficiency of the entire propulsion system as curve vs. speed or effort for braking mode</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="rackTraction" type="rail:tRackTractionType" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>data about rack traction equipment of the vehicle used for propulsion</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eTransformer">
+    <xs:complexContent>
+      <xs:extension base="rail:tTransformer">
+        <xs:sequence>
+          <xs:element name="winding" type="rail:tWinding" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>nominal values of each transformer winding</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>transformer efficiency vs. speed</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eFourQuadrantChopper">
+    <xs:complexContent>
+      <xs:extension base="rail:tFourQuadrantChopper">
+        <xs:sequence>
+          <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>four-quadrant-chopper efficiency vs. speed</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="phi" type="rail:tCurve" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>phase angle of the real power to the apparent power as curve for the entire propulsion system</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eTractionInverter">
+    <xs:complexContent>
+      <xs:extension base="rail:tTractionInverter">
+        <xs:sequence>
+          <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>traction inverter efficiency vs. speed</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="pulsePattern" type="rail:ePulsePattern" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>puls pattern of the traction inverter</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ePulsePattern">
+    <xs:sequence>
+      <xs:element name="valueTable">
+        <xs:annotation>
+          <xs:documentation>table of values vs. arbitrary variable</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:complexContent>
+            <xs:extension base="rail:tValueTable" />
+          </xs:complexContent>
+        </xs:complexType>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eTractionMotor">
+    <xs:complexContent>
+      <xs:extension base="rail:tTractionMotor">
+        <xs:sequence>
+          <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>traction motor efficiency vs. speed</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="mechanicalLosses" type="rail:tLosses" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>traction motor mechanical losses vs. speed</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eGear">
+    <xs:complexContent>
+      <xs:extension base="rail:tGear">
+        <xs:sequence>
+          <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>transmission efficiency vs. speed</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eAuxiliarySupply">
+    <xs:complexContent>
+      <xs:extension base="rail:tAuxiliarySupply">
+        <xs:sequence>
+          <xs:element name="dedicatedSupplySystem" type="rail:tAuxiliarySupplySystem" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>list of available supply systems for auxiliaries</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eMonitoring">
+    <xs:complexContent>
+      <xs:extension base="rail:tMonitoring">
+        <xs:sequence>
+          <xs:element name="etcs" type="rail:eETCS" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>capabilities with respect to European Train Control System</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="nationalSystem" type="rail:tNationalSystem" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>list of installed national train protection/control systems</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="trainRadio" type="rail:eTrainRadio" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>list of installed train radio systems for communication</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="otherEquipment" type="rail:tOtherEquipment" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>list of other (non-safety) installed train equipment</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
-        Content of this file: 
-        XML Schema for railML(R) 2.0 
-        Definition of elements (partially hidden as complex type) for 
-        rollingstock sub schema (RS), uses rollingstock types and 
-        attribute groups from "xs:include" path
-        </xs:documentation>
+  <xs:complexType name="eETCS">
+    <xs:annotation>
+      <xs:documentation>data about installed ETCS system</xs:documentation>
     </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tETCS">
+        <xs:sequence>
+          <xs:element name="specificTransmissionModule" type="rail:tSpecificTransmissionModule" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>data for special transmission modules of ETCS equipment</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
-	<xs:include schemaLocation="rollingstockTypes.xsd" />
+  <xs:complexType name="eTrainRadio">
+    <xs:annotation>
+      <xs:documentation>train radio</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tTrainRadio">
+        <xs:sequence>
+          <xs:element name="radioSystem" type="rail:tRadioSystem" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>list of available radio systems for communication like 'GSM-R'</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
-	<!---->
-	<!-- rollingstock                                                            -->
-	<!--   +- vehicles                                                           -->
-	<!--   +- formations                                                         -->
-	<!---->
+  <xs:complexType name="eWagon">
+    <xs:annotation>
+      <xs:documentation>data about the car body of a vehicle and its payload</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tWagon">
+        <xs:sequence>
+          <xs:element name="passenger" type="rail:ePassenger" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>data for passenger cars</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="goods" type="rail:eGoods" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>data for freight cars</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="auxiliarySupplySystem" type="rail:tElectrificationSystem" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>installed supply systems for auxiliaries in the vehicle</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="driversCab" type="rail:tDriversCabType" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>data about each drivers cab of the vehicle</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="rackTraction" type="rail:tRackTractionType" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>data about rack traction equipment of the vehicle used for braking only</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="couplers" type="rail:eCouplers" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>data for couplers between wagons</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ePassenger">
+    <xs:complexContent>
+      <xs:extension base="rail:tPassenger">
+        <xs:sequence>
+          <xs:element name="gangway" type="rail:tGangway" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>description of gangway features between vehicles</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="doors" type="rail:tDoors" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>data about door dimensions</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="tilting" type="rail:tTilting" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>data about carbody tilting system</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eGoods">
+    <xs:complexContent>
+      <xs:extension base="rail:tGoods">
+        <xs:sequence>
+          <xs:element name="service" type="rail:tService" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>description of any additional service provided per vehicle like car or truck ports</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eCouplers">
+    <xs:sequence>
+      <xs:element name="mechanicalCoupler" type="rail:eMechanicalCoupler" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>container for available mechanical couplers between wagons</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="pneumaticCoupler" type="rail:ePneumaticCoupler" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>container for available pneumatic couplers between wagons</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="electricalCoupler" type="rail:eElectricalCoupler" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>container for available electrical couplers between wagons</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eMechanicalCoupler">
+    <xs:complexContent>
+      <xs:extension base="rail:tMechanicalWagonCouplerType" />
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ePneumaticCoupler">
+    <xs:complexContent>
+      <xs:extension base="rail:tPneumaticWagonCouplerType" />
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eElectricalCoupler">
+    <xs:complexContent>
+      <xs:extension base="rail:tElectricalWagonCouplerType" />
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eVehicleBrakes">
+    <xs:annotation>
+      <xs:documentation>data about brake systems independent from propulsion</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="vehicleBrake" type="rail:eVehicleBrake" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>settings and characteristic of a particular brake type or brake application position</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="mechanicalBrakeEffort" type="rail:tEffortCurve" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>mechanical brake effort at wheel vs. speed by brake systems without propulsion</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="eddyCurrentBrake" type="rail:tEddyCurrentBrake" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>technical data of eddy current brake</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eVehicleBrake">
+    <xs:complexContent>
+      <xs:extension base="rail:tBasicBrakeType">
+        <xs:attributeGroup ref="rail:aVehicleBrake" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eCurvingLimitation">
+    <xs:complexContent>
+      <xs:extension base="rail:tCurvingLimitationType" />
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eLoadLimitMatrix">
+    <xs:complexContent>
+      <xs:extension base="rail:tLoadLimitMatrixType">
+        <xs:sequence>
+          <xs:element name="loadLimit" type="rail:eLoadLimit" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>container for possible load limits</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eLoadLimit">
+    <xs:complexContent>
+      <xs:extension base="rail:tLoadLimitType">
+        <xs:sequence>
+          <xs:element name="railNetwork" type="rail:tRailNetwork" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>relation to particular rail networks the limit is applicable</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="lineClassification" type="rail:tLineClassification" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>load limit with respect to line classification (permissible axle load and meter load)</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eFormations">
+    <xs:sequence>
+      <xs:annotation>
+        <xs:documentation>contain formation data</xs:documentation>
+      </xs:annotation>
+      <xs:element name="formation" type="rail:eFormation" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>data for train composition or vehicle formation</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
 
-    <xs:element name="rollingstock">
-        <xs:complexType>
+  <xs:complexType name="eFormation">
+    <xs:annotation>
+      <xs:documentation>data for train composition or vehicle formation</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tFormation">
+        <xs:sequence>
+          <xs:annotation>
+            <xs:documentation>contain formation data</xs:documentation>
+          </xs:annotation>
+          <xs:element name="trainOrder" type="rail:eTrainOrder" minOccurs="0">
             <xs:annotation>
-                <xs:documentation>
-                    container for rolling stock data of single vehicles and
-                    train formations
-			</xs:documentation>
-            </xs:annotation>
-            <xs:complexContent>
-                <xs:extension base="rail:tRollingstock">
-                    <xs:sequence>
-                        <xs:element name="vehicles" type="rail:eVehicles"
-                            minOccurs="0">
-                            <xs:annotation>
-                                <xs:documentation>
-                                    container for single vehicle data or
-                                    vehicle family data
-							</xs:documentation>
-                            </xs:annotation>
-                        </xs:element>
-                        <xs:element name="formations" type="rail:eFormations"
-                            minOccurs="0">
-                            <xs:annotation>
-                                <xs:documentation>
-                                    container for complete train formations
-                                    or sets of vehicles
-							</xs:documentation>
-                            </xs:annotation>
-                        </xs:element>
-                    </xs:sequence>
-                </xs:extension>
-            </xs:complexContent>
-        </xs:complexType>
-    </xs:element>
-
-	<!---->
-	<!-- vehicles                                                                -->
-	<!--   +- vehicle                                                            -->
-	<!---->
-
-	<xs:complexType name="eVehicles">
-		<xs:sequence>
-			<xs:element name="vehicle" type="rail:eVehicle"
-				maxOccurs="unbounded">
-				<xs:annotation>
-					<xs:documentation>
-						data related to single vehicle or vehicle family
-					</xs:documentation>
-				</xs:annotation>
-			</xs:element>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- vehicle                                                                 -->
-	<!--   +- classification                                                     -->
-	<!--   +- engine                                                             -->
-	<!--   +- wagon                                                              -->
-	<!--   +- brakes                                                             -->
-	<!---->
-
-	<xs:complexType name="eVehicle">
-		<xs:complexContent>
-			<xs:extension base="rail:tVehicle">
-				<xs:sequence>
-					<xs:element name="classification"
-						type="rail:eClassification" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								general management and classification
-								data of vehicle
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="engine" type="rail:eEngine"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								engine data about a motor car or
-								locomotive
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="wagon" type="rail:eWagon"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								technical and payload data about a
-								(motor) car or locomotive
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="vehicleBrakes" type="rail:eVehicleBrakes"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								data about brake systems independent
-								from propulsion
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- classification                                                          -->
-	<!--   +- manufacturer                                                       -->
-	<!--   +- operator                                                           -->
-	<!---->
-
-	<xs:complexType name="eClassification">
-		<xs:sequence>
-			<xs:element name="manufacturer" type="rail:tManufacturer"
-				minOccurs="0">
-				<xs:annotation>
-					<xs:documentation>
-						manufacturer data related to the vehicle
-					</xs:documentation>
-				</xs:annotation>
-			</xs:element>
-			<xs:element name="operator" type="rail:tOperator" minOccurs="0"
-				maxOccurs="unbounded">
-				<xs:annotation>
-					<xs:documentation>
-						general operator specific vehicle data
-					</xs:documentation>
-				</xs:annotation>
-			</xs:element>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- engine                                                                  -->
-	<!--   +- propulsion                                                         -->
-	<!--   +- monitoring                                                         -->
-	<!---->
-
-	<xs:complexType name="eEngine">
-		<xs:annotation>
-			<xs:documentation>
-				engine data about a motor car or locomotive, may be used
-				in conjunction with 'wagon'
-			</xs:documentation>
-		</xs:annotation>
-		<xs:sequence>
-			<xs:element name="propulsion" type="rail:ePropulsion"
-				minOccurs="0" maxOccurs="unbounded">
-				<xs:annotation>
-					<xs:documentation>
-						technical data about the propulsion system of a
-						vehicle
-					</xs:documentation>
-				</xs:annotation>
-			</xs:element>
-			<xs:element name="monitoring" type="rail:eMonitoring"
-				minOccurs="0">
-				<xs:annotation>
-					<xs:documentation>
-						types of signalling systems fitted to the
-						vehicle
-					</xs:documentation>
-				</xs:annotation>
-			</xs:element>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- propulsion                                                              -->
-	<!--   +- transformer                                                        -->
-	<!--   +- fourQuadrantChopper                                                -->
-	<!--   +- link                                                               -->
-	<!--   +- tractionInverter                                                   -->
-	<!--   +- tractionMotor                                                      -->
-	<!--   +- diesel                                                             -->
-	<!--   +- gear                                                               -->
-	<!--   +- auxiliarySupply                                                          -->
-	<!--   +- tractiveEffort                                                     -->
-	<!--   +- brakeEffort                                                        -->
-	<!--   +- tractiveCurrent                                                    -->
-	<!--   +- brakeCurrent                                                       -->
-	<!--   +- tractiveCurrentLimitation                                          -->
-	<!--   +- brakeCurrentLimitation                                             -->
-	<!--   +- tractiveVehicleEfficiency                                          -->
-	<!--   +- brakeVehicleEfficiency                                             -->
-	<!---->
-
-	<xs:complexType name="ePropulsion">
-		<xs:annotation>
-			<xs:documentation>
-				technical data about the propulsion system of a vehicle
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tPropulsion">
-				<xs:sequence>
-					<xs:element name="transformer" type="rail:eTransformer"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								technical data of main transformer
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="fourQuadrantChopper"
-						type="rail:eFourQuadrantChopper" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								technical data of inverter between
-								OHL/transformer and link circuit
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="link" type="rail:tLink"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								nominal values of link circuit between
-								input inverter and motor inverter
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="tractionInverter"
-						type="rail:eTractionInverter" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								technical data of inverter between link
-								circuit and motors
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="tractionMotor"
-						type="rail:eTractionMotor" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								technical data of traction motor
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="diesel" type="rail:tDieselEngine"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								technical data of diesel engine
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="gear" type="rail:eGear"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								technical data of transmission system
-								between motor and wheel
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="auxiliarySupply"
-						type="rail:tAuxiliarySupply" minOccurs="0" maxOccurs="unbounded">
-						<xs:annotation>
-							<xs:documentation>
-								technical data of auxiliary systems
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="tractiveEffort"
-						type="rail:tEffortCurve" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								mechanical tractive effort at wheel vs.
-								speed by propulsion system
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="brakeEffort" type="rail:tEffortCurve"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								mechanical brake effort at wheel vs.
-								speed by propulsion system
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="tractiveCurrent"
-						type="rail:tCurrentCurve" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								net current of the entire propulsion
-								system as curve vs. speed for traction
-								mode
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="brakeCurrent"
-						type="rail:tCurrentCurve" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								net current of the entire propulsion
-								system as curve vs. speed for braking
-								mode
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="tractiveCurrentLimitation"
-						type="rail:tCurrentLimitation" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								limitation curve of net current of the
-								entire propulsion system vs. net voltage
-								for traction mode
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="brakeCurrentLimitation"
-						type="rail:tCurrentLimitation" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								limitation curve of net current of the
-								entire propulsion system vs. net voltage
-								for braking mode
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="tractiveVehicleEfficiency"
-						type="rail:tEfficiencyCurve" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								efficiency of the entire propulsion
-								system as curve vs. speed or effort for
-								traction mode
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="brakeVehicleEfficiency"
-						type="rail:tEfficiencyCurve" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								efficiency of the entire propulsion
-								system as curve vs. speed or effort for
-								braking mode
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- transformer                                                             -->
-	<!--   +- winding                                                            -->
-	<!--   +- efficiency                                                         -->
-	<!---->
-
-	<xs:complexType name="eTransformer">
-		<xs:complexContent>
-			<xs:extension base="rail:tTransformer">
-				<xs:sequence>
-					<xs:element name="winding" type="rail:tWinding"
-						minOccurs="0" maxOccurs="unbounded">
-						<xs:annotation>
-							<xs:documentation>
-								nominal values of each transformer
-								winding
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="efficiency"
-						type="rail:tEfficiencyCurve" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								transformer efficiency vs. speed
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- fourQuadrantChopper                                                     -->
-	<!--   +- efficiency                                                         -->
-	<!--   +- cosphi                                                             -->
-	<!---->
-
-	<xs:complexType name="eFourQuadrantChopper">
-		<xs:complexContent>
-			<xs:extension base="rail:tFourQuadrantChopper">
-				<xs:sequence>
-					<xs:element name="efficiency"
-						type="rail:tEfficiencyCurve" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								four-quadrant-chopper efficiency vs.
-								speed
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="phi" type="rail:tCurve"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								phase angle of the real power to the apparent
-								power as curve for the entire propulsion
-								system
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- tractionInverter                                                        -->
-	<!--   +- efficiency                                                         -->
-	<!--   +- pulsPattern                                                        -->
-	<!---->
-
-	<xs:complexType name="eTractionInverter">
-		<xs:complexContent>
-			<xs:extension base="rail:tTractionInverter">
-				<xs:sequence>
-					<xs:element name="efficiency"
-						type="rail:tEfficiencyCurve" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								traction inverter efficiency vs. speed
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="pulsePattern" type="rail:ePulsePattern"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								puls pattern of the traction inverter
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- pulsePattern                                                            -->
-	<!--   +- valueTable                                                         -->
-	<!---->
-
-	<xs:complexType name="ePulsePattern">
-		<xs:sequence>
-			<xs:element name="valueTable">
-				<xs:annotation>
-					<xs:documentation>
-						table of values vs. arbitrary variable
-					</xs:documentation>
-				</xs:annotation>
-				<xs:complexType>
-					<xs:complexContent>
-						<xs:extension base="rail:tValueTable" />
-					</xs:complexContent>
-				</xs:complexType>
-			</xs:element>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- tractionMotor                                                           -->
-	<!--   +- efficiency                                                         -->
-	<!--   +- mechanicalLosses                                                   -->
-	<!---->
-
-	<xs:complexType name="eTractionMotor">
-		<xs:complexContent>
-			<xs:extension base="rail:tTractionMotor">
-				<xs:sequence>
-					<xs:element name="efficiency"
-						type="rail:tEfficiencyCurve" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								traction motor efficiency vs. speed
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="mechanicalLosses" type="rail:tLosses"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								traction motor mechanical losses vs.
-								speed
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- gear                                                                    -->
-	<!--   +- efficiency                                                         -->
-	<!---->
-
-	<xs:complexType name="eGear">
-		<xs:complexContent>
-			<xs:extension base="rail:tGear">
-				<xs:sequence>
-					<xs:element name="efficiency"
-						type="rail:tEfficiencyCurve" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								transmission efficiency vs. speed
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- monitoring                                                              -->
-	<!--   +- etcs                                                               -->
-	<!--   +- nationalSystem                                                     -->
-	<!--   +- trainRadio                                                               -->
-	<!--   +- otherEquipment                                                               -->
-	<!---->
-
-	<xs:complexType name="eMonitoring">
-		<xs:complexContent>
-			<xs:extension base="rail:tMonitoring">
-				<xs:sequence>
-					<xs:element name="etcs" type="rail:eETCS"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								Capabilities with respect to European
-								Train Control System
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="nationalSystem"
-						type="rail:tNationalSystem" minOccurs="0" maxOccurs="unbounded">
-						<xs:annotation>
-							<xs:documentation>
-								list of installed national train protection/control systems
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="trainRadio"
-						type="rail:eTrainRadio" minOccurs="0" maxOccurs="unbounded">
-						<xs:annotation>
-							<xs:documentation>
-								list of installed train radio systems for communication
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="otherEquipment"
-						type="rail:tOtherEquipment" minOccurs="0" maxOccurs="unbounded">
-						<xs:annotation>
-							<xs:documentation>
-								list of other (non-safety) installed train equipment
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- etcs                                                                   -->
-	<!--   +- specificTransmissionModule                     -->
-	<!---->
-
-	<xs:complexType name="eETCS">
-		<xs:annotation>
-			<xs:documentation>
-				data about installed ETCS system
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tETCS">
-				<xs:sequence>
-					<xs:element name="specificTransmissionModule" type="rail:tSpecificTransmissionModule"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								data for special transmission modules of ETCS equipment
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- trainRadio                                                             -->
-	<!--   +- radioSystem                                                    -->
-	<!---->
-
-    <xs:complexType name="eTrainRadio">
+              <xs:documentation>car order for a formation</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="categoryRef" type="rail:tElementWithReference" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>reference to train categories in TimeTable part, e.g. ltd. Express, the formation can run as in service</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="trainEngine" type="rail:tTrainEngine" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>acceleration value for whole formation</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="trainBrakes" type="rail:tBasicBrakeType" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>for whole formation deceleration</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="trainResistance" type="rail:tTrainResistance" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>mechanical train resistance vs. speed</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eTrainOrder">
+    <xs:sequence>
+      <xs:element name="vehicleRef" type="rail:tVehicleRef" maxOccurs="unbounded">
         <xs:annotation>
-            <xs:documentation>
-                train radio
-            </xs:documentation>
+          <xs:documentation>references via ID-attribute to vehicle element</xs:documentation>
         </xs:annotation>
-        <xs:complexContent>
-            <xs:extension base="rail:tTrainRadio">
-                <xs:sequence>
-                    <xs:element name="radioSystem" type="rail:tRadioSystem"
-                        minOccurs="0">
-                        <xs:annotation>
-                            <xs:documentation>
-                                list of available radio systems for communication like 'GSM-R'
-                            </xs:documentation>
-                        </xs:annotation>
-                    </xs:element>
-                </xs:sequence>
-            </xs:extension>
-        </xs:complexContent>
-    </xs:complexType>
-    
-	<!---->
-	<!-- wagon                                                                   -->
-	<!--   +- passenger                                                          -->
-	<!--   +- goods                                                              -->
-	<!---->
-
-	<xs:complexType name="eWagon">
-		<xs:annotation>
-			<xs:documentation>
-				data about the car body of a vehicle and its payload
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tWagon">
-				<xs:sequence>
-					<xs:element name="passenger" type="rail:ePassenger"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								data for passenger cars
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="goods" type="rail:tGoods" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								data for freight cars
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- passenger                                                               -->
-	<!--   +- places                                                            -->
-	<!--   +- service                                                            -->
-	<!--   +- gangway                                                            -->
-	<!---->
-
-	<xs:complexType name="ePassenger">
-		<xs:complexContent>
-			<xs:extension base="rail:tPassenger">
-				<xs:sequence>
-					<xs:element name="places" type="rail:tPlaces" minOccurs="0" maxOccurs="unbounded" />
-					<xs:element name="service"
-						type="rail:tService" minOccurs="0" maxOccurs="unbounded">
-						<xs:annotation>
-							<xs:documentation>
-								description of any additional service
-								provided per vehicle
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="gangway" type="rail:tGangway" minOccurs="0" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- vehicle brakes                                                          -->
-	<!--   +- vehicle Brake                                                      -->
-	<!--   +- mechanicalBrakeEffort                                                    -->
-	<!--   +- eddyCurrentBrake                                                   -->
-	<!---->
-
-	<xs:complexType name="eVehicleBrakes">
-		<xs:annotation>
-			<xs:documentation>
-				data about brake systems independent from propulsion
-			</xs:documentation>
-		</xs:annotation>
-		<xs:sequence>
-			<xs:element name="vehicleBrake"
-				type="rail:eVehicleBrake" maxOccurs="unbounded">
-				<xs:annotation>
-					<xs:documentation>
-						settings and characteristic of a particular brake
-						type or brake application position
-					</xs:documentation>
-				</xs:annotation>
-			</xs:element>
-			<xs:element name="mechanicalBrakeEffort"
-				type="rail:tEffortCurve" minOccurs="0">
-				<xs:annotation>
-					<xs:documentation>
-						mechanical brake effort at wheel vs.
-						speed by brake systems without
-						propulsion
-					</xs:documentation>
-				</xs:annotation>
-			</xs:element>
-			<xs:element name="eddyCurrentBrake"
-				type="rail:tEddyCurrentBrake" minOccurs="0">
-				<xs:annotation>
-					<xs:documentation>
-						technical data of eddy current brake
-					</xs:documentation>
-				</xs:annotation>
-			</xs:element>
-		</xs:sequence>
-	</xs:complexType>
-	
-	<!---->
-	<!-- vehicle brake -->
-	<!---->
-
-	<xs:complexType name="eVehicleBrake">
-		<xs:complexContent>
-			<xs:extension base="rail:tBasicBrakeType">
-				<xs:attributeGroup ref="rail:aVehicleBrake"/>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-	
-	<!---->
-	<!-- formations                                                              -->
-	<!--   +- formation                                                          -->
-	<!---->
-
-	<xs:complexType name="eFormations">
-		<xs:sequence>
-			<xs:annotation>
-				<xs:documentation>
-					contain formation data
-				</xs:documentation>
-			</xs:annotation>
-			<xs:element name="formation" type="rail:eFormation"
-				maxOccurs="unbounded">
-				<xs:annotation>
-					<xs:documentation>
-						data for train composition or vehicle formation
-					</xs:documentation>
-				</xs:annotation>
-			</xs:element>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- formation                                                               -->
-	<!--   +- trainOrder                                                         -->
-	<!--   +- trainType                                                          -->
-	<!--   +- sysEngine                                                          -->
-	<!--   +- sysBrakes                                                          -->
-	<!--   +- trainResistance                                                    -->
-	<!---->
-
-	<xs:complexType name="eFormation">
-		<xs:annotation>
-			<xs:documentation>
-				data for train composition or vehicle formation
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tFormation">
-				<xs:sequence>
-					<xs:annotation>
-						<xs:documentation>
-							contain formation data
-						</xs:documentation>
-					</xs:annotation>
-					<xs:element name="trainOrder" type="rail:eTrainOrder" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								car order for 1 formation
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="categoryRef" type="rail:tElementWithReference"
-						minOccurs="0" maxOccurs="unbounded">
-						<xs:annotation>
-							<xs:documentation>
-								reference to train categories in TimeTable part, e.g. ltd. Express,
-								the formation can run as in service
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="trainEngine" type="rail:tTrainEngine"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								acceleration value for whole formation
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="trainBrakes" type="rail:tBasicBrakeType"
-						minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								for whole formation deceleration
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-					<xs:element name="trainResistance"
-						type="rail:tTrainResistance" minOccurs="0">
-						<xs:annotation>
-							<xs:documentation>
-								mechanical train resistance vs. speed
-							</xs:documentation>
-						</xs:annotation>
-					</xs:element>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- trainOrder                                                              -->
-	<!--   +- vehicleRef                                                        -->
-	<!---->
-
-	<xs:complexType name="eTrainOrder">
-		<xs:sequence>
-			<xs:element name="vehicleRef" type="rail:tVehicleRef" maxOccurs="unbounded">
-				<xs:annotation>
-					<xs:documentation>
-						references via ID-attribute to vehicle element
-					</xs:documentation>
-				</xs:annotation>
-			</xs:element>
-		</xs:sequence>
-	</xs:complexType>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
 </xs:schema>
diff --git a/schema/rollingstockTypes.xsd b/schema/rollingstockTypes.xsd
index d17b40a..028d9aa 100644
--- a/schema/rollingstockTypes.xsd
+++ b/schema/rollingstockTypes.xsd
@@ -1,1844 +1,2155 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2009"
-	xmlns:xs="https://www.w3.org/2001/XMLSchema"
-    xmlns:xml="https://www.w3.org/XML/1998/namespace"
-	xmlns:mml="https://www.w3.org/1998/Math/MathML"
-	targetNamespace="https://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2011" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="https://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1">
+  <xs:annotation>
+    <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
+    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of attribute groups, simple and complex types, used by rollingstock sub schema (RS)</xs:documentation>
+  </xs:annotation>
+
+  <xs:include schemaLocation="railwayUnits.xsd" />
+  <xs:include schemaLocation="railwayBaseTypes.xsd" />
+
+  <xs:complexType name="tRollingstock">
+    <xs:annotation>
+      <xs:documentation>rolling stock data root</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tGlobalElementWithMetadata">
+        <xs:attributeGroup ref="rail:aRollingstock" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aRollingstock">
+    <xs:attribute name="timetableRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>identifier for status of related timetable data as reference</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="infrastructureRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>identifier for status of related infrastructure data as reference</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tVehicle">
+    <xs:annotation>
+      <xs:documentation>vehicle related data</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aVehicle" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aVehicle">
+    <xs:attribute name="vehicleFamilyRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>reference to 'id' in vehicle data in order to obtain all data common for the vehicle family not explicitly specified in this element of an individual vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="axleSequence" type="xs:string">
+      <xs:annotation>
+        <xs:documentation>description of axle sequence</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="numberDrivenAxles" type="rail:tCounter">
+      <xs:annotation>
+        <xs:documentation>the number of motored axles used for traction</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="numberNonDrivenAxles" type="rail:tCounter">
+      <xs:annotation>
+        <xs:documentation>the number of axles not used for traction (without motor or gear)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="trackGauge" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>the track gauge in metres the vehicle is mainly used for</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="trackGaugeAlternative" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>the track gauge in metres the vehicle is alternatively used for</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="adjustableWheelSet" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>the vehicle comprises wheelsets adjustable to different track gauge</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="length" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>vehicle length in metres</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="speed" type="rail:tSpeedKmPerHour">
+      <xs:annotation>
+        <xs:documentation>maximum allowed vehicle speed in km/h</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="towingSpeed" type="rail:tSpeedKmPerHour">
+      <xs:annotation>
+        <xs:documentation>maximum allowed vehicle speed in km/h when its towed (not powered)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="bruttoWeight" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>total weight of vehicle with full payload in metric tons (gross weight)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nettoWeight" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>net weight of vehicle payload in metric tons</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="tareWeight" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>tare weight of vehicle (empty) in metric tons</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="bruttoAdhesionWeight" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>portion of total vehicle weight on motored axles in metric tons (adhesion weight)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="tareAdhesionWeight" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>portion of tare vehicle weight on motored axles in metric tons (adhesion weight)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nettoAdhesionWeight" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>DEPRECATED: portion of vehicle payload weight on motored axles in metric tons (adhesion weight)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="axleLoad" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>weight per axle of vehicle in metric tons</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="resistanceFactor" type="xs:decimal">
+      <xs:annotation>
+        <xs:documentation>running resistance of vehicle in N/kN (to be used in conjungtion with 'trainResistance' element</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="onTrainHead" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>vehicle may run at the train head</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="onTrainTailOnly" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>vehicle must be the last one in any formation, no other vehicle coupled to its end</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tManufacturer">
+    <xs:annotation>
+      <xs:documentation>container for descriptive data of the vehicle manufacturer</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aManufacturer" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aManufacturer">
+    <xs:attribute name="manufacturerName" type="rail:tGenericName" use="required">
+      <xs:annotation>
+        <xs:documentation>name of manufacturer</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="manufacturerType" type="rail:tElementDescription" use="required">
+      <xs:annotation>
+        <xs:documentation>type description of manufacturer</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="serialNumber" type="xs:string">
+      <xs:annotation>
+        <xs:documentation>serial number from manufacturer for the particular vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tOperator">
+    <xs:annotation>
+      <xs:documentation>container for descriptive data of the vehicle operator</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aOperator" />
+    <xs:attributeGroup ref="rail:aTimePeriod" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aOperator">
+    <xs:attribute name="operatorName" type="rail:tGenericName" use="required">
+      <xs:annotation>
+        <xs:documentation>name of vehicle operator</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="operatorClass" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation>vehicle class description of operator or complete identifier number in case of particular vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tEngine">
+    <xs:annotation>
+      <xs:documentation>engine data about a motor car or locomotive</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aEngine" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aEngine">
+    <xs:attribute name="axleDriveType" type="rail:tAxleDriveType">
+      <xs:annotation>
+        <xs:documentation>way of transmitting the torque onto axle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="haulageLoad" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>permissible load attached to the vehicle in metric tons</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tStorage">
+    <xs:annotation>
+      <xs:documentation>technical data of energy storage device</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aStorage" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aStorage">
+    <xs:attribute name="maximumCurrentCharging" type="rail:tCurrentAmpere" use="required">
+      <xs:annotation>
+        <xs:documentation>The maximum current in A while charging the energy storage.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maximumCurrentDischarging" type="rail:tCurrentAmpere" use="required">
+      <xs:annotation>
+        <xs:documentation>The maximum current in A while discharging the energy storage.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maximumPowerCharging" type="rail:tPowerWatt" use="required">
+      <xs:annotation>
+        <xs:documentation>The maximum power in W while charging the energy storage.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maximumPowerDischarging" type="rail:tPowerWatt" use="required">
+      <xs:annotation>
+        <xs:documentation>The maximum power in W while discharging the energy storage.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maximumChargingEnergy" type="rail:tEnergyKiloWattHours" use="required">
+      <xs:annotation>
+        <xs:documentation>The maximum energy in kWh charging to the energy storage.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="chargingEfficiency" type="rail:tOneToZero">
+      <xs:annotation>
+        <xs:documentation>The efficiency while charging the energy storage.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="dischargingEfficiency" type="rail:tOneToZero">
+      <xs:annotation>
+        <xs:documentation>The efficiency while discharging the energy storage.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="meanStorageEfficiency" type="rail:tOneToZero">
+      <xs:annotation>
+        <xs:documentation>The mean efficiency of the energy storage.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tPropulsion">
+    <xs:annotation>
+      <xs:documentation>technical data about the propulsion system of a vehicle</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aElectrificationSystem">
+          <xs:annotation>
+            <xs:documentation>type of power supply system for electric vehicles (voltage + frequency)</xs:documentation>
+          </xs:annotation>
+        </xs:attributeGroup>
+        <xs:attributeGroup ref="rail:aPropulsion" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aPropulsion">
+    <xs:attribute name="power" type="rail:tPowerWatt" use="required">
+      <xs:annotation>
+        <xs:documentation>installed power of propulsuion system per vehicle in Watt</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="powerType" type="rail:tMotivePowerType" use="required">
+      <xs:annotation>
+        <xs:documentation>type of power for propulsuion system in the vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="transmission" type="rail:tTransmission">
+      <xs:annotation>
+        <xs:documentation>type of transmission system in vehicle (mainly for diesel cars)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="controlType" type="rail:tPropulsionControlType">
+      <xs:annotation>
+        <xs:documentation>type of control for propulsuion system in the vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maxTractEffort" type="rail:tEffortNewton">
+      <xs:annotation>
+        <xs:documentation>maximum tractive effort per vehicle in Newton (to be used in conjunction with 'tractiveEffort' element)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="rotationMassFactor" type="xs:decimal">
+      <xs:annotation>
+        <xs:documentation>factor for increased running resistance by rotating masses of propulsion system</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="additionalRotationMass" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>figure for increased running resistance by rotating masses of propulsion system</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="rackTraction" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>DEPRECATED: flag, whether the vehicle comprises equipment for use on rack railways</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="remoteControl" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>flag, whether the vehicle can be remotely controlled</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="numberNotches" type="rail:tCounter">
+      <xs:annotation>
+        <xs:documentation>number of notches of propulsion system switch gear</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="wheelDiameter" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>nominal diameter of driven wheels in m</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maxBrakeEffort" type="rail:tEffortNewton">
+      <xs:annotation>
+        <xs:documentation>maximum braking effort of propulsion system per vehicle in N (to be used in conjunction with 'brakeEffort' element)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maxBrakePower" type="rail:tPowerWatt">
+      <xs:annotation>
+        <xs:documentation>maximum braking power in W for regenerative braking</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="totalTractEfficiency" type="rail:tOneToZero">
+      <xs:annotation>
+        <xs:documentation>the average efficiency of the entire propulsion system in traction mode</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="totalBrakeEfficiency" type="rail:tOneToZero">
+      <xs:annotation>
+        <xs:documentation>the average efficiency of the entire propulsion system in braking mode</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="tractionOffUndervoltageThreshold" type="rail:tVoltageVolt">
+      <xs:annotation>
+        <xs:documentation>undervoltage threshold to switch off tration power in case net voltage out of limit</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="zeroSpeedCurrentLimitation" type="rail:tCurrentAmpere">
+      <xs:annotation>
+        <xs:documentation>current limitation in Amps at zero speed</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maxRegenerativeVoltage" type="rail:tVoltageVolt">
+      <xs:annotation>
+        <xs:documentation>maximum voltage in Volts for regenerative braking</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="speedRange" type="rail:tSpeedRangeType">
+      <xs:annotation>
+        <xs:documentation>additional information, whether this propulsion dataset is for the normal, slow or fast speed range of the engine</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="forwardSpeed" type="rail:tSpeedKmPerHour">
+      <xs:annotation>
+        <xs:documentation>permissible speed with front ahead (normal direction)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="reverseSpeed" type="rail:tSpeedKmPerHour">
+      <xs:annotation>
+        <xs:documentation>permissible speed with tail ahead (reverse direction)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="activationStandstill" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>propulsion system can be activated only in standstill</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tElectrificationSystem">
+    <xs:annotation>
+      <xs:documentation>description of the electrification system</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aElectrificationSystem" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aElectrificationSystem">
+    <xs:annotation>
+      <xs:documentation>nominal values (voltage + frequency) of electrification system</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="voltage" type="rail:tVoltageVolt">
+      <xs:annotation>
+        <xs:documentation>as values (not enumeration)!!</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="frequency" type="rail:tFrequencyHertz">
+      <xs:annotation>
+        <xs:documentation>for DC the frequency shall be set to Zero</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tMotivePowerType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="electric" />
+          <xs:enumeration value="diesel" />
+          <xs:enumeration value="steam" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tTransmission">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="electric" />
+          <xs:enumeration value="hydraulic" />
+          <xs:enumeration value="hydromechanical" />
+          <xs:enumeration value="mechanical" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tModulationType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="analogue" />
+          <xs:enumeration value="digital" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tMonitoring">
+    <xs:annotation>
+      <xs:documentation>types of signalling systems fitted to the vehicle</xs:documentation>
+    </xs:annotation>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aMonitoringGeneric">
+    <xs:attribute name="onBoardUnitID" type="xs:string">
+      <xs:annotation>
+        <xs:documentation>identification of the on-board unit used for addressing within communication</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="softwareVersion" type="rail:tVersionNumber">
+      <xs:annotation>
+        <xs:documentation>version of installed software of the system</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tETCS">
+    <xs:annotation>
+      <xs:documentation>container for installed capabilities with respect to ETCS</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aMonitoringGeneric" />
+        <xs:attributeGroup ref="rail:aETCS" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aETCS">
+    <xs:attribute name="srsVersion" type="rail:tVersionNumber">
+      <xs:annotation>
+        <xs:documentation>Version of ETCS language (SRS edition) installed</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="level_0" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>on-board unit supports level 0</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="level_1" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>on-board unit supports level 1</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="level_2" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>on-board unit supports level 2</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="level_3" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>on-board unit supports level 3</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tSpecificTransmissionModule">
+    <xs:annotation>
+      <xs:documentation>container for installed special transmission modules</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aMonitoringGeneric" />
+        <xs:attributeGroup ref="rail:aSpecificTransmissionModule" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aSpecificTransmissionModule">
+    <xs:attribute name="nationalSystemRef" type="rail:tGenericRef" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTrainRadio">
+    <xs:annotation>
+      <xs:documentation>container for installed train radio systems</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aMonitoringGeneric" />
+        <xs:attributeGroup ref="rail:aTrainRadio" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTrainRadio">
+    <xs:attribute name="modulation" type="rail:tModulationType" />
+  </xs:attributeGroup>
+  <xs:simpleType name="tRadioSystem">
+    <xs:annotation>
+      <xs:documentation>list of available radio systems for communication like 'GSM-R'</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="rail:tGenericName" />
+  </xs:simpleType>
+
+  <xs:complexType name="tOtherEquipment">
+    <xs:annotation>
+      <xs:documentation>container for other installed train equipment (non-safety)</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aMonitoringGeneric" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tTransformer">
+    <xs:annotation>
+      <xs:documentation>technical data of main transformer</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aAssemblyNameNumber">
+      <xs:annotation>
+        <xs:documentation>number of transformers per vehicle and their type description</xs:documentation>
+      </xs:annotation>
+    </xs:attributeGroup>
+    <xs:attributeGroup ref="rail:aTransformer" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTransformer">
+    <xs:attribute name="ferrumResistance" type="rail:tResistanceOhm">
+      <xs:annotation>
+        <xs:documentation>resistance of iron core of one transformer in Ohms (open-circuit core loss)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="additionalResistance" type="rail:tResistanceOhm">
+      <xs:annotation>
+        <xs:documentation>additional resistance of one transformer in Ohms due to non-sinusoid currents (stray loss)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="mainInductance" type="rail:tInductanceHenry">
+      <xs:annotation>
+        <xs:documentation>main inductance of one transformer in H</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="meanEfficiency" type="rail:tOneToZero">
+      <xs:annotation>
+        <xs:documentation>The transformer mean efficiency in the range 0..1.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tWinding">
+    <xs:annotation>
+      <xs:documentation>technical data of transformer winding</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aWinding" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aWinding">
+    <xs:attribute name="assemblyName" type="rail:tGenericName" use="required">
+      <xs:annotation>
+        <xs:documentation>type of transformer winding as descriptive name</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nominalVoltage" type="rail:tVoltageVolt">
+      <xs:annotation>
+        <xs:documentation>nominal voltage of transformer winding (primary side) in Volts</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nominalCurrent" type="rail:tCurrentAmpere">
+      <xs:annotation>
+        <xs:documentation>nominal current of transformer winding (primary side) in Amps</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="transformationRatio" type="xs:decimal">
+      <xs:annotation>
+        <xs:documentation>transformation ratio of transformer winding (primary/secondary voltage)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="primaryResistance" type="rail:tResistanceOhm">
+      <xs:annotation>
+        <xs:documentation>resistance of primary winding of one transformer in Ohms</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="secondaryResistance" type="rail:tResistanceOhm">
+      <xs:annotation>
+        <xs:documentation>resistance of secondary winding of one transformer in Ohms transformed to primary side</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="primaryLeakageInductance" type="rail:tInductanceHenry">
+      <xs:annotation>
+        <xs:documentation>leakage inductance of primary winding of one transformer in H</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="secondaryLeakageInductance" type="rail:tInductanceHenry">
+      <xs:annotation>
+        <xs:documentation>leakage inductance of secondary winding of one transformer in H transformed to primary side</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tFourQuadrantChopper">
+    <xs:annotation>
+      <xs:documentation>technical data of inverter between OHL/transformer and link circuit</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aAssemblyNameNumber">
+      <xs:annotation>
+        <xs:documentation>number of four-quadrant choppers installed per vehicle and their type description</xs:documentation>
+      </xs:annotation>
+    </xs:attributeGroup>
+    <xs:attributeGroup ref="rail:aFourQuadrantChopper" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aFourQuadrantChopper">
+    <xs:attribute name="meanPhi" type="rail:tAngleDegFullCircle">
+      <xs:annotation>
+        <xs:documentation>average phase angle phi of four-quadrant-chopper (in traction mode)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="meanPhiRegeneration" type="rail:tAngleDegFullCircle">
+      <xs:annotation>
+        <xs:documentation>average phase angle phi of four-quadrant-chopper in regeneration mode</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="meanEfficiency" type="rail:tOneToZero">
+      <xs:annotation>
+        <xs:documentation>The four quadrant chopper mean efficiency in the range 0..1.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tLink">
+    <xs:attributeGroup ref="rail:aNominalElectrical" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aNominalElectrical">
+    <xs:annotation>
+      <xs:documentation>nominal values (voltage + current) of an electrical circuit</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="nominalVoltage" type="rail:tVoltageVolt" use="required">
+      <xs:annotation>
+        <xs:documentation>nominal voltage of circuit in Volts</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nominalCurrent" type="rail:tCurrentAmpere" use="required">
+      <xs:annotation>
+        <xs:documentation>nominal current of circuit in Amps</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTractionInverter">
+    <xs:annotation>
+      <xs:documentation>technical data of inverter between link circuit and motors</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aAssemblyNameNumber">
+      <xs:annotation>
+        <xs:documentation>number of traction inverters installed per vehicle and their type description</xs:documentation>
+      </xs:annotation>
+    </xs:attributeGroup>
+    <xs:attributeGroup ref="rail:aTractionInverter" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTractionInverter">
+    <xs:attribute name="meanEfficiency" type="rail:tOneToZero">
+      <xs:annotation>
+        <xs:documentation>The traction inverter mean efficiency in the range 0..1.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTractionMotor">
+    <xs:annotation>
+      <xs:documentation>technical data of traction motor</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aAssemblyNameNumber">
+      <xs:annotation>
+        <xs:documentation>number of traction motors per vehicle and their type description</xs:documentation>
+      </xs:annotation>
+    </xs:attributeGroup>
+    <xs:attributeGroup ref="rail:aTractionMotor" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTractionMotor">
+    <xs:attribute name="nominalPower" type="rail:tPowerWatt">
+      <xs:annotation>
+        <xs:documentation>rated power consumption of one traction motor in Watt</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nominalVoltage" type="rail:tVoltageVolt">
+      <xs:annotation>
+        <xs:documentation>rated voltage of traction motor in Volts</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nominalCurrent" type="rail:tCurrentAmpere">
+      <xs:annotation>
+        <xs:documentation>rated current of one traction motor in Amps</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nominalFrequency" type="rail:tFrequencyHertz">
+      <xs:annotation>
+        <xs:documentation>rated frequency of traction motor windings in Hz</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nominalFlux" type="rail:tFluxVoltSecond">
+      <xs:annotation>
+        <xs:documentation>nominal flux of one traction motor in Volt*sec</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nominalPhi" type="rail:tAngleDegFullCircle">
+      <xs:annotation>
+        <xs:documentation>nominal phase angle phi of traction motor in the range -180..+180</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="numberPolePairs" type="rail:tCounter">
+      <xs:annotation>
+        <xs:documentation>number of pole pairs of one traction motor</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="statorResistance" type="rail:tResistanceOhm">
+      <xs:annotation>
+        <xs:documentation>resistance of stator winding of one traction motor in Ohms</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="rotorResistance" type="rail:tResistanceOhm">
+      <xs:annotation>
+        <xs:documentation>resistance of rotor winding of one traction motor in Ohms</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="ferrumResistance" type="rail:tResistanceOhm">
+      <xs:annotation>
+        <xs:documentation>resistance of iron core of one traction motor in Ohms (open-circuit core loss)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="additionalResistance" type="rail:tResistanceOhm">
+      <xs:annotation>
+        <xs:documentation>additional resistance of one traction motor in Ohms due to non-sinusoid currents (stray loss)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="mainInductance" type="rail:tInductanceHenry">
+      <xs:annotation>
+        <xs:documentation>main inductance of one traction motor in H</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="statorLeakageInductance" type="rail:tInductanceHenry">
+      <xs:annotation>
+        <xs:documentation>leakage inductance of stator winding of one traction motor in H</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="rotorLeakageInductance" type="rail:tInductanceHenry">
+      <xs:annotation>
+        <xs:documentation>leakage inductance of rotor winding of one traction motor in H</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nominalRevolutions" type="rail:tRotationalFrequencyRevolutionsPerMinute">
+      <xs:annotation>
+        <xs:documentation>nominal number of revolutions in revolutions per minute (rpm)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="meanEfficiency" type="rail:tOneToZero">
+      <xs:annotation>
+        <xs:documentation>The traction motor mean efficiency in the range 0..1.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tDieselEngine">
+    <xs:annotation>
+      <xs:documentation>technical data of diesel engine</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aAssemblyNameNumber">
+      <xs:annotation>
+        <xs:documentation>number of diesel engines per vehicle and their type description (for traction)</xs:documentation>
+      </xs:annotation>
+    </xs:attributeGroup>
+    <xs:attributeGroup ref="rail:aDieselEngine" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aDieselEngine">
+    <xs:attribute name="nominalPower" type="rail:tPowerWatt">
+      <xs:annotation>
+        <xs:documentation>nominal power per diesel engine in Watt</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="availableAuxiliaryPower" type="rail:tPowerWatt">
+      <xs:annotation>
+        <xs:documentation>nominal power per diesel engine in Watt leftover for auxiliary supply</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="fuelCapacity" type="rail:tVolumeLitre">
+      <xs:annotation>
+        <xs:documentation>fuel capacity of the entire diesel tank in liters</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="meanEfficiency" type="rail:tOneToZero">
+      <xs:annotation>
+        <xs:documentation>average efficiency of the diesel engine in the range 0..1</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tGear">
+    <xs:annotation>
+      <xs:documentation>technical data of transmission system between motor and wheel</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aAssemblyNameNumber">
+      <xs:annotation>
+        <xs:documentation>number of gear assemblies per vehicle and their type description</xs:documentation>
+      </xs:annotation>
+    </xs:attributeGroup>
+    <xs:attributeGroup ref="rail:aGear" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aGear">
+    <xs:attribute name="gearRatio" type="xs:decimal">
+      <xs:annotation>
+        <xs:documentation>gear ratio as decimal value</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="meanEfficiency" type="rail:tOneToZero">
+      <xs:annotation>
+        <xs:documentation>the gear mean efficiency in the range 0..1.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="designType" type="rail:tGenericName">
+      <xs:annotation>
+        <xs:documentation>design type of the gear</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="manufacturerName" type="rail:tGenericName">
+      <xs:annotation>
+        <xs:documentation>manufacturer of the gear</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nominalPower" type="rail:tPowerWatt">
+      <xs:annotation>
+        <xs:documentation>nominal power of the gear for transmission</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="torqueConversion" type="rail:tTorqueConversionType">
+      <xs:annotation>
+        <xs:documentation>type of torque conversion between motor and axle gear, mainly for diesel-hydraulic vehicles</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tAuxiliarySupply">
+    <xs:attributeGroup ref="rail:aAuxiliarySupply" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aAuxiliarySupply">
+    <xs:attribute name="power" type="rail:tPowerWatt" use="required">
+      <xs:annotation>
+        <xs:documentation>power consumption of constant load by auxiliary equipment in Watt (permanent)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="powerPhi" type="rail:tAngleDegFullCircle">
+      <xs:annotation>
+        <xs:documentation>phase angle phi of constant power of auxiliary load between -180..+180</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="resistance" type="rail:tResistanceOhm">
+      <xs:annotation>
+        <xs:documentation>resistance of constant load by auxiliary equipment in Ohm</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="powerBraking" type="rail:tPowerWatt">
+      <xs:annotation>
+        <xs:documentation>power consumption of constant load by auxiliary equipment in Watt (only during braking mode)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="powerPhiBraking" type="rail:tAngleDegFullCircle">
+      <xs:annotation>
+        <xs:documentation>phase angle phi of constant power of auxiliary load between -180..+180 (only during braking mode)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="resistanceBraking" type="rail:tResistanceOhm">
+      <xs:annotation>
+        <xs:documentation>resistance of constant load by auxiliary equipment in Ohm (only during braking mode)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tAuxiliarySupplySystem">
+    <xs:attributeGroup ref="rail:aElectrificationSystem" />
+    <xs:attribute name="maxPower" type="rail:tPowerWatt" use="required">
+      <xs:annotation>
+        <xs:documentation>maximum power available for auxiliary equipment in this supply system</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="tNationalSystem">
+    <xs:annotation>
+      <xs:documentation>description of installed national train protection/monitoring systems like PZB, CIR-ELKE, TVM, LEA, ...</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aMonitoringGeneric" />
+        <xs:attributeGroup ref="rail:aMonitoringSystem" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aMonitoringSystem">
+    <xs:attribute name="type" type="rail:tNationalSystemsType" use="required">
+      <xs:annotation>
+        <xs:documentation>type of national system as enumeration</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="trainProtectionMedium" type="rail:tTrainProtectionMedium" use="required">
+      <xs:annotation>
+        <xs:documentation>type of transmission medium for the train protection system</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="trainProtectionMonitoring" type="rail:tTrainProtectionMonitoring" use="required">
+      <xs:annotation>
+        <xs:documentation>way of information transmission between lineside and trainborne equipment</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tWagon">
+    <xs:annotation>
+      <xs:documentation>technical and payload data about a car</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aWagon" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aWagon">
+    <xs:attribute name="rotationMassFactor" type="xs:decimal">
+      <xs:annotation>
+        <xs:documentation>factor for increased running resistance by rotating masses of non-motored axles</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="additionalRotationMass" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>additional mass for increased running resistance by rotating masses of non-motored axles</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="kinematicEnvelope" type="rail:tElementDescription">
+      <xs:annotation>
+        <xs:documentation>name of car body kinematic envelope as reference</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="auxiliaryPowerConsumption" type="rail:tPowerWatt">
+      <xs:annotation>
+        <xs:documentation>continuous power consumption in Watt of auxiliaries within one car</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="headShape" type="rail:tHeadShapeType">
+      <xs:annotation>
+        <xs:documentation>basic definition of head shape in order to derive air resistance of the vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="headSurface" type="rail:tAreaSquareMeter">
+      <xs:annotation>
+        <xs:documentation>cross-section area of vehicle front in order to derive air resistance of the vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="bearingType" type="rail:tBearingType">
+      <xs:annotation>
+        <xs:documentation>describes the type of the bearing used for calculating vehicle resistance</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tPassenger">
+    <xs:annotation>
+      <xs:documentation>data for passenger cars</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:ePassengerFacility">
+        <xs:attributeGroup ref="rail:aPassenger" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aPassenger">
+    <xs:attribute name="deck" type="rail:tVerbalCounter">
+      <xs:annotation>
+        <xs:documentation>number of decks per vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="drivingCab" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>flag, whether the vehicle comprises driving cab</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="tilting" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>flag, whether the vehicle comprises tilting capabilities</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="airTightness" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>flag, whether the passenger compartment of the vehicle is air tight/pressure resistant</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="emergencyBrakeDeactivation" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>flag, whether the vehicle comprises a de-activation function of the emergency brake for long tunnels</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tGangway">
+    <xs:annotation>
+      <xs:documentation>description of any gangways of the passenger car to other cars</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aGangway" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aGangway">
+    <xs:attribute name="frontEnd" type="xs:boolean" use="required">
+      <xs:annotation>
+        <xs:documentation>flag, whether there is a gangway at the front end of the vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="rearEnd" type="xs:boolean" use="required">
+      <xs:annotation>
+        <xs:documentation>flag, whether there is a gangway at the rear end of the vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="position" type="rail:tGangwayPosition">
+      <xs:annotation>
+        <xs:documentation>vertical position of the gangway, valid for both sides</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="designType" type="rail:tGangwayDesignType" use="required">
+      <xs:annotation>
+        <xs:documentation>type of design of the gangway</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="floorLevel" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>height of gangways floor above top of rail</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="gangwayHeight" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>height of gangway for passenger use</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="gangwayWidth" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>width of gangway for passenger use</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tGangwayPosition">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="standardUIC" />
+          <xs:enumeration value="upperDeck" />
+          <xs:enumeration value="lowerDeck" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tGangwayDesignType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="unknown" />
+          <xs:enumeration value="standardUIC561" />
+          <xs:enumeration value="special" />
+          <xs:enumeration value="nonPublic" />
+          <xs:enumeration value="sigI" />
+          <xs:enumeration value="sigII" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tDoors">
+    <xs:annotation>
+      <xs:documentation>data about door features for the car</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aDoors" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aDoors">
+    <xs:attribute name="number" type="rail:tCounter">
+      <xs:annotation>
+        <xs:documentation>number of doors per vehicle at each side</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="entranceHeight" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>height of entrance foot plate above rail top</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="entranceLength" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>maximum distance between the doors of the vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="entranceWidth" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>total of all door width of the vehicle at one side</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="footStepHeight" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>height of lowest foot step above rail top</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="lockingSpeed" type="rail:tSpeedKmPerHour">
+      <xs:annotation>
+        <xs:documentation>speed limit for locking the doors during train ride</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTilting">
+    <xs:annotation>
+      <xs:documentation>data for tilting mechanism of passenger cars</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aTilting" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTilting">
+    <xs:attribute name="maxTiltingAngle" type="rail:tAngleDegQuadrant">
+      <xs:annotation>
+        <xs:documentation>maximum tilting angle in degrees</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="actuation" type="rail:tTiltingActuationType">
+      <xs:annotation>
+        <xs:documentation>way of actuating the carbody tilting (active/passive)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="tiltingSpeed" type="rail:tSpeedDegreesPerSecond">
+      <xs:annotation>
+        <xs:documentation>speed of changing the tilting angle in degrees per second</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tGoods">
+    <xs:annotation>
+      <xs:documentation>data for freight cars</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aGoods" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aGoods">
+    <xs:attribute name="load" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>maximum paylod per wagon in metric tons</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="loadArea" type="rail:tAreaSquareMeter">
+      <xs:annotation>
+        <xs:documentation>maximum area to be used for paylod per wagon in square metres</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="volume" type="rail:tVolumeCubicMeter">
+      <xs:annotation>
+        <xs:documentation>available volume for payload per vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="freightCarType" type="rail:tFreightCarType">
+      <xs:annotation>
+        <xs:documentation>simple classification of goods vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="freightCarUICType" type="rail:tGenericName">
+      <xs:annotation>
+        <xs:documentation>classification string of goods vehicle according UIC</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tFreightCarType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="open" />
+          <xs:enumeration value="covered" />
+          <xs:enumeration value="platform" />
+          <xs:enumeration value="refrigerated" />
+          <xs:enumeration value="tank" />
+          <xs:enumeration value="self-discharging" />
+          <xs:enumeration value="special" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:attributeGroup name="aVehicleBrake">
+    <xs:attribute name="loadSwitch" type="rail:tLoadSwitch">
+      <xs:annotation>
+        <xs:documentation>for waggons with "full" / "empty" switch</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="autoBrakePercentage" type="rail:tBrakePercentage">
+      <xs:annotation>
+        <xs:documentation>automatically regulated brake percentages depending on actual load of vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maxAutoBrakeMass" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>maximum brake mass of autimatic brake</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tLoadSwitch">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="empty" />
+      <xs:enumeration value="full" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:complexType name="tEddyCurrentBrake">
+    <xs:annotation>
+      <xs:documentation>technical data of eddy current brake</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aEddyCurrentBrake" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aEddyCurrentBrake">
+    <xs:attribute name="maxPower" type="rail:tPowerWatt" use="required">
+      <xs:annotation>
+        <xs:documentation>maximal power consumption in Watt</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maxEffort" type="rail:tEffortNewton" use="required">
+      <xs:annotation>
+        <xs:documentation>maximal brakeing effort achived in Newton</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="minSpeed" type="rail:tSpeedKmPerHour" use="required">
+      <xs:annotation>
+        <xs:documentation>minimum speed for use of eddy current brake in km/h</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tFormation">
+    <xs:annotation>
+      <xs:documentation>data for a single train formation made of rs-vehicles</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aFormation" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aFormation">
+    <xs:attribute name="formationCount" type="rail:tCounter">
+      <xs:annotation>
+        <xs:documentation>number of similar formations forming that train</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="length" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>entire length of the formation (shall be in accordance with the sum of single vehicles)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="speed" type="rail:tSpeedKmPerHour">
+      <xs:annotation>
+        <xs:documentation>allowed maximum speed for the entire formation (shall be in accordance with single vehicle speed values)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="weight" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>DEPRECATED: weight in metrical tons of the entire formation (shall be in accordance with the sum of single vehicles)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="bruttoWeight" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>brutto weight (vehicles plus payload) in metrical tons of the entire formation (shall be in accordance with the sum of single vehicles)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nettoWeight" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>net weight (payload only) in metrical tons of the entire formation (shall be in accordance with the sum of single vehicles)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="tareWeight" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>tara weight (empty vehicles) in metrical tons of the entire formation (shall be in accordance with the sum of single vehicles)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tVehicleRef">
+    <xs:attributeGroup ref="rail:aVehicleRef" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aVehicleRef">
+    <xs:attribute name="orderNumber" type="rail:tPositiveCounter" use="required">
+      <xs:annotation>
+        <xs:documentation>position of that vehicle (group) in the formation</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="vehicleRef" type="rail:tGenericRef" use="required">
+      <xs:annotation>
+        <xs:documentation>vehicle type as reference</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="vehicleCount" type="rail:tCounter">
+      <xs:annotation>
+        <xs:documentation>number of consecutive vehicles of that type in the formation</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="frontGangway" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>flag, whether there is a gangway at the front end of the vehicle usable</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="rearGangway" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>flag, whether there is a gangway at the rear end of the vehicle usable</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTrainEngine">
+    <xs:attributeGroup ref="rail:aTrainEngine" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTrainEngine">
+    <xs:attribute name="trainMeanAcceleration" type="rail:tAccelerationMeterPerSquareSec">
+      <xs:annotation>
+        <xs:documentation>formation whole mean acceleration in m/s^2</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="trainMaxAcceleration" type="rail:tAccelerationMeterPerSquareSec">
+      <xs:annotation>
+        <xs:documentation>formation whole maximum acceleration in m/s^2</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTrainResistance">
+    <xs:annotation>
+      <xs:documentation>mechanical train resistance vs. speed</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tCurve">
+        <xs:attribute name="tunnelFactor" type="xs:decimal">
+          <xs:annotation>
+            <xs:documentation>factor for increasing air resistance when running through tunnel</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aAssemblyNameNumber">
+    <xs:attribute name="count" type="rail:tCounter" use="required">
+      <xs:annotation>
+        <xs:documentation>number of assemblies per vehicle/unit</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="assemblyName" type="rail:tGenericName" use="required">
+      <xs:annotation>
+        <xs:documentation>type of assembly as descriptive name</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tLosses">
+    <xs:annotation>
+      <xs:documentation>losses curve vs. speed, for use with mechanical and electrical systems</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tCurve" />
+    </xs:complexContent>
+  </xs:complexType>
 
+  <xs:complexType name="tEffortCurve">
     <xs:annotation>
-        <xs:documentation>
-        Copyright (c) railML.org; All Rights Reserved. 
+      <xs:documentation>effort curve vs. speed, for use with traction and braking</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tCurve" />
+    </xs:complexContent>
+  </xs:complexType>
 
-        This work is licensed under a Creative Commons Attribution 2.0 License. 
-        https://creativecommons.org/licenses/by/2.0/
+  <xs:complexType name="tCurrentCurve">
+    <xs:annotation>
+      <xs:documentation>vehicle current curve vs. speed, for use with traction and braking</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tCurve" />
+    </xs:complexContent>
+  </xs:complexType>
 
-        For further information see: https://www.railml.org/
+  <xs:complexType name="tCurrentLimitation">
+    <xs:annotation>
+      <xs:documentation>net current limitation curve vs. net voltage, for use with traction and braking</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tCurve" />
+    </xs:complexContent>
+  </xs:complexType>
 
-        Content of this file: 
-        XML Schema for railML(R) 2.0 
-        Definition of attribute groups, simple and complex types, 
-        used by rollingstock sub schema (RS)
-        </xs:documentation>
+  <xs:complexType name="tEfficiencyCurve">
+    <xs:annotation>
+      <xs:documentation>subsystem efficiency curve vs. speed</xs:documentation>
     </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tCurve" />
+    </xs:complexContent>
+  </xs:complexType>
 
-	<xs:include schemaLocation="railwayUnits.xsd" />
-	<xs:include schemaLocation="railwayBaseTypes.xsd" />
-	
-   <xs:import namespace="https://www.w3.org/XML/1998/namespace"
-    schemaLocation="https://www.w3.org/2001/03/xml.xsd" />  
-
-	<!--*********************************************************-->
-	<!-- Support for MathML2 -->
-	<!--*********************************************************-->
-
-	<xs:import namespace="https://www.w3.org/1998/Math/MathML"
-		schemaLocation="https://www.w3.org/Math/XMLSchema/mathml2/mathml2.xsd" />
-
-	<!--*********************************************************-->
-	<!-- Rollingstock itself -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tRollingstock">
-		<xs:annotation>
-			<xs:documentation>
-				rolling stock data root
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tGlobalElementWithMetadata">
-				<xs:attributeGroup ref="rail:aRollingstock" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aRollingstock">
-		<xs:attribute name="timetableRef" type="rail:tGenericRef">
-			<xs:annotation>
-				<xs:documentation>
-					identifier for status of related timetable data as
-					reference
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="infrastructureRef" type="rail:tGenericRef">
-			<xs:annotation>
-				<xs:documentation>
-					identifier for status of related infrastructure data
-					as reference
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Vehicle -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tVehicle">
-		<xs:annotation>
-			<xs:documentation>vehicle related data</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aVehicle" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aVehicle">
-		<xs:attribute name="vehicleFamilyRef" type="rail:tGenericRef">
-			<xs:annotation>
-				<xs:documentation>
-					reference to 'id' in vehicle data in order to obtain
-					all data common for the vehicle family not explicitly 
-					specified in this element of an individual vehicle
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="axleSequence" type="xs:string">
-			<xs:annotation>
-				<xs:documentation>
-					description of axle sequence
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="numberDrivenAxles" type="rail:tCounter">
-			<xs:annotation>
-				<xs:documentation>
-					the number of motored axles used for traction
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="numberNonDrivenAxles" type="rail:tCounter">
-			<xs:annotation>
-				<xs:documentation>
-					the number of axles not used for traction (without
-					motor or gear)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="trackGauge" type="rail:tLengthM">
-			<xs:annotation>
-				<xs:documentation>
-					the track guage in metres the vehicles is mainly
-					used for
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="length" type="rail:tLengthM" use="required">
-			<xs:annotation>
-				<xs:documentation>
-					vehicle length in metres
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="speed" type="rail:tSpeedKmPerHour" use="required">
-			<xs:annotation>
-				<xs:documentation>
-					maximum allowed vehicle speed in km/h
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="bruttoWeight" type="rail:tWeightTons"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					total weight of vehicle with full payload in metric
-					tons
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="nettoWeight" type="rail:tWeightTons">
-			<xs:annotation>
-				<xs:documentation>
-					tare weight of vehicle (empty) in metric tons
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="bruttoAdhesionWeight" type="rail:tWeightTons">
-			<xs:annotation>
-				<xs:documentation>
-					portion of total vehicle weight on motored axles in
-					metric tons (adhesion weight)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="nettoAdhesionWeight" type="rail:tWeightTons">
-			<xs:annotation>
-				<xs:documentation>
-					portion of tare vehicle weight on motored axles in
-					metric tons (adhesion weight)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="resistanceFactor" type="xs:decimal">
-			<xs:annotation>
-				<xs:documentation>
-					running resistance of vehicle in N/kN (to be used in
-					conjungtion with 'trainResistance' element
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Manufacturer -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tManufacturer">
-		<xs:annotation>
-			<xs:documentation>
-				container for descriptive data of the vehicle
-				manufacturer
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aManufacturer" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aManufacturer">
-		<xs:attribute name="manufacturerName" type="rail:tGenericName"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					name of manufacturer
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="manufacturerType"
-			type="rail:tElementDescription" use="required">
-			<xs:annotation>
-				<xs:documentation>
-					type description of manufacturer
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="serialNumber" type="xs:string">
-			<xs:annotation>
-				<xs:documentation>
-					serial number from manufacturer for the particular
-					vehicle
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Operator -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tOperator">
-		<xs:annotation>
-			<xs:documentation>
-				container for descriptive data of the vehicle operator
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aOperator" />
-		<xs:attributeGroup ref="rail:aTimePeriod" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aOperator">
-		<xs:attribute name="operatorName" type="rail:tGenericName"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					name of vehicle operator
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="operatorClass" type="xs:string"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					vehicle class description of operator or complete
-					identifier number in case of particular vehicle
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Propulsion -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tPropulsion">
-		<xs:annotation>
-			<xs:documentation>
-				technical data about the propulsion system of a vehicle
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aElectrificationSystem">
-			<xs:annotation>
-				<xs:documentation>
-					type of power supply system for electric vehicles
-					(voltage + frequency)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attributeGroup>
-		<xs:attributeGroup ref="rail:aPropulsion" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aPropulsion">
-		<xs:attribute name="power" type="rail:tPowerWatt" use="required">
-			<xs:annotation>
-				<xs:documentation>
-					installed power of propulsuion system per vehicle in
-					Watt
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="powerType" type="rail:tMotivePowerType"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					type of power for propulsuion system in the vehicle
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="transmission" type="rail:tTransmission"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					type of transmission system in vehicle (mainly for
-					diesel cars)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="maxTractEffort" type="rail:tEffortNewton">
-			<xs:annotation>
-				<xs:documentation>
-					maximum tractive effort per vehicle in Newton (to be
-					used in conjunction with 'tractiveEffort' element)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="rotationMassFactor" type="xs:decimal">
-			<xs:annotation>
-				<xs:documentation>
-					factor for increased running resistance by rotating
-					masses of propulsion system
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="rackTraction" type="xs:boolean">
-			<xs:annotation>
-				<xs:documentation>
-					flag, whether the vehicle comprises equipment for
-					use on rack railways
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="remoteControl" type="xs:boolean">
-			<xs:annotation>
-				<xs:documentation>
-					flag, whether the vehicle can be remotely controlled
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="numberNotches" type="rail:tCounter">
-			<xs:annotation>
-				<xs:documentation>
-					number of notches of propulsion system switch gear
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="wheelDiameter" type="rail:tLengthM">
-			<xs:annotation>
-				<xs:documentation>
-					nominal diameter of driven wheels in m
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="maxBrakeEffort" type="rail:tEffortNewton">
-			<xs:annotation>
-				<xs:documentation>
-					maximum braking effort of propulsion system per
-					vehicle in N (to be used in conjunction with
-					'brakeEffort' element)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="maxBrakePower" type="rail:tPowerWatt">
-			<xs:annotation>
-				<xs:documentation>
-					maximum braking power in W for regenerative braking
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="totalTractEfficiency" type="rail:tOneToZero">
-			<xs:annotation>
-				<xs:documentation>
-					the average efficiency of the entire propulsion
-					system in traction mode
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="totalBrakeEfficiency" type="rail:tOneToZero">
-			<xs:annotation>
-				<xs:documentation>
-					the average efficiency of the entire propulsion
-					system in braking mode
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="tractionOffUndervoltageThreshold"
-			type="rail:tVoltageVolt">
-			<xs:annotation>
-				<xs:documentation>
-					undervoltage threshold to switch off tration power
-					in case net voltage out of limit
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="zeroSpeedCurrentLimitation" type="rail:tCurrentAmpere">
-			<xs:annotation>
-				<xs:documentation>current limitation in Amps at zero speed</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="maxRegenerativeVoltage" type="rail:tVoltageVolt">
-			<xs:annotation>
-				<xs:documentation>maximum voltage in Volts for regenerative braking</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- ElectrificationSystem -->
-	<!-- Information on electrification system as values (not enumeration)!!-->
-	<!-- for DC the frequency shall be set to Zero -->
-	<!--*********************************************************-->
-
-	<xs:attributeGroup name="aElectrificationSystem">
-		<xs:annotation>
-			<xs:documentation>
-				nominal values (voltage + frequency) of electrification
-				system
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attribute name="voltage" type="rail:tVoltageVolt" />
-		<xs:attribute name="frequency" type="rail:tFrequencyHertz" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Type of Motive Power -->
-	<!--*********************************************************-->
-
-    <xs:simpleType name="tMotivePowerType">
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="electric" />
-                    <xs:enumeration value="diesel" />
-                    <xs:enumeration value="steam" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Type of Transmission System -->
-	<!--*********************************************************-->
-
-    <xs:simpleType name="tTransmission">
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="electric" />
-                    <xs:enumeration value="hydraulic" />
-                    <xs:enumeration value="mechanical" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Type of Radio Modulation -->
-	<!--*********************************************************-->
-
-    <xs:simpleType name="tModulationType">
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="analogue" />
-                    <xs:enumeration value="digital" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- MonitoringSystem -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tMonitoring">
-		<xs:annotation>
-			<xs:documentation>
-				types of signalling systems fitted to the vehicle
-			</xs:documentation>
-		</xs:annotation>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aMonitoringGeneric">
-		<xs:attribute name="onBoardUnitID" type="xs:string">
-			<xs:annotation>
-				<xs:documentation>
-					identification of the on-board unit used for addressing within communication
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="softwareVersion" type="rail:tVersionNumber">
-			<xs:annotation>
-				<xs:documentation>
-					version of installed software of the system
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- ETCS -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tETCS">
-		<xs:annotation>
-			<xs:documentation>
-				container for installed capabilities with respect to
-				ETCS
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aMonitoringGeneric" />
-				<xs:attributeGroup ref="rail:aETCS" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aETCS">
-		<xs:attribute name="srsVersion" type="rail:tVersionNumber">
-			<xs:annotation>
-				<xs:documentation>
-					Version of ETCS language (SRS edition) installed
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="level_0" type="xs:boolean">
-			<xs:annotation>
-				<xs:documentation>
-					on-board unit supports level 0
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="level_1" type="xs:boolean">
-			<xs:annotation>
-				<xs:documentation>
-					on-board unit supports level 1
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="level_2" type="xs:boolean">
-			<xs:annotation>
-				<xs:documentation>
-					on-board unit supports level 2
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="level_3" type="xs:boolean">
-			<xs:annotation>
-				<xs:documentation>
-					on-board unit supports level 3
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Special Transmission Modules -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tSpecificTransmissionModule">
-		<xs:annotation>
-			<xs:documentation>
-				container for installed special transmission modules
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aMonitoringGeneric" />
-				<xs:attributeGroup ref="rail:aSpecificTransmissionModule" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aSpecificTransmissionModule">
-		<xs:attribute name="nationalSystemRef" type="rail:tGenericRef" />
-	</xs:attributeGroup>
-	
-	<!--*********************************************************-->
-	<!-- Train Radio -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTrainRadio">
-		<xs:annotation>
-			<xs:documentation>
-				container for installed train radio systems
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aMonitoringGeneric" />
-				<xs:attributeGroup ref="rail:aTrainRadio" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-	
-	<xs:attributeGroup name="aTrainRadio">
-		<xs:attribute name="modulation" type="rail:tModulationType" />
-	</xs:attributeGroup>
-
-	<xs:simpleType name="tRadioSystem">
-		<xs:annotation>
-			<xs:documentation>
-				list of available radio systems for communication like 'GSM-R'
-			</xs:documentation>
-		</xs:annotation>
-		<xs:restriction base="rail:tGenericName" />
-	</xs:simpleType>
-	
-	<!--*********************************************************-->
-	<!-- other (non-safety) Train Equipment -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tOtherEquipment">
-		<xs:annotation>
-			<xs:documentation>
-				container for other installed train equipment
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aMonitoringGeneric" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-	
-	<!--*********************************************************-->
-	<!-- Transformer -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTransformer">
-		<xs:annotation>
-			<xs:documentation>
-				technical data of main transformer
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aAssemblyNameNumber">
-			<xs:annotation>
-				<xs:documentation>
-					number of transformers per vehicle and their type
-					description
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attributeGroup>
-		<xs:attributeGroup ref="rail:aTransformer" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aTransformer">
-		<xs:attribute name="ferrumResistance" type="rail:tResistanceOhm">
-			<xs:annotation>
-				<xs:documentation>
-					resistance of iron core of one transformer in Ohms
-					(open-circuit core loss)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="additionalResistance" type="rail:tResistanceOhm">
-			<xs:annotation>
-				<xs:documentation>
-					additional resistance of one transformer in Ohms due
-					to non-sinusoid currents (stray loss)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="mainInductance" type="rail:tInductanceHenry">
-			<xs:annotation>
-				<xs:documentation>
-					main inductance of one transformer in H
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="meanEfficiency" type="rail:tOneToZero">
-			<xs:annotation>
-				<xs:documentation>
-					The transformer mean efficiency in the range 0..1.
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Winding -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tWinding">
-		<xs:annotation>
-			<xs:documentation>
-				technical data of transformer winding
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aWinding" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aWinding">
-		<xs:attribute name="assemblyName" type="rail:tGenericName"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					type of transformer winding as descriptive name
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="nominalVoltage" type="rail:tVoltageVolt">
-			<xs:annotation>
-				<xs:documentation>
-					nominal voltage of transformer winding (primary
-					side) in Volts
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="nominalCurrent" type="rail:tCurrentAmpere">
-			<xs:annotation>
-				<xs:documentation>
-					nominal current of transformer winding (primary
-					side) in Amps
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="transformationRatio" type="xs:decimal">
-			<xs:annotation>
-				<xs:documentation>
-					transformation ratio of transformer winding
-					(primary/secondary voltage)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="primaryResistance" type="rail:tResistanceOhm">
-			<xs:annotation>
-				<xs:documentation>
-					resistance of primary winding of one transformer in
-					Ohms
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="secondaryResistance" type="rail:tResistanceOhm">
-			<xs:annotation>
-				<xs:documentation>
-					resistance of secondary winding of one transformer 
-					in Ohms transformed to primary side
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="primaryLeakageInductance"
-			type="rail:tInductanceHenry">
-			<xs:annotation>
-				<xs:documentation>
-					leakage inductance of primary winding of one
-					transformer in H
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="secondaryLeakageInductance"
-			type="rail:tInductanceHenry">
-			<xs:annotation>
-				<xs:documentation>
-					leakage inductance of secondary winding of one
-					transformer in H transformed to primary side
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- four-Quadrant-Chopper -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tFourQuadrantChopper">
-		<xs:annotation>
-			<xs:documentation>
-				technical data of inverter between OHL/transformer and
-				link circuit
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aAssemblyNameNumber">
-			<xs:annotation>
-				<xs:documentation>
-					number of four-quadrant choppers installed per
-					vehicle and their type description
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attributeGroup>
-		<xs:attributeGroup ref="rail:aFourQuadrantChopper" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aFourQuadrantChopper">
-		<xs:attribute name="meanPhi" type="rail:tAngleDegFullCircle">
-			<xs:annotation>
-				<xs:documentation>
-					average phase angle phi of
-					four-quadrant-chopper
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="meanEfficiency" type="rail:tOneToZero">
-			<xs:annotation>
-				<xs:documentation>
-					The four quadrant chopper mean efficiency in the
-					range 0..1.
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Link circuit -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tLink">
-		<xs:attributeGroup ref="rail:aNominalElectrical" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aNominalElectrical">
-		<xs:annotation>
-			<xs:documentation>
-				nominal values (voltage + current) of an electrical
-				circuit
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attribute name="nominalVoltage" type="rail:tVoltageVolt"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					nominal voltage of circuit in Volts
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="nominalCurrent" type="rail:tCurrentAmpere"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					nominal current of circuit in Amps
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- TractionInverter -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTractionInverter">
-		<xs:annotation>
-			<xs:documentation>
-				technical data of inverter between link circuit and
-				motors
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aAssemblyNameNumber">
-			<xs:annotation>
-				<xs:documentation>
-					number of traction inverters installed per vehicle
-					and their type description
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attributeGroup>
-		<xs:attributeGroup ref="rail:aTractionInverter" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aTractionInverter">
-		<xs:attribute name="meanEfficiency" type="rail:tOneToZero">
-			<xs:annotation>
-				<xs:documentation>
-					The traction inverter mean efficiency in the range
-					0..1.
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- TractionMotor -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTractionMotor">
-		<xs:annotation>
-			<xs:documentation>
-				technical data of traction motor
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aAssemblyNameNumber">
-			<xs:annotation>
-				<xs:documentation>
-					number of traction motors per vehicle and their type
-					description
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attributeGroup>
-		<xs:attributeGroup ref="rail:aTractionMotor" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aTractionMotor">
-		<xs:attribute name="nominalPower" type="rail:tPowerWatt">
-			<xs:annotation>
-				<xs:documentation>
-					rated power consumption of one traction motor in
-					Watt
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="nominalVoltage" type="rail:tVoltageVolt">
-			<xs:annotation>
-				<xs:documentation>
-					rated voltage of traction motor in Volts
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="nominalCurrent" type="rail:tCurrentAmpere">
-			<xs:annotation>
-				<xs:documentation>
-					rated current of one traction motor in Amps
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="nominalFrequency" type="rail:tFrequency">
-			<xs:annotation>
-				<xs:documentation>
-					rated frequency of traction motor windings in Hz
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="nominalFlux" type="rail:tFluxVoltSecond">
-			<xs:annotation>
-				<xs:documentation>
-					nominal flux of one traction motor in Volt*sec
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="nominalPhi" type="rail:tAngleDegFullCircle">
-			<xs:annotation>
-				<xs:documentation>
-					nominal phase angle phi of traction motor in the range -180..+180
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="numberPolePairs" type="rail:tCounter">
-			<xs:annotation>
-				<xs:documentation>
-					number of pole pairs of one traction motor
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="statorResistance" type="rail:tResistanceOhm">
-			<xs:annotation>
-				<xs:documentation>
-					resistance of stator winding of one traction motor
-					in Ohms
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="rotorResistance" type="rail:tResistanceOhm">
-			<xs:annotation>
-				<xs:documentation>
-					resistance of rotor winding of one traction motor in
-					Ohms
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="ferrumResistance" type="rail:tResistanceOhm">
-			<xs:annotation>
-				<xs:documentation>
-					resistance of iron core of one traction motor in
-					Ohms (open-circuit core loss)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="additionalResistance" type="rail:tResistanceOhm">
-			<xs:annotation>
-				<xs:documentation>
-					additional resistance of one traction motor in Ohms
-					due to non-sinusoid currents (stray loss)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="mainInductance" type="rail:tInductanceHenry">
-			<xs:annotation>
-				<xs:documentation>
-					main inductance of one traction motor in H
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="statorLeakageInductance"
-			type="rail:tInductanceHenry">
-			<xs:annotation>
-				<xs:documentation>
-					leakage inductance of stator winding of one traction
-					motor in H
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="rotorLeakageInductance"
-			type="rail:tInductanceHenry">
-			<xs:annotation>
-				<xs:documentation>
-					leakage inductance of rotor winding of one traction
-					motor in H
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="nominalRevolutions" type="rail:tRotationalFrequencyRevolutionsPerMinute">
-			<xs:annotation>
-				<xs:documentation>
-					nominal number of revolutions in revolutions per
-					minute (rpm)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="meanEfficiency" type="rail:tOneToZero">
-			<xs:annotation>
-				<xs:documentation>
-					The traction motor mean efficiency in the range
-					0..1.
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- DieselMotor -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tDieselEngine">
-		<xs:annotation>
-			<xs:documentation>
-				technical data of diesel engine
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aAssemblyNameNumber">
-			<xs:annotation>
-				<xs:documentation>
-					number of diesel engines per vehicle and their type
-					description (for traction)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attributeGroup>
-		<xs:attributeGroup ref="rail:aDieselEngine" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aDieselEngine">
-		<xs:attribute name="nominalPower" type="rail:tPowerWatt">
-			<xs:annotation>
-				<xs:documentation>
-					nominal power per diesel engine in Watt
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="fuelCapacity" type="rail:tVolumeLitre">
-			<xs:annotation>
-				<xs:documentation>
-					fuel capacity of the entire diesel tank in liters
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="meanEfficiency" type="rail:tOneToZero">
-			<xs:annotation>
-				<xs:documentation>
-					average efficiency of the diesel engine in the range
-					0..1
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Gear -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tGear">
-		<xs:annotation>
-			<xs:documentation>
-				technical data of transmission system between motor and
-				wheel
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aAssemblyNameNumber">
-			<xs:annotation>
-				<xs:documentation>
-					number of gear assemblies per vehicle and their type
-					description
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attributeGroup>
-		<xs:attributeGroup ref="rail:aGear" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aGear">
-		<xs:attribute name="gearRatio" type="xs:decimal" use="required">
-			<xs:annotation>
-				<xs:documentation>
-					gear ratio as decimal value
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="meanEfficiency" type="rail:tOneToZero">
-			<xs:annotation>
-				<xs:documentation>
-					The gear mean efficiency in the range 0..1.
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Auxiliary supply-->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tAuxiliarySupply">
-		<xs:attributeGroup ref="rail:aAuxiliarySupply" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aAuxiliarySupply">
-		<xs:attribute name="power" type="rail:tPowerWatt"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					power consumption of constant load by auxiliary equipment in
-					Watt (permanent)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="powerPhi" type="rail:tAngleDegFullCircle">
-			<xs:annotation>
-				<xs:documentation>
-					phase angle phi of constant power of auxiliary load between
-					-180..+180
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="resistance" type="rail:tResistanceOhm">
-			<xs:annotation>
-				<xs:documentation>
-					resistance of constant load by auxiliary equipment in Ohm
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="powerBraking" type="rail:tPowerWatt">
-			<xs:annotation>
-				<xs:documentation>
-					power consumption of constant load by auxiliary equipment in
-					Watt (only during braking mode)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="powerPhiBraking" type="rail:tAngleDegFullCircle">
-			<xs:annotation>
-				<xs:documentation>
-					phase angle phi of constant power of auxiliary load between
-					-180..+180 (only during braking mode)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="resistanceBraking" type="rail:tResistanceOhm">
-			<xs:annotation>
-				<xs:documentation>
-					resistance of constant load by auxiliary equipment in Ohm
-					(only during braking mode)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- National System of Train Protection/Train Control -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tNationalSystem">
-		<xs:annotation>
-			<xs:documentation>
-				description of installed national train protection/monitoring systems like PZB, CIR-ELKE, TVM, LEA, ...
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aMonitoringGeneric" />
-				<xs:attributeGroup ref="rail:aMonitoringSystem" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aMonitoringSystem">
-		<xs:attribute name="type" type="rail:tNationalSystemsType" use="required">
-			<xs:annotation>
-				<xs:documentation>
-					type of national system as enumeration
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="trainProtectionMedium" type="rail:tTrainProtectionMedium"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					type of transmission medium for the train protection system
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="trainProtectionMonitoring" type="rail:tTrainProtectionMonitoring"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					way of information transmission between lineside and trainborne equipment
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Wagon-->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tWagon">
-		<xs:annotation>
-			<xs:documentation>
-				technical and payload data about a car
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aWagon" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aWagon">
-		<xs:attribute name="rotationMassFactor" type="xs:decimal">
-			<xs:annotation>
-				<xs:documentation>
-					factor for increased running resistance by rotating
-					masses of non-motored axles
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="kinematicEnvelope"
-			type="rail:tElementDescription">
-			<xs:annotation>
-				<xs:documentation>
-					name of car body kinematic envelope as reference
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="auxiliaryPowerConsumption" type="rail:tPowerWatt">
-			<xs:annotation>
-				<xs:documentation>
-					continuous power consumption in Watt of auxiliaries
-					within one car
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Passenger -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tPassenger">
-		<xs:annotation>
-			<xs:documentation>
-				data for passenger cars
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aPassenger" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aPassenger">
-		<xs:attribute name="deck" type="rail:tVerbalCounter">
-			<xs:annotation>
-				<xs:documentation>
-					number of decks per vehicle
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="drivingCab" type="xs:boolean">
-			<xs:annotation>
-				<xs:documentation>
-					flag, whether the vehicle comprises driving cab
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="tilting" type="xs:boolean">
-			<xs:annotation>
-				<xs:documentation>
-					flag, whether the vehicle comprises tilting
-					capabilities
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Gangway -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tGangway">
-		<xs:annotation>
-			<xs:documentation>
-				description of any gangways of the passenger car to other cars
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aGangway" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aGangway">
-		<xs:attribute name="frontEnd" type="xs:boolean" use="required" />
-		<xs:attribute name="rearEnd" type="xs:boolean" use="required" />
-		<xs:attribute name="position" type="rail:tGangwayPosition" use="required" />
-	</xs:attributeGroup>
-
-    <xs:simpleType name="tGangwayPosition">
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="standardUIC" />
-                    <xs:enumeration value="upperDeck" />
-                    <xs:enumeration value="lowerDeck" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Goods -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tGoods">
-		<xs:annotation>
-			<xs:documentation>data for freight cars</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aGoods" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aGoods">
-		<xs:attribute name="load" type="rail:tWeightTons">
-			<xs:annotation>
-				<xs:documentation>
-					maximum paylod per wagon in metric tons
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="volume" type="rail:tVolumeCubicMeter">
-			<xs:annotation>
-				<xs:documentation>
-					available volume for payload per vehicle
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="freightCarType" type="rail:tFreightCarType">
-			<xs:annotation>
-				<xs:documentation>
-					classification of goods vehicle
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-	
-	<xs:simpleType name="tFreightCarType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="open" />
-			<xs:enumeration value="covered" />
-			<xs:enumeration value="platform" />
-			<xs:enumeration value="refrigerated" />
-			<xs:enumeration value="tank" />
-			<xs:enumeration value="self-discharging" />
-			<xs:enumeration value="special" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Vehicle Brakes -->
-	<!--*********************************************************-->
-
-	<xs:attributeGroup name="aVehicleBrake">
-		<xs:attribute name="loadSwitch" type="rail:tLoadSwitch">
-			<xs:annotation>
-				<xs:documentation>for waggons with "full" / "empty" switch</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="autoBrakePercentage" type="rail:tBrakePercentage">
-			<xs:annotation>
-				<xs:documentation>automatically regulated brake percentages 
-				depending on actual load of vehicle</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="maxAutoBrakeMass" type="rail:tWeightTons">
-			<xs:annotation>
-				<xs:documentation>maximum brake mass of autimatic brake</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-	
-	<!--*********************************************************-->
-	<!-- Positions of load switch for brake system -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tLoadSwitch">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="empty" />
-			<xs:enumeration value="full" />
-		</xs:restriction>
-	</xs:simpleType>
-
-	<!--*********************************************************-->
-	<!-- Eddy current brake -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tEddyCurrentBrake">
-		<xs:annotation>
-			<xs:documentation>
-				technical data of eddy current brake
-			</xs:documentation>
-		</xs:annotation>
-		<xs:attributeGroup ref="rail:aEddyCurrentBrake" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aEddyCurrentBrake">
-		<xs:attribute name="maxPower" type="rail:tPowerWatt"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					maximal power consumption in Watt
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="maxEffort" type="rail:tEffortNewton"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					maximal brakeing effort achived in Newton
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="minSpeed" type="rail:tSpeedKmPerHour" use="required">
-			<xs:annotation>
-				<xs:documentation>
-					minimum speed for use of eddy current brake in km/h
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Train Composition -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tFormation">
-		<xs:annotation>
-			<xs:documentation>
-				data for a single train formation made of rs-vehicles
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aFormation" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aFormation">
-		<xs:attribute name="formationCount" type="rail:tCounter">
-			<xs:annotation>
-				<xs:documentation>
-					number of similar formations forming that train
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="length" type="rail:tLengthM">
-			<xs:annotation>
-				<xs:documentation>
-					entire length of the formation (shall be in
-					accordance with the sum of single vehicles)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="speed" type="rail:tSpeedKmPerHour">
-			<xs:annotation>
-				<xs:documentation>
-					allowed maximum speed for the entire formation
-					(shall be in accordance with single vehicle speed
-					values)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="weight" type="rail:tWeightTons">
-			<xs:annotation>
-				<xs:documentation>
-					weight in metrical tons of the entire formation
-					(shall be in accordance with the sum of single
-					vehicles)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Vehicle reference -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tVehicleRef">
-		<xs:attributeGroup ref="rail:aVehicleRef" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aVehicleRef">
-		<xs:attribute name="orderNumber" type="xs:positiveInteger"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					position of that vehicle (group) in the formation
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="vehicleRef" type="rail:tGenericRef"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					vehicle type as reference
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="vehicleCount" type="rail:tCounter">
-			<xs:annotation>
-				<xs:documentation>
-					number of consecutive vehicles of that type in the
-					formation
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="frontGangway" type="xs:boolean" />
-		<xs:attribute name="rearGangway" type="xs:boolean" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Train engine data for the entire formation -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTrainEngine">
-		<xs:attributeGroup ref="rail:aTrainEngine" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aTrainEngine">
-		<xs:attribute name="trainMeanAcceleration"
-			type="rail:tAccelerationMeterPerSquareSec">
-			<xs:annotation>
-				<xs:documentation>
-					formation whole mean acceleration in m/s^2
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="trainMaxAcceleration"
-			type="rail:tAccelerationMeterPerSquareSec">
-			<xs:annotation>
-				<xs:documentation>
-					formation whole maximum acceleration in m/s^2
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Train resistance -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTrainResistance">
-		<xs:annotation>
-			<xs:documentation>
-				mechanical train resistance vs. speed
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tCurve">
-				<xs:attribute name="tunnelFactor" type="xs:decimal">
-					<xs:annotation>
-						<xs:documentation>
-							factor for increasing air resistance when
-							running through tunnel
-						</xs:documentation>
-					</xs:annotation>
-				</xs:attribute>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- general attribute groups -->
-	<!--*********************************************************-->
-
-	<xs:attributeGroup name="aAssemblyNameNumber">
-		<xs:attribute name="count" type="rail:tCounter" use="required">
-			<xs:annotation>
-				<xs:documentation>
-					number of assemblies per vehicle/unit
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="assemblyName" type="rail:tGenericName"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					type of assembly as descriptive name
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- LossesCurve -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tLosses">
-		<xs:annotation>
-			<xs:documentation>
-				losses curve vs. speed, for use with mechanical and
-				electrical systems
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tCurve" />
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- EffortCurve -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tEffortCurve">
-		<xs:annotation>
-			<xs:documentation>
-				effort curve vs. speed, for use with traction and
-				braking
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tCurve" />
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Vehicle CurrentCurve -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tCurrentCurve">
-		<xs:annotation>
-			<xs:documentation>
-				vehicle current curve vs. speed, for use with traction
-				and braking
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tCurve" />
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Vehicle NetCurrentLimitationCurve -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tCurrentLimitation">
-		<xs:annotation>
-			<xs:documentation>
-				net current limitation curve vs. net voltage, for use
-				with traction and braking
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tCurve" />
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- EfficiencyCurve -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tEfficiencyCurve">
-		<xs:annotation>
-			<xs:documentation>
-				subsystem efficiency curve vs. speed
-			</xs:documentation>
-		</xs:annotation>
-		<xs:complexContent>
-			<xs:extension base="rail:tCurve" />
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!--  generic Curve -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tCurve">
-		<xs:annotation>
-			<xs:documentation>
-				generic curve of function y=f(x,z)
-			</xs:documentation>
-		</xs:annotation>
-		<xs:sequence>
-			<xs:element ref="mml:math" minOccurs="0">
-				<xs:annotation>
-					<xs:documentation>
-						function definition vs. arbitrary variable in
-						MathML format
-					</xs:documentation>
-				</xs:annotation>
-			</xs:element>
-			<xs:element name="valueTable" minOccurs="0">
-				<xs:annotation>
-					<xs:documentation>
-						table of values vs. arbitrary variable
-						representing function y=f(x,z)
-					</xs:documentation>
-				</xs:annotation>
-				<xs:complexType>
-					<xs:complexContent>
-						<xs:extension base="rail:tValueTable" />
-					</xs:complexContent>
-				</xs:complexType>
-			</xs:element>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- ValueTable -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tValueTable">
-		<xs:annotation>
-			<xs:documentation>
-				table of values vs. arbitrary x-variable
-			</xs:documentation>
-		</xs:annotation>
-		<xs:sequence>
-			<xs:element name="columnHeader" minOccurs="0"
-				maxOccurs="unbounded">
-				<xs:annotation>
-					<xs:documentation>
-						List of Names to explain meaning of values
-					</xs:documentation>
-				</xs:annotation>
-				<xs:complexType>
-					<xs:attribute name="zValue" type="xs:decimal"
-						use="required">
-						<xs:annotation>
-							<xs:documentation>
-								z-value itself as parameter in the value
-								table
-							</xs:documentation>
-						</xs:annotation>
-					</xs:attribute>
-				</xs:complexType>
-			</xs:element>
-			<xs:element name="valueLine" maxOccurs="unbounded">
-				<xs:annotation>
-					<xs:documentation>
-						set of values related to an x-value (one table
-						line)
-					</xs:documentation>
-				</xs:annotation>
-				<xs:complexType>
-					<xs:sequence>
-						<xs:element name="values"
-							maxOccurs="unbounded">
-							<xs:annotation>
-								<xs:documentation>
-									the values related to an x-value
-									themselves
-								</xs:documentation>
-							</xs:annotation>
-							<xs:complexType>
-								<xs:attribute name="yValue"
-									type="xs:decimal" use="required">
-									<xs:annotation>
-										<xs:documentation>
-											value of ordinate (y-axis)
-											for this line (row)
-										</xs:documentation>
-									</xs:annotation>
-								</xs:attribute>
-							</xs:complexType>
-						</xs:element>
-					</xs:sequence>
-					<xs:attribute name="xValue" type="xs:decimal"
-						use="required">
-						<xs:annotation>
-							<xs:documentation>
-								values of abscissa (x-axis) for this
-								line (row)
-							</xs:documentation>
-						</xs:annotation>
-					</xs:attribute>
-				</xs:complexType>
-			</xs:element>
-		</xs:sequence>
-		<xs:attribute name="xValueName" type="rail:tElementDescription"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					descriptive name for values of abscissa (x-axis)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="xValueUnit" type="rail:tUnitName"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					physical unit for values of abscissa (x-axis)
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="yValueName" type="rail:tElementDescription"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					descriptive name of y-values in that column
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="yValueUnit" type="rail:tUnitName"
-			use="required">
-			<xs:annotation>
-				<xs:documentation>
-					physical unit of the valuesin element "values"
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="zValueName" type="rail:tElementDescription">
-			<xs:annotation>
-				<xs:documentation>
-					descriptive name of z-value used as parameter in the
-					value table
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="zValueUnit" type="rail:tUnitName">
-			<xs:annotation>
-				<xs:documentation>
-					physical unit for z-value used as parameter in the
-					value table
-				</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:complexType>
+  <xs:complexType name="tCurve">
+    <xs:annotation>
+      <xs:documentation>generic curve of function y=f(x,z)</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:any namespace="https://www.w3.org/1998/Math/MathML" processContents="strict" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>function definition vs. arbitrary variable in MathML format</xs:documentation>
+        </xs:annotation>
+      </xs:any>
+      <xs:element name="valueTable" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation> table of values vs. arbitrary variable representing function y=f(x,z)</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:complexContent>
+            <xs:extension base="rail:tValueTable" />
+          </xs:complexContent>
+        </xs:complexType>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="tValueTable">
+    <xs:annotation>
+      <xs:documentation>table of values vs. arbitrary x-variable</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="columnHeader" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>List of Names to explain meaning of values</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:attribute name="zValue" type="xs:decimal" use="required">
+            <xs:annotation>
+              <xs:documentation>z-value itself as parameter in the value table</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="valueLine" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>set of values related to an x-value (one table line)</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="values" maxOccurs="unbounded">
+              <xs:annotation>
+                <xs:documentation>the values related to an x-value themselves</xs:documentation>
+              </xs:annotation>
+              <xs:complexType>
+                <xs:attribute name="yValue" type="xs:decimal" use="required">
+                  <xs:annotation>
+                    <xs:documentation>value of ordinate (y-axis) for this line (row)</xs:documentation>
+                  </xs:annotation>
+                </xs:attribute>
+              </xs:complexType>
+            </xs:element>
+          </xs:sequence>
+          <xs:attribute name="xValue" type="xs:decimal" use="required">
+            <xs:annotation>
+              <xs:documentation>values of abscissa (x-axis) for this line (row)</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+        </xs:complexType>
+      </xs:element>
+    </xs:sequence>
+    <xs:attribute name="xValueName" type="rail:tElementDescription" use="required">
+      <xs:annotation>
+        <xs:documentation>descriptive name for values of abscissa (x-axis)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="xValueUnit" type="rail:tUnitName" use="required">
+      <xs:annotation>
+        <xs:documentation>physical unit for values of abscissa (x-axis)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="yValueName" type="rail:tElementDescription" use="required">
+      <xs:annotation>
+        <xs:documentation>descriptive name of y-values in that column</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="yValueUnit" type="rail:tUnitName" use="required">
+      <xs:annotation>
+        <xs:documentation>physical unit of the valuesin element "values"</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="zValueName" type="rail:tElementDescription">
+      <xs:annotation>
+        <xs:documentation>descriptive name of z-value used as parameter in the value table</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="zValueUnit" type="rail:tUnitName">
+      <xs:annotation>
+        <xs:documentation>physical unit for z-value used as parameter in the value table</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:simpleType name="tSpeedRangeType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="dontcare" />
+      <xs:enumeration value="slow" />
+      <xs:enumeration value="fast" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tAxleDriveType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="cardanShaft" />
+          <xs:enumeration value="tubularAxle" />
+          <xs:enumeration value="noseSuspensionDrive" />
+          <xs:enumeration value="helicalSpringGear" />
+          <xs:enumeration value="rubberRingResilientDrive" />
+          <xs:enumeration value="buchliDrive" />
+          <xs:enumeration value="inclinedRodDrive" />
+          <xs:enumeration value="sideRodDrive" />
+          <xs:enumeration value="chain" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tPantographControlType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="cable" />
+          <xs:enumeration value="spring" />
+          <xs:enumeration value="air" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tPantographPositionType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="front" />
+          <xs:enumeration value="frontSecond" />
+          <xs:enumeration value="middle" />
+          <xs:enumeration value="rearSecond" />
+          <xs:enumeration value="rear" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tPantograph">
+    <xs:annotation>
+      <xs:documentation>description of any installed pantograph</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aPantograph" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aPantograph">
+    <xs:attribute name="orderNumber" type="rail:tPositiveCounter" use="required">
+      <xs:annotation>
+        <xs:documentation>number of the pantograph on the vehicle, starting with '1'</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="designType" type="rail:tGenericName" use="required">
+      <xs:annotation>
+        <xs:documentation>descriptive info about design type</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="positionOnSection" type="rail:tPantographPositionType" use="required">
+      <xs:annotation>
+        <xs:documentation>position of the pantograph with respect to typical locations of a section</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="fittedSection" type="rail:tCounter">
+      <xs:annotation>
+        <xs:documentation>number of vehicle section the panto is fitted on in case of articulated vehicle, normally '1'</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="controlType" type="rail:tPantographControlType">
+      <xs:annotation>
+        <xs:documentation>the way of controlling the pantograph drive</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="headWidth" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>width of pan head</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maxCurrentDriving" type="rail:tCurrentAmpere">
+      <xs:annotation>
+        <xs:documentation>maximum current transferred by the panto during driving</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maxCurrentStandstill" type="rail:tCurrentAmpere">
+      <xs:annotation>
+        <xs:documentation>maximum current transferred by the panto in standstill of the vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tDriversCabType">
+    <xs:annotation>
+      <xs:documentation>description of each drivers cab</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aDriversCab" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aDriversCab">
+    <xs:attribute name="orderNumber" type="rail:tPositiveCounter" use="required">
+      <xs:annotation>
+        <xs:documentation>ordered number of cab</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="position" type="rail:tCabPositionType" use="required">
+      <xs:annotation>
+        <xs:documentation>position of cab related to vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="acousticSignaller" type="rail:tAcousticSignalType">
+      <xs:annotation>
+        <xs:documentation>installed acoustic signaller</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tAcousticSignalType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="none" />
+          <xs:enumeration value="bell" />
+          <xs:enumeration value="alarmBell" />
+          <xs:enumeration value="horn" />
+          <xs:enumeration value="airChime" />
+          <xs:enumeration value="whistle" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tRackTractionType">
+    <xs:annotation>
+      <xs:documentation>description of any installed rack traction equipment</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aRackTraction" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aRackTraction">
+    <xs:attribute name="number" type="rail:tCounter" use="required">
+      <xs:annotation>
+        <xs:documentation>number of cog wheels on the vehicle</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="rackSystem" type="rail:tRackSystemType" use="required">
+      <xs:annotation>
+        <xs:documentation>kind of rack system used</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="resilentCogWheel" type="xs:boolean" use="required">
+      <xs:annotation>
+        <xs:documentation>flag, wheter the cog wheel(s) is(are) resilently suspended</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tTiltingActuationType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none" />
+      <xs:enumeration value="active" />
+      <xs:enumeration value="passive" />
+      <xs:enumeration value="rollCompensation" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tRackSystemType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="none" />
+          <xs:enumeration value="Riggenbach" />
+          <xs:enumeration value="Riggenbach-Klose" />
+          <xs:enumeration value="Abt2Bars" />
+          <xs:enumeration value="Abt3Bars" />
+          <xs:enumeration value="Locher" />
+          <xs:enumeration value="Strub" />
+          <xs:enumeration value="Wetli" />
+          <xs:enumeration value="Marsh" />
+          <xs:enumeration value="Roll" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tBearingType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="rollerBearing" />
+          <xs:enumeration value="ballBearing" />
+          <xs:enumeration value="plainBearing" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tHeadShapeType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="angular" />
+          <xs:enumeration value="rounded" />
+          <xs:enumeration value="streamlined" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tEndPositionType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="both" />
+      <xs:enumeration value="front" />
+      <xs:enumeration value="rear" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tRelatedPositionType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none" />
+      <xs:enumeration value="aside" />
+      <xs:enumeration value="ontop" />
+      <xs:enumeration value="below" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tCabPositionType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="none" />
+      <xs:enumeration value="front" />
+      <xs:enumeration value="middle" />
+      <xs:enumeration value="rear" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tTorqueConversionType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="converter" />
+          <xs:enumeration value="coupling" />
+          <xs:enumeration value="hydrodynamicTransmission" />
+          <xs:enumeration value="hydraulicTransmission" />
+          <xs:enumeration value="hydromechanicalTransmission" />
+          <xs:enumeration value="hydrostaticTransmission" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tCurvingLimitationType">
+    <xs:annotation>
+      <xs:documentation>container for list of physical curving limits</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aCurvingLimitation" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aCurvingLimitation">
+    <xs:attribute name="horizontalCurveRadius" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>maximum horizontal curve radius in metres allowed for the vehicle running</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="verticalCrestRadius" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>maximum vertical radius of any crest (Kuppe) in metres allowed for the vehicle running</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="verticalSagRadius" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>maximum vertical radius of any sag (Wanne) in metres allowed for the vehicle running</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tLoadLimitMatrixType">
+    <xs:annotation>
+      <xs:documentation>container for list of load limits</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aLoadLimitMatrix" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aLoadLimitMatrix">
+    <xs:attribute name="chassisSpeed" type="rail:tSpeedKmPerHour">
+      <xs:annotation>
+        <xs:documentation>maximum speed allowed for the vehicle not considering braking capabilities</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tLoadLimitType">
+    <xs:annotation>
+      <xs:documentation>permissible load limits depending on line classification</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aLoadLimit" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aLoadLimit">
+    <xs:attribute name="maxSpeed" type="rail:tSpeedKmPerHour" use="required">
+      <xs:annotation>
+        <xs:documentation>maximum speed allowed with the load limit</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tRailNetwork">
+    <xs:annotation>
+      <xs:documentation>list of related rail networks</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aRailNetwork" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aRailNetwork">
+    <xs:attribute name="name" type="rail:tGenericName" use="required">
+      <xs:annotation>
+        <xs:documentation>name of the rail network the load limit and line classification is applicable</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tLineClassification">
+    <xs:annotation>
+      <xs:documentation>list of line classifications and permissible payload according RIV</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aLineClassification" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aLineClassification">
+    <xs:attribute name="name" type="rail:tLineClassificationType" use="required">
+      <xs:annotation>
+        <xs:documentation>the name of the line class according RIV or any other distinctive name</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="payLoad" type="rail:tWeightTons" use="required">
+      <xs:annotation>
+        <xs:documentation>permissible payload for the vehicle with respect to line classification</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tPropulsionControlType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="unknown" />
+          <xs:enumeration value="camshaftControl" />
+          <xs:enumeration value="contactorControl" />
+          <xs:enumeration value="rectifier" />
+          <xs:enumeration value="thyristorControl" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tPneumaticWagonCouplerType">
+    <xs:annotation>
+      <xs:documentation>data of available pneumatic couplers between wagons</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aPneumaticWagonCoupler" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aPneumaticWagonCoupler">
+    <xs:attribute name="positionOnCarEnd" type="rail:tEndPositionType" use="required">
+      <xs:annotation>
+        <xs:documentation>basic position of the pneumatic wagon coupler (front/rear/both)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="couplerFunction" type="rail:tPneumaticCouplerFunctionType">
+      <xs:annotation>
+        <xs:documentation>the function the pneumatic coupler is used for</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="integratedOnMechanicalCoupler" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>flag, whether the pneumatic coupler is integrated in the mechanical coupler and coupled automatically</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tPneumaticCouplerFunctionType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="unknown" />
+          <xs:enumeration value="mainAirPipe" />
+          <xs:enumeration value="mainAirReservoirPipe" />
+          <xs:enumeration value="additionalBrakeControlPipe" />
+          <xs:enumeration value="vacuumAirPipe" />
+          <xs:enumeration value="steamHeatingPipe" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tElectricalWagonCouplerType">
+    <xs:annotation>
+      <xs:documentation>data of available electrical couplers between wagons</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aElectricalWagonCoupler" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aElectricalWagonCoupler">
+    <xs:attribute name="positionOnCarEnd" type="rail:tEndPositionType" use="required">
+      <xs:annotation>
+        <xs:documentation>basic position of the electrical wagon coupler (front/rear/both)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="designType" type="rail:tElectricalCouplerDesignType">
+      <xs:annotation>
+        <xs:documentation>description of the design type of the elctrical coupler (mainly control lines)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="positionOnMechanicalCoupler" type="rail:tRelatedPositionType">
+      <xs:annotation>
+        <xs:documentation>the position of electrical coupling in relation to mechanical coupling if integrated</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="numberContacts" type="rail:tCounter">
+      <xs:annotation>
+        <xs:documentation>number of contacts included in the coupler (similar to number of lines)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tElectricalCouplerDesignType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="unknown" />
+          <xs:enumeration value="pushTrainControl36" />
+          <xs:enumeration value="pushTrainControl34" />
+          <xs:enumeration value="emergencyBrakeDeactivation" />
+          <xs:enumeration value="UIC-IS-cable21" />
+          <xs:enumeration value="UIC556" />
+          <xs:enumeration value="UIC558-18" />
+          <xs:enumeration value="UIC568-13" />
+          <xs:enumeration value="wireTrainBus" />
+          <xs:enumeration value="multifunctionVehicleBus" />
+          <xs:enumeration value="trainCommunicationNetwork" />
+          <xs:enumeration value="vehicleSpecificConnection" />
+          <xs:enumeration value="fibreOptics" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tMechanicalWagonCouplerType">
+    <xs:annotation>
+      <xs:documentation>data of available mechanical couplers between wagons</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aMechanicalWagonCoupler" />
+  </xs:complexType>
+  <xs:attributeGroup name="aMechanicalWagonCoupler">
+    <xs:attribute name="designType" type="rail:tMechanicalCouplerDesignType" use="required">
+      <xs:annotation>
+        <xs:documentation>design type of the mechanical wagon coupler</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="positionOnCarEnd" type="rail:tEndPositionType" use="required">
+      <xs:annotation>
+        <xs:documentation>basic position of the mechanical wagon coupler (front/rear/both)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="couplingHeight" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>coupling level above top of rail in mm</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="pullingForce" type="rail:tForceNewton">
+      <xs:annotation>
+        <xs:documentation>maximum force in Newton to be used for pulling vehicles with this type of coupling</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="pushingForce" type="rail:tForceNewton">
+      <xs:annotation>
+        <xs:documentation>maximum force in Newton to be used for pushing vehicles with this type of coupling</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tMechanicalCouplerDesignType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="unknown" />
+          <xs:enumeration value="AAR_KnuckleCoupler" />
+          <xs:enumeration value="AK69e" />
+          <xs:enumeration value="AlbertCoupler" />
+          <xs:enumeration value="APTA_tightlock" />
+          <xs:enumeration value="BSI_compact" />
+          <xs:enumeration value="BSI_shunting" />
+          <xs:enumeration value="buckeyeKnuckleCoupler" />
+          <xs:enumeration value="BuddPinCup" />
+          <xs:enumeration value="buffersChainScrewCoupler" />
+          <xs:enumeration value="C-AKv" />
+          <xs:enumeration value="centralBuffer1Chain" />
+          <xs:enumeration value="centralBuffer2Chains" />
+          <xs:enumeration value="FK-3-2.5" />
+          <xs:enumeration value="FK-5.5-4" />
+          <xs:enumeration value="FK-9-6" />
+          <xs:enumeration value="FK-15-10" />
+          <xs:enumeration value="FK-15-12" />
+          <xs:enumeration value="GF_Coupler" />
+          <xs:enumeration value="GFN" />
+          <xs:enumeration value="GFT" />
+          <xs:enumeration value="GFV" />
+          <xs:enumeration value="Intermat" />
+          <xs:enumeration value="linkPin_flat" />
+          <xs:enumeration value="linkPin_round" />
+          <xs:enumeration value="NorwegianMeatChopper" />
+          <xs:enumeration value="SA3_WillisonCoupler" />
+          <xs:enumeration value="Scharfenberg" />
+          <xs:enumeration value="Scharfenberg10" />
+          <xs:enumeration value="Scharfenberg35" />
+          <xs:enumeration value="Scharfenberg55" />
+          <xs:enumeration value="Scharfenberg140" />
+          <xs:enumeration value="Scharfenberg330" />
+          <xs:enumeration value="Scharfenberg430" />
+          <xs:enumeration value="SchwabCoupler" />
+          <xs:enumeration value="Wedgelock" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
 
 </xs:schema>
diff --git a/schema/timetable.xsd b/schema/timetable.xsd
index 37a9d0b..0ecb3f1 100644
--- a/schema/timetable.xsd
+++ b/schema/timetable.xsd
@@ -1,693 +1,428 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2009"
-	xmlns:xs="https://www.w3.org/2001/XMLSchema"
-    xmlns:xml="https://www.w3.org/XML/1998/namespace"
-	targetNamespace="https://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
-
-    <xs:annotation>
-        <xs:documentation>
-        Copyright (c) railML.org; All Rights Reserved. 
-
-        This work is licensed under a Creative Commons Attribution 2.0 License. 
-        https://creativecommons.org/licenses/by/2.0/
-
-        For further information see: https://www.railml.org/
-
-        Content of this file: 
-        XML Schema for railML(R) 2.0 
-        Definition of elements (partially hidden as complex type) for 
-        timetable sub schema (TT), uses timetable types and 
-        attribute groups from "xs:include" path
-        </xs:documentation>
-    </xs:annotation>
-
-	<xs:include schemaLocation="timetableTypes.xsd" />
-
-	<!---->
-	<!-- timetable                                                               -->
-	<!--   +- timetablePeriods                                                   -->
-	<!--   +- operatingPeriods                                                   -->
-	<!--   +- categories                                                         -->
-	<!--   +- trainParts                                                         -->
-	<!--   +- trains                                                             -->
-	<!--   +- trainGroups                                                        -->
-	<!--   +- rosterings                                                         -->
-	<!---->
-
-    <xs:element name="timetable">
-        <xs:complexType>
-            <xs:complexContent>
-                <xs:extension base="rail:tTimetable">
-                    <xs:sequence>
-                        <xs:element name="timetablePeriods"
-                            type="rail:eTimetablePeriods" minOccurs="0" />
-                        <xs:element name="operatingPeriods"
-                            type="rail:eOperatingPeriods" minOccurs="0" />
-                        <xs:element name="categories" type="rail:eCategories"
-                            minOccurs="0" />
-                        <xs:element name="trainParts" type="rail:eTrainParts"
-                            minOccurs="0" />
-                        <xs:element name="trains" type="rail:eTrains"
-                            minOccurs="0" />
-                        <xs:element name="trainGroups"
-                            type="rail:eTrainGroups" minOccurs="0" />
-                        <xs:element name="rosterings" 
-                            type="rail:eRosterings" minOccurs="0"/>
-                    </xs:sequence>
-                </xs:extension>
-            </xs:complexContent>
-        </xs:complexType>
-
-        <xs:key name="timetablePeriodKey">
-            <xs:selector xpath=".//rail:timetablePeriods/rail:timetablePeriod"/>
-            <xs:field xpath="@id"/>
-        </xs:key>
-        <xs:keyref name="timetablePeriod-operatingPeriodKeyref" refer="rail:timetablePeriodKey">
-            <xs:selector xpath=".//rail:operatingPeriods/rail:operatingPeriod" />
-            <xs:field xpath="@timetablePeriodRef"/>
-        </xs:keyref>
-        <xs:keyref name="timetablePeriod-trainPartKeyref" refer="rail:timetablePeriodKey">
-            <xs:selector xpath=".//rail:trainParts/rail:trainPart"/>
-            <xs:field xpath="@timetablePeriodRef"/>
-        </xs:keyref>
-
-        <xs:key name="operatingPeriodKey">
-          <xs:selector xpath=".//rail:operatingPeriods/rail:operatingPeriod" />
-          <xs:field xpath="@id" />
-        </xs:key>
-        <xs:keyref name="operatingPeriod-trainPartKeyref" refer="rail:operatingPeriodKey">
-          <xs:selector xpath=".//rail:trainParts/rail:trainPart/rail:operatingPeriodRef" />
-          <xs:field xpath="@ref" />
-        </xs:keyref>
-        <xs:keyref name="operatingPeriod-blockPartKeyref" refer="rail:operatingPeriodKey">
-          <xs:selector xpath=".//rail:blockParts/rail:blockPart" />
-          <xs:field xpath="@operatingPeriodRef" />
-        </xs:keyref>
-        <xs:keyref name="operatingPeriod-circulationKeyref" refer="rail:operatingPeriodKey">
-          <xs:selector xpath=".//rail:circulations/rail:circulation" />
-          <xs:field xpath="@operatingPeriodRef" />
-        </xs:keyref>
-
-        <xs:key name="categoryKey">
-          <xs:selector xpath=".//rail:categories/rail:category" />
-          <xs:field xpath="@id" />
-        </xs:key>
-        <xs:keyref name="category-trainPartKeyref" refer="rail:categoryKey">
-          <xs:selector xpath=".//rail:trainParts/rail:trainPart" />
-          <xs:field xpath="@categoryRef" />
-        </xs:keyref>
-
-        <xs:key name="trainPartKey">
-          <xs:selector xpath=".//rail:trainParts/rail:trainPart" />
-          <xs:field xpath="@id" />
-        </xs:key>
-        <xs:keyref name="trainPart-trainPartSequenceKeyref" refer="rail:trainPartKey">
-          <xs:selector xpath=".//rail:trains/rail:train/rail:trainPartSequence/rail:trainPartRef" />
-          <xs:field xpath="@ref" />
-        </xs:keyref>
-        <xs:keyref name="trainPart-blockPartKeyref" refer="rail:trainPartKey">
-          <xs:selector xpath=".//rail:blockParts/rail:blockPart" />
-          <xs:field xpath="@trainPartRef" />
-        </xs:keyref>
-
-        <xs:key name="trainKey">
-          <xs:selector xpath=".//rail:trains/rail:train" />
-          <xs:field xpath="@id" />
-        </xs:key>
-        <xs:keyref name="train-trainGroupKeyref" refer="rail:trainKey">
-          <xs:selector xpath=".//rail:trainGroups/rail:trainGroup/rail:trainRef" />
-          <xs:field xpath="@ref" />
-        </xs:keyref>
-
-        <xs:key name="blockPartKey">
-          <xs:selector xpath=".//rail:blockParts/rail:blockPart" />
-          <xs:field xpath="@id" />
-        </xs:key>
-        <xs:keyref name="blockPart-blockPartSequenceKeyref" refer="rail:blockPartKey">
-          <xs:selector xpath=".//rail:blocks/rail:block/rail:blockPartSequence/rail:blockPartRef" />
-          <xs:field xpath="@ref" />
-        </xs:keyref>
-
-        <xs:key name="blockKey">
-          <xs:selector xpath=".//rail:blocks/rail:block" />
-          <xs:field xpath="@id" />
-        </xs:key>
-        <xs:keyref name="block-blockPartSequenceKeyref" refer="rail:blockKey">
-          <xs:selector xpath=".//rail:blocks/rail:block/rail:blockPartSequence" />
-          <xs:field xpath="@basicBlockRef" />
-        </xs:keyref>
-        <xs:keyref name="block-circulationKeyref" refer="rail:blockKey">
-          <xs:selector xpath=".//rail:circulations/rail:circulation" />
-          <xs:field xpath="@blockRef" />
-        </xs:keyref>
-        <xs:keyref name="nextBlock-circulationKeyref" refer="rail:blockKey">
-          <xs:selector xpath=".//rail:circulations/rail:circulation" />
-          <xs:field xpath="@nextBlockRef" />
-        </xs:keyref>
-
-		</xs:element>
-
-	<!---->
-	<!-- operatingPeriods                                                        -->
-	<!--   +- operatingPeriod                                                    -->
-	<!---->
-
-	<xs:complexType name="eOperatingPeriods">
-		<xs:sequence>
-			<xs:element name="operatingPeriod" type="rail:eOperatingPeriod" 
-				maxOccurs="unbounded"/>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- operatingPeriod                                                         -->
-	<!--   +- operatingDay                                                       -->
-	<!--   +- specialService                                                     -->
-	<!---->
-
-	<xs:complexType name="eOperatingPeriod">
-		<xs:complexContent>
-			<xs:extension base="rail:tOperatingPeriod">
-				<xs:sequence>
-					<xs:element name="operatingDay"
-						type="rail:eOperatingDay" minOccurs="0" maxOccurs="unbounded">
-					</xs:element>
-					<xs:element name="specialService"
-						type="rail:tSpecialService" minOccurs="0" maxOccurs="unbounded">
-					</xs:element>
-					<xs:any namespace="##other"
-						processContents="strict" minOccurs="0" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- operatingDay                                                            -->
-	<!--   +- operatingDayDeviance                                               -->
-	<!---->
-
-	<xs:complexType name="eOperatingDay">
-		<xs:complexContent>
-			<xs:extension base="rail:tOperatingDay">
-				<xs:sequence>
-					<xs:element name="operatingDayDeviance"
-						type="rail:tOperatingDayDeviance" minOccurs="0" maxOccurs="unbounded">
-					</xs:element>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- timetablePeriods                                                        -->
-	<!--   +- timetablePeriod                                                    -->
-	<!---->
-
-	<xs:complexType name="eTimetablePeriods">
-		<xs:sequence>
-			<xs:element name="timetablePeriod" type="rail:eTimetablePeriod"
-				maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- timetablePeriod                                                         -->
-	<!--   +- holidays                                                           -->
-	<!---->
-
-	<xs:complexType name="eTimetablePeriod">
-		<xs:complexContent>
-			<xs:extension base="rail:tTimetablePeriod">
-				<xs:sequence>
-					<xs:element name="holidays" type="rail:eHolidays" minOccurs="0"/>
-					<xs:any namespace="##other"
-						processContents="strict" minOccurs="0" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- holidays                                                                -->
-	<!--   +- holiday                                                            -->
-	<!---->
-
-	<xs:complexType name="eHolidays">
-		<xs:sequence>
-			<xs:element name="holiday" type="rail:tHoliday" maxOccurs="unbounded"/>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- formationTT                                                             -->
-	<!--   +- equipmentUsage                                                     -->
-	<!--   +- passengerUsage                                                     -->
-	<!--   +- reservationInfo                                                    -->
-	<!---->
-
-	<xs:complexType name="eFormationTT">
-		<xs:complexContent>
-			<xs:extension base="rail:tFormationTT">
-				<xs:sequence>
-					<xs:element name="equipmentUsage" type="rail:eEquipmentUsage" minOccurs="0" />
-					<xs:element name="passengerUsage" type="rail:ePassengerUsage" minOccurs="0"/>
-					<xs:element name="reservationInfo" type="rail:eReservationInfo" minOccurs="0"/>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-    <!---->
-    <!-- equipmentUsage -->
-    <!--   +-equipment -->
-    <!---->
-
-    <xs:complexType name="eEquipmentUsage">
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2011" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="https://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1">
+
+  <xs:annotation>
+    <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
+    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of elements (partially hidden as complex type) for timetable sub schema (TT), uses timetable types and attribute groups from "xs:include" path</xs:documentation>
+  </xs:annotation>
+
+  <xs:include schemaLocation="timetableTypes.xsd" />
+
+  <xs:element name="timetable">
+    <xs:complexType>
+      <xs:complexContent>
+        <xs:extension base="rail:tTimetable">
+          <xs:sequence>
+            <xs:element name="timetablePeriods" type="rail:eTimetablePeriods" minOccurs="0" />
+            <xs:element name="operatingPeriods" type="rail:eOperatingPeriods" minOccurs="0" />
+            <xs:element name="categories" type="rail:eCategories" minOccurs="0" />
+            <xs:element name="trainParts" type="rail:eTrainParts" minOccurs="0" />
+            <xs:element name="trains" type="rail:eTrains" minOccurs="0" />
+            <xs:element name="trainGroups" type="rail:eTrainGroups" minOccurs="0" />
+            <xs:element name="rosterings" type="rail:eRosterings" minOccurs="0" />
+          </xs:sequence>
+        </xs:extension>
+      </xs:complexContent>
+    </xs:complexType>
+
+    <xs:key name="timetablePeriodKey">
+      <xs:selector xpath=".//rail:timetablePeriods/rail:timetablePeriod" />
+      <xs:field xpath="@id" />
+    </xs:key>
+    <xs:keyref name="timetablePeriod-operatingPeriodKeyref" refer="rail:timetablePeriodKey">
+      <xs:selector xpath=".//rail:operatingPeriods/rail:operatingPeriod" />
+      <xs:field xpath="@timetablePeriodRef" />
+    </xs:keyref>
+    <xs:keyref name="timetablePeriod-trainPartKeyref" refer="rail:timetablePeriodKey">
+      <xs:selector xpath=".//rail:trainParts/rail:trainPart" />
+      <xs:field xpath="@timetablePeriodRef" />
+    </xs:keyref>
+
+    <xs:key name="operatingPeriodKey">
+      <xs:selector xpath=".//rail:operatingPeriods/rail:operatingPeriod" />
+      <xs:field xpath="@id" />
+    </xs:key>
+    <xs:keyref name="operatingPeriod-trainPartKeyref" refer="rail:operatingPeriodKey">
+      <xs:selector xpath=".//rail:trainParts/rail:trainPart/rail:operatingPeriodRef" />
+      <xs:field xpath="@ref" />
+    </xs:keyref>
+    <xs:keyref name="operatingPeriod-blockPartKeyref" refer="rail:operatingPeriodKey">
+      <xs:selector xpath=".//rail:blockParts/rail:blockPart" />
+      <xs:field xpath="@operatingPeriodRef" />
+    </xs:keyref>
+    <xs:keyref name="operatingPeriod-circulationKeyref" refer="rail:operatingPeriodKey">
+      <xs:selector xpath=".//rail:circulations/rail:circulation" />
+      <xs:field xpath="@operatingPeriodRef" />
+    </xs:keyref>
+    <xs:keyref name="nextOperatingPeriod-circulationKeyref" refer="rail:operatingPeriodKey">
+      <xs:selector xpath=".//rail:circulations/rail:circulation" />
+      <xs:field xpath="@nextOperatingPeriodRef" />
+    </xs:keyref>
+
+    <xs:key name="categoryKey">
+      <xs:selector xpath=".//rail:categories/rail:category" />
+      <xs:field xpath="@id" />
+    </xs:key>
+    <xs:keyref name="category-trainPartKeyref" refer="rail:categoryKey">
+      <xs:selector xpath=".//rail:trainParts/rail:trainPart" />
+      <xs:field xpath="@categoryRef" />
+    </xs:keyref>
+    <xs:keyref name="category-trainPartSequenceKeyref" refer="rail:categoryKey">
+      <xs:selector xpath=".//rail:trains/rail:train/rail:trainPartSequence" />
+      <xs:field xpath="@categoryRef" />
+    </xs:keyref>
+
+    <xs:key name="trainPartKey">
+      <xs:selector xpath=".//rail:trainParts/rail:trainPart" />
+      <xs:field xpath="@id" />
+    </xs:key>
+    <xs:keyref name="trainPart-trainPartSequenceKeyref" refer="rail:trainPartKey">
+      <xs:selector xpath=".//rail:trains/rail:train/rail:trainPartSequence/rail:trainPartRef" />
+      <xs:field xpath="@ref" />
+    </xs:keyref>
+    <xs:keyref name="trainPart-blockPartKeyref" refer="rail:trainPartKey">
+      <xs:selector xpath=".//rail:blockParts/rail:blockPart" />
+      <xs:field xpath="@trainPartRef" />
+    </xs:keyref>
+
+    <xs:key name="trainKey">
+      <xs:selector xpath=".//rail:trains/rail:train" />
+      <xs:field xpath="@id" />
+    </xs:key>
+    <xs:keyref name="train-trainGroupKeyref" refer="rail:trainKey">
+      <xs:selector xpath=".//rail:trainGroups/rail:trainGroup/rail:trainRef" />
+      <xs:field xpath="@ref" />
+    </xs:keyref>
+
+    <xs:key name="blockPartKey">
+      <xs:selector xpath=".//rail:blockParts/rail:blockPart" />
+      <xs:field xpath="@id" />
+    </xs:key>
+    <xs:keyref name="blockPart-blockPartSequenceKeyref" refer="rail:blockPartKey">
+      <xs:selector xpath=".//rail:blocks/rail:block/rail:blockPartSequence/rail:blockPartRef" />
+      <xs:field xpath="@ref" />
+    </xs:keyref>
+
+    <xs:key name="blockKey">
+      <xs:selector xpath=".//rail:blocks/rail:block" />
+      <xs:field xpath="@id" />
+    </xs:key>
+    <xs:keyref name="block-blockPartSequenceKeyref" refer="rail:blockKey">
+      <xs:selector xpath=".//rail:blocks/rail:block/rail:blockPartSequence" />
+      <xs:field xpath="@basicBlockRef" />
+    </xs:keyref>
+    <xs:keyref name="block-circulationKeyref" refer="rail:blockKey">
+      <xs:selector xpath=".//rail:circulations/rail:circulation" />
+      <xs:field xpath="@blockRef" />
+    </xs:keyref>
+    <xs:keyref name="nextBlock-circulationKeyref" refer="rail:blockKey">
+      <xs:selector xpath=".//rail:circulations/rail:circulation" />
+      <xs:field xpath="@nextBlockRef" />
+    </xs:keyref>
+
+  </xs:element>
+
+  <xs:complexType name="eOperatingPeriods">
+    <xs:sequence>
+      <xs:element name="operatingPeriod" type="rail:eOperatingPeriod" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eOperatingPeriod">
+    <xs:complexContent>
+      <xs:extension base="rail:tOperatingPeriod">
         <xs:sequence>
-            <xs:element name="equipment" type="rail:tEquipment" minOccurs="0" maxOccurs="unbounded"/>
+          <xs:element name="operatingDay" type="rail:eOperatingDay" minOccurs="0" maxOccurs="unbounded" />
+          <xs:element name="specialService" type="rail:tSpecialService" minOccurs="0" maxOccurs="unbounded" />
         </xs:sequence>
-    </xs:complexType>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eOperatingDay">
+    <xs:complexContent>
+      <xs:extension base="rail:tOperatingDay">
+        <xs:sequence>
+          <xs:element name="operatingDayDeviance" type="rail:tOperatingDayDeviance" minOccurs="0" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eTimetablePeriods">
+    <xs:sequence>
+      <xs:element name="timetablePeriod" type="rail:eTimetablePeriod" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eTimetablePeriod">
+    <xs:complexContent>
+      <xs:extension base="rail:tTimetablePeriod">
+        <xs:sequence>
+          <xs:element name="holidays" type="rail:eHolidays" minOccurs="0" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eHolidays">
+    <xs:sequence>
+      <xs:element name="holiday" type="rail:tHoliday" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eFormationTT">
+    <xs:complexContent>
+      <xs:extension base="rail:tFormationTT">
+        <xs:sequence>
+          <xs:element name="equipmentUsage" type="rail:eEquipmentUsage" minOccurs="0" />
+          <xs:element name="passengerUsage" type="rail:ePassengerFacility" minOccurs="0" />
+          <xs:element name="reservationInfo" type="rail:eReservationInfo" minOccurs="0" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eEquipmentUsage">
+    <xs:sequence>
+      <xs:element name="equipment" type="rail:tEquipment" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eReservationInfo">
+    <xs:sequence>
+      <xs:element name="booking" type="rail:tBooking" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eCategories">
+    <xs:sequence>
+      <xs:element name="category" type="rail:eCategory" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eCategory">
+    <xs:complexContent>
+      <xs:extension base="rail:tCategory" />
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eTrainParts">
+    <xs:sequence>
+      <xs:element name="trainPart" type="rail:eTrainPart" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eTrainPart">
+    <xs:complexContent>
+      <xs:extension base="rail:tTrainPart">
+        <xs:sequence>
+          <xs:element name="formationTT" type="rail:eFormationTT" minOccurs="0" />
+          <xs:element name="operatingPeriodRef" type="rail:eOperatingPeriodRef" minOccurs="0" />
+          <xs:element name="ocpsTT" type="rail:eOcpsTT" />
+          <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>Deprecated for next major release, use "generic any element" instead.</xs:documentation>
+            </xs:annotation>
+          </xs:any>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eOperatingPeriodRef">
+    <xs:complexContent>
+      <xs:extension base="rail:tOperatingPeriodRef">
+        <xs:sequence>
+          <xs:element name="specialService" type="rail:tSpecialService" minOccurs="0" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eOcpsTT">
+    <xs:sequence>
+      <xs:element name="ocpTT" type="rail:eOcpTT" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eOcpTT">
+    <xs:complexContent>
+      <xs:extension base="rail:tOcpTT">
+        <xs:sequence>
+          <xs:element name="times" type="rail:eArrivalDepartureTimes" minOccurs="0" maxOccurs="unbounded" />
+          <xs:element name="connections" type="rail:eConnectionsTT" minOccurs="0" />
+          <xs:element name="statistics" type="rail:eStatistics" minOccurs="0" />
+          <xs:element name="sectionTT" type="rail:eSectionTT" minOccurs="0" />
+          <xs:element name="stopDescription" type="rail:eStopDescription" minOccurs="0" />
+          <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eArrivalDepartureTimes">
+    <xs:complexContent>
+      <xs:extension base="rail:tArrivalDepartureTimes" />
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eConnectionsTT">
+    <xs:sequence>
+      <xs:element name="connection" type="rail:tConnectionTT" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eStatistics">
+    <xs:sequence>
+      <xs:element name="statistic" type="rail:eStatistic" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eStatistic">
+    <xs:complexContent>
+      <xs:extension base="rail:tStatistic">
+        <xs:sequence>
+          <xs:element name="mean" type="rail:tStatisticTimes" minOccurs="0" />
+          <xs:element name="median" type="rail:tStatisticTimes" minOccurs="0" />
+          <xs:element name="standardDeviation" type="rail:tStandardDeviationTimes" minOccurs="0" />
+          <xs:element name="statisticAnalyses" type="rail:tStatisticAnalyses" minOccurs="0" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
+  <xs:complexType name="eSectionTT">
+    <xs:complexContent>
+      <xs:extension base="rail:tSectionTT">
+        <xs:sequence>
+          <xs:element minOccurs="0" maxOccurs="unbounded" name="trackRef" type="rail:tTrackRef" />
+          <xs:element minOccurs="0" name="runTimes" type="rail:tRunTimes" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
-    <!---->
-    <!-- passengerUsage -->
-    <!--   +-places -->
-    <!--   +-service -->
-    <!---->
+  <xs:complexType name="eStopDescription">
+    <xs:complexContent>
+      <xs:extension base="rail:tStopDescription">
+        <xs:sequence>
+          <xs:element minOccurs="0" name="stopTimes" type="rail:tStopTimes" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eTrains">
+    <xs:sequence>
+      <xs:element name="train" type="rail:eTrain" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eTrain">
+    <xs:complexContent>
+      <xs:extension base="rail:tTrain">
+        <xs:sequence>
+          <xs:element name="trainPartSequence" type="rail:eTrainPartSequence" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
-    <xs:complexType name="ePassengerUsage">
+  <xs:complexType name="eTrainPartSequence">
+    <xs:complexContent>
+      <xs:extension base="rail:tTrainPartSequence">
         <xs:sequence>
-            <xs:element name="places" type="rail:tPlaces" minOccurs="0" maxOccurs="unbounded"/>
-            <xs:element name="service" type="rail:tService" minOccurs="0" maxOccurs="unbounded"/>
+          <xs:element name="trainPartRef" type="rail:tTrainPartRef" maxOccurs="unbounded" />
+          <xs:element name="equipmentUsage" type="rail:eEquipmentUsage" minOccurs="0" />
+          <xs:element name="brakeUsage" type="rail:eBrakeUsage" minOccurs="0" />
         </xs:sequence>
-    </xs:complexType>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eBrakeUsage">
+    <xs:complexContent>
+      <xs:extension base="rail:tBasicBrakeType">
+        <xs:attributeGroup ref="rail:aBrakeUsage" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eTrainGroups">
+    <xs:sequence>
+      <xs:element name="trainGroup" type="rail:eTrainGroup" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eTrainGroup">
+    <xs:complexContent>
+      <xs:extension base="rail:tTrainGroup">
+        <xs:sequence>
+          <xs:element name="trainRef" type="rail:tTrainRef" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eRosterings">
+    <xs:sequence>
+      <xs:element name="rostering" type="rail:eRostering" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eRostering">
+    <xs:complexContent>
+      <xs:extension base="rail:tRostering">
+        <xs:sequence>
+          <xs:element name="blockParts" type="rail:eBlockParts" />
+          <xs:element name="blocks" type="rail:eBlocks" />
+          <xs:element name="circulations" type="rail:eCirculations" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eBlocks">
+    <xs:sequence>
+      <xs:element name="block" type="rail:eBlock" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eBlock">
+    <xs:complexContent>
+      <xs:extension base="rail:tBlock">
+        <xs:sequence>
+          <xs:element name="blockPartSequence" type="rail:eBlockPartSequence" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
-	<!---->
-	<!-- reservationInfo                                                         -->
-	<!--   +- booking                                                            -->
-	<!---->
-
-	<xs:complexType name="eReservationInfo">
-		<xs:sequence>
-			<xs:element name="booking" type="rail:tBooking" 
-				maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- categories                                                              -->
-	<!--   +- category                                                           -->
-	<!---->
-
-	<xs:complexType name="eCategories">
-		<xs:sequence>
-			<xs:element name="category" type="rail:eCategory"
-				maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- category                                                                -->
-	<!---->
-
-	<xs:complexType name="eCategory">
-		<xs:complexContent>
-			<xs:extension base="rail:tCategory">
-				<xs:sequence>
-					<xs:any namespace="##other"
-						processContents="strict" minOccurs="0" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- trainParts                                                              -->
-	<!--   +- trainPart                                                          -->
-	<!---->
-
-	<xs:complexType name="eTrainParts">
-		<xs:sequence>
-			<xs:element name="trainPart" type="rail:eTrainPart"
-				maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- trainPart                                                               -->
-	<!--   +- formationTT                                                        -->
-	<!--   +- operatingPeriodRef                                                 -->
-	<!--   +- ocpsTT                                                             -->
-	<!---->
-
-	<xs:complexType name="eTrainPart">
-		<xs:complexContent>
-			<xs:extension base="rail:tTrainPart">
-				<xs:sequence>
-					<xs:element name="formationTT" type="rail:eFormationTT"
-						minOccurs="0" />
-					<xs:element name="operatingPeriodRef" type="rail:eOperatingPeriodRef" 
-						minOccurs="0"/>
-					<xs:element name="ocpsTT"
-						type="rail:eOcpsTT">
-					</xs:element>
-					<xs:any namespace="##other"
-						processContents="strict" minOccurs="0" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- operatingPeriodRef                                                      -->
-	<!--   +- specialService                                                     -->
-	<!---->
-
-	<xs:complexType name="eOperatingPeriodRef">
-		<xs:complexContent>
-			<xs:extension base="rail:tOperatingPeriodRef">
-			<xs:sequence>
-				<xs:element name="specialService" type="rail:tSpecialService" 
-					minOccurs="0" maxOccurs="unbounded"/>
-			</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- ocpsTT                                                                  -->
-	<!--   +- ocpTT                                                              -->
-	<!---->
-
-	<xs:complexType name="eOcpsTT">
-		<xs:sequence>
-			<xs:element name="ocpTT" type="rail:eOcpTT"
-				maxOccurs="unbounded">
-			</xs:element>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- ocpTT                                                                   -->
-	<!--   +- times                                                              -->
-	<!--   +- connections                                                        -->
-	<!--   +- statistics                                                         -->
-	<!--   +- sectionTT                                                          -->
-	<!--   +- stopDescription                                                    -->
-	<!---->
-
-	<xs:complexType name="eOcpTT">
-		<xs:complexContent>
-			<xs:extension base="rail:tOcpTT">
-				<xs:sequence>
-					<xs:element name="times" type="rail:eArrivalDepartureTimes" 
-						minOccurs="0" maxOccurs="unbounded">
-					</xs:element>
-					<xs:element name="connections" type="rail:eConnectionsTT" 
-						minOccurs="0">
-					</xs:element>
-					<xs:element name="statistics" type="rail:eStatistics"
-						minOccurs="0">
-					</xs:element>
-					<xs:element name="sectionTT" type="rail:eSectionTT"
-						minOccurs="0">
-					</xs:element>
-					<xs:element name="stopDescription"
-						type="rail:eStopDescription" minOccurs="0">
-					</xs:element>
-					<xs:any namespace="##other"
-						processContents="strict" minOccurs="0" maxOccurs="unbounded" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- arrivalDepartureTimes                                                   -->
-	<!---->
-
-	<xs:complexType name="eArrivalDepartureTimes">
-		<xs:complexContent>
-			<xs:extension base="rail:tArrivalDepartureTimes" />
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- connections                                                             -->
-	<!--   +- connection                                                         -->
-	<!---->
-
-	<xs:complexType name="eConnectionsTT">
-		<xs:sequence>
-			<xs:element name="connection" type="rail:tConnectionTT"
-				minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- statistics                                                               -->
-	<!--   +- statistic                                                           -->
-	<!---->
-
-	<xs:complexType name="eStatistics">
-		<xs:sequence>
-			<xs:element name="statistic" type="rail:eStatistic" minOccurs="0" maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- statistic                                                               -->
-	<!--   +- mean                                                  -->
-	<!--   +- median                                                  -->
-	<!--   +- standardDeviation                                                  -->
-	<!--   +- statisticAnalyses                                                  -->
-	<!---->
-
-	<xs:complexType name="eStatistic">
-		<xs:complexContent>
-			<xs:extension base="rail:tStatistic">
-				<xs:sequence>
-					<xs:element name="mean" type="rail:tStatisticTimes" minOccurs="0"/>
-					<xs:element name="median" type="rail:tStatisticTimes" minOccurs="0"/>
-					<xs:element name="standardDeviation" type="rail:tStandardDeviationTimes" minOccurs="0"/>
-					<xs:element name="statisticAnalyses" type="rail:tStatisticAnalyses" minOccurs="0" maxOccurs="unbounded"/>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- sectionTT                                                               -->
-	<!--   +- trackRef                                                           -->
-	<!--   +- runTimes                                                           -->
-	<!---->
-
-	<xs:complexType name="eSectionTT">
-		<xs:complexContent>
-			<xs:extension base="rail:tSectionTT">
-				<xs:sequence>
-					<xs:element minOccurs="0" maxOccurs="unbounded" name="trackRef" type="rail:tElementWithReference" />
-					<xs:element minOccurs="0" name="runTimes" type="rail:tRunTimes" />
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- stopDescription                                                          -->
-	<!--   +- stopTimes                                                           -->
-	<!---->
-	
-	<xs:complexType name="eStopDescription">
-		<xs:complexContent>
-			<xs:extension base="rail:tStopDescription">
-				<xs:sequence>
-					<xs:element minOccurs="0" name="stopTimes" type="rail:tStopTimes" />
-				</xs:sequence>
-			</xs:extension>
-	</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- trains                                                                  -->
-	<!--   +- train                                                              -->
-	<!---->
-
-	<xs:complexType name="eTrains">
-		<xs:sequence>
-			<xs:element name="train" type="rail:eTrain"
-				maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- train                                                                   -->
-	<!--   +- trainPartSequence                                                  -->
-	<!---->
-
-	<xs:complexType name="eTrain">
-		<xs:complexContent>
-			<xs:extension base="rail:tTrain">
-				<xs:sequence>
-					<xs:element name="trainPartSequence" type="rail:eTrainPartSequence" maxOccurs="unbounded"/>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- trainPartSequence                                                       -->
-	<!--   +- trainPartRef                                                       -->
-	<!--   +- equipmentUsage                                                     -->
-	<!--   +- brakeUsage                                                         -->
-	<!---->
-
-	<xs:complexType name="eTrainPartSequence">
-		<xs:complexContent>
-			<xs:extension base="rail:tTrainPartSequence">
-				<xs:sequence>
-					<xs:element name="trainPartRef" type="rail:tTrainPartRef" maxOccurs="unbounded"/>
-					<xs:element name="equipmentUsage" type="rail:eEquipmentUsage" minOccurs="0"/>
-					<xs:element name="brakeUsage" type="rail:eBrakeUsage" minOccurs="0"/>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- brakeUsage                                                          -->
-	<!---->
-
-		 <xs:complexType name="eBrakeUsage">
-		 		<xs:complexContent>
-					<xs:extension base="rail:tBasicBrakeType">
-				<xs:attributeGroup ref="rail:aBrakeUsage" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- trainGroups                                                                  -->
-	<!--   +- trainGroup                                                              -->
-	<!---->
-
-	<xs:complexType name="eTrainGroups">
-		<xs:sequence>
-			<xs:element name="trainGroup" type="rail:eTrainGroup"
-				maxOccurs="unbounded" />
-		</xs:sequence>
-	</xs:complexType>
-
-	<!-- train                                                                   -->
-	<!--   +- trainRef                                                           -->	<!--   +- trainPartSequence                                                  -->
-	<!---->
-
-	<xs:complexType name="eTrainGroup">
-		<xs:complexContent>
-			<xs:extension base="rail:tTrainGroup">
-				<xs:sequence>
-					<xs:element name="trainRef" type="rail:tTrainRef" maxOccurs="unbounded"/>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!--*********************************************************-->
-	<!-- Rostering types -->
-	<!--*********************************************************-->
-
-	<!---->
-	<!-- rosterings                                                              -->
-	<!--   +- rostering                                                          -->
-	<!---->
-
-	<xs:complexType name="eRosterings">
-		<xs:sequence>
-			<xs:element name="rostering" type="rail:eRostering" maxOccurs="unbounded"/>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- rostering                                                               -->
-	<!--   +- blockParts                                                         -->
-	<!--   +- blocks                                                             -->
-	<!--   +- circulations                                                       -->
-	<!---->
-
-	<xs:complexType name="eRostering">
-		<xs:complexContent>
-			<xs:extension base="rail:tRostering">
-				<xs:sequence>
-					<xs:element name="blockParts" type="rail:eBlockParts"/>
-					<xs:element name="blocks" type="rail:eBlocks"/>
-					<xs:element name="circulations" type="rail:eCirculations"/>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>	
-	
-	<!---->
-	<!-- blocks                                                                  -->
-	<!--   +- block                                                              -->
-	<!---->
-
-	<xs:complexType name="eBlocks">
-		<xs:sequence>
-			<xs:element name="block" type="rail:eBlock" maxOccurs="unbounded"/>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- blockParts                                                                  -->
-	<!--   +- blockPart                                                              -->
-	<!--      +- blockPartRef                                                        -->
-	<!---->
-
-	<xs:complexType name="eBlock">
-		<xs:complexContent>
-			<xs:extension base="rail:tBlock">
-				<xs:sequence>
-					<xs:element name="blockPartSequence" type="rail:eBlockPartSequence" minOccurs="0" maxOccurs="unbounded"/>
-					<xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:complexType name="eBlockPartSequence">
-		<xs:complexContent>
-			<xs:extension base="rail:tBlockPartSequence">
-				<xs:sequence>
-					<xs:element name="blockPartRef" type="rail:tBlockPartRef" maxOccurs="unbounded"/>
-				</xs:sequence>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<!---->
-	<!-- blockParts                                                                  -->
-	<!--   +- blockPart                                                              -->
-	<!---->
-
-	<xs:complexType name="eBlockParts">
-		<xs:sequence>
-			<xs:element name="blockPart" type="rail:tBlockPart" maxOccurs="unbounded"/>
-			<xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded"/>
-		</xs:sequence>
-	</xs:complexType>
-
-	<!---->
-	<!-- circulations                                                                -->
-	<!--   +- circulation                                                            -->
-	<!---->
-
-	<xs:complexType name="eCirculations">
-		<xs:sequence>
-			<xs:element name="circulation" type="rail:tCirculation" maxOccurs="unbounded"/>
-		</xs:sequence>
-	</xs:complexType>
-
-	</xs:schema>
+  <xs:complexType name="eBlockPartSequence">
+    <xs:complexContent>
+      <xs:extension base="rail:tBlockPartSequence">
+        <xs:sequence>
+          <xs:element name="blockPartRef" type="rail:tBlockPartRef" maxOccurs="unbounded" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eBlockParts">
+    <xs:sequence>
+      <xs:element name="blockPart" type="rail:tBlockPart" maxOccurs="unbounded" />
+      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eCirculations">
+    <xs:sequence>
+      <xs:element name="circulation" type="rail:tCirculation" maxOccurs="unbounded" />
+    </xs:sequence>
+  </xs:complexType>
+
+</xs:schema>
diff --git a/schema/timetableTypes.xsd b/schema/timetableTypes.xsd
index 9b551e0..cd71051 100644
--- a/schema/timetableTypes.xsd
+++ b/schema/timetableTypes.xsd
@@ -1,457 +1,329 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2009"
-	xmlns:xs="https://www.w3.org/2001/XMLSchema"
-    xmlns:xml="https://www.w3.org/XML/1998/namespace"
-	targetNamespace="https://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
-
-    <xs:annotation>
-        <xs:documentation>
-        Copyright (c) railML.org; All Rights Reserved. 
-
-        This work is licensed under a Creative Commons Attribution 2.0 License. 
-        https://creativecommons.org/licenses/by/2.0/
-
-        For further information see: https://www.railml.org/
-
-        Content of this file: 
-        XML Schema for railML(R) 2.0 
-        Definition of attribute groups, simple and complex types, 
-        used by timetable sub schema (TT)
-        </xs:documentation>
-    </xs:annotation>
-
-	<xs:include schemaLocation="railwayUnits.xsd" />
-	<xs:include schemaLocation="railwayBaseTypes.xsd" />
-
-   <xs:import namespace="https://www.w3.org/XML/1998/namespace"
-    schemaLocation="https://www.w3.org/2001/03/xml.xsd" />  
-
-	<!--*********************************************************-->
-	<!-- Timetable itself -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTimetable">
-		<xs:complexContent>
-			<xs:extension base="rail:tGlobalElementWithMetadata">
-				<xs:attributeGroup ref="rail:aTimetable" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aTimetable">
-		<xs:attribute name="infrastructureRef" type="rail:tGenericRef" />
-		<xs:attribute name="rollingstockRef" type="rail:tGenericRef" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Operating Period -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tOperatingPeriod">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aOperatingPeriod" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aOperatingPeriod">
-		<xs:attribute name="timetablePeriodRef" type="rail:tGenericRef" />
-		<xs:attributeGroup ref="rail:aServicePeriod" />
-	</xs:attributeGroup>
-
-	<xs:attributeGroup name="aServicePeriod">
-		<xs:attributeGroup ref="rail:aTimePeriod" />
-		<xs:attribute name="bitMask">
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:whiteSpace value="collapse" />
-					<xs:pattern value="[0-1]*" />
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Special service -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tSpecialService">
-		<xs:attributeGroup ref="rail:aSpecialService" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aSpecialService">
-		<xs:attribute name="type" use="required">
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:enumeration value="include" />
-					<xs:enumeration value="exclude" />
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="singleDate" type="xs:date" />
-		<xs:attributeGroup ref="rail:aTimePeriod" />
-		<xs:attributeGroup ref="rail:aPeriodTimeSpan" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Operating Day -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tOperatingDay">
-		<xs:attributeGroup ref="rail:aOperatingCode" />
-		<xs:attributeGroup ref="rail:aTimePeriod" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aOperatingCode">
-		<xs:attribute name="operatingCode" use="required">
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:length value="7" />
-					<xs:pattern value="[0-1]{7}" />
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Operating day devianvce                                 -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tOperatingDayDeviance">
-		<xs:attributeGroup ref="rail:aOperatingCode" />
-		<xs:attributeGroup ref="rail:aOperatingDayDeviance" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aOperatingDayDeviance">
-		<xs:attribute name="holidayOffset" type="xs:integer" use="required" />
-		<xs:attribute name="ranking" type="xs:positiveInteger" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Holiday -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tHoliday">
-		<xs:attributeGroup ref="rail:aHoliday" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aHoliday">
-		<xs:attribute name="holidayDate" type="xs:date"
-			use="required" />
-		<xs:attribute name="description" type="rail:tElementDescription" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Timetable period -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTimetablePeriod">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aTimetablePeriod" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aTimetablePeriod">
-		<xs:attributeGroup ref="rail:aTimePeriod" />
-		<xs:attributeGroup ref="rail:aPeriodTimeSpan" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Formation -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tFormationTT">
-		<xs:attributeGroup ref="rail:aFormationTT" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aFormationTT">
-		<xs:attribute name="formationRef" type="rail:tGenericRef" />
-		<xs:attribute name="weight" type="rail:tWeightTons" />
-		<xs:attribute name="length" type="rail:tLengthM" />
-		<xs:attribute name="speed" type="rail:tSpeedKmPerHour" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- equipment usage -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tEquipment">
-		<xs:attributeGroup ref="rail:aEquipment" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aEquipment">
-		<xs:attribute name="type" type="rail:tNationalSystemsType" />
-		<xs:attribute name="uses" type="xs:boolean" />
-		<xs:attribute name="description" type="xs:string" />
-		<!-- Provide an extension point for other attributes-->
-		<xs:attributeGroup ref="rail:anyAttribute" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- brake usage -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tBrakeUsage">
-		<xs:attributeGroup ref="rail:aBrakeUsage" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aBrakeUsage">
-		<xs:attribute name="brakePercentage" type="rail:tBrakePercentage" />
-		<!-- Provide an extension point for other attributes-->
-		<xs:attributeGroup ref="rail:anyAttribute" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Booking -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tBooking">
-		<xs:attributeGroup ref="rail:aBooking" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aBooking">
-		<xs:attribute name="bookingNumber" type="rail:tGenericName" use="required" />
-		<xs:attribute name="vehicleRef" type="rail:tGenericRef" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Category data, used to group trains by priority -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tCategory">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aCategory" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aCategory">
-		<xs:attribute name="trainUsage" type="rail:tUsageType" />
-		<xs:attribute name="deadrun" type="xs:boolean" />
-		<xs:attribute name="categoryPriority" type="xs:string" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Train part -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTrainPart">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aTrainPart" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aTrainPart">
-		<xs:attribute name="trainLine" type="xs:string" />
-		<xs:attribute name="trainNumber" type="xs:string" />
-		<xs:attribute name="additionalTrainNumber" type="xs:string" />
-		<xs:attribute name="processStatus" type="rail:tProcessStatus" />
-		<xs:attribute name="debitcode" type="xs:integer" />
-		<xs:attribute name="remarks" type="xs:string" />
-		<xs:attribute name="timetablePeriodRef" type="rail:tGenericRef" />
-		<xs:attribute name="categoryRef" type="rail:tGenericRef" />
-		<xs:attribute name="operator" type="xs:string" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Train -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTrain">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aTrain" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aTrain">
-		<xs:attribute name="type" use="required">
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:enumeration value="operational" />
-					<xs:enumeration value="commercial" />
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="trainNumber" type="xs:string" />
-		<xs:attribute name="additionalTrainNumber" type="xs:string" />
-		<xs:attribute name="scope">
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:enumeration value="primary" />
-					<xs:enumeration value="secondary" />
-					<xs:enumeration value="secondaryStart" />
-					<xs:enumeration value="secondaryEnd" />
-					<xs:enumeration value="secondaryInner" />
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="processStatus" type="rail:tProcessStatus" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Train Group-->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTrainGroup">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aTrainGroup" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aTrainGroup">
-		<xs:attribute name="type">
-			<xs:simpleType>
-				<xs:union>
-					<xs:simpleType>
-						<xs:restriction base="xs:string">
-							<xs:enumeration value="interval" />
-						</xs:restriction>
-					</xs:simpleType>
-					<xs:simpleType>
-						<xs:restriction base="rail:tOtherEnumerationValue" />
-					</xs:simpleType>
-				</xs:union>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="trainNumber" type="xs:string" />
-		<xs:attribute name="processStatus" type="rail:tProcessStatus" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Train Ref-->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTrainRef">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithReference">
-				<xs:attributeGroup ref="rail:aTrainRef" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aTrainRef">
-		<xs:attribute name="sequence" type="rail:tCounter" use="required" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Train Part Sequence -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTrainPartSequence">
-		<xs:attributeGroup ref="rail:aTrainPartSequence" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aTrainPartSequence">
-		<xs:attribute name="sequence" type="rail:tCounter" use="required" />
-		<xs:attribute name="pathStatus" type="rail:tPathStatus" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Train Part Ref-->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tTrainPartRef">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithReference">
-				<xs:attributeGroup ref="rail:aTrainPartRef" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aTrainPartRef">
-		<xs:attribute name="position" type="rail:tCounter" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Operating Period Ref-->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tOperatingPeriodRef">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithReference">
-				<xs:attributeGroup ref="rail:aOperatingPeriodRef" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-	<xs:attributeGroup name="aOperatingPeriodRef">
-		<xs:attributeGroup ref="rail:aTimePeriod" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- ocpTT data -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tOcpTT">
-		<xs:attributeGroup ref="rail:aOcpTT" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aOcpTT">
-		<xs:attribute name="ocpRef" type="rail:tGenericRef" use="required" />
-		<xs:attribute name="trackRef" type="rail:tGenericRef" />
-		<xs:attribute name="trackInfo" type="xs:string" />
-		<xs:attribute name="ocpType">
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:enumeration value="stop" />
-					<xs:enumeration value="pass" />
-					<xs:enumeration value="begin" />
-					<xs:enumeration value="end" />
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="remarks" type="xs:string" />
-		<xs:attribute name="trainReverse" type="xs:boolean" />
-		<xs:attribute name="alignment" type="rail:tTrainAlignment" />
-		<xs:attribute name="offset" type="rail:tLengthM" />
-		<xs:attribute name="shuntingTime" type="xs:duration" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Arrival and departure times -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tArrivalDepartureTimes">
-		<xs:attributeGroup ref="rail:aTimesScope" />
-		<xs:attributeGroup ref="rail:aArrivalDepartureTimes" />
-	</xs:complexType>
-	
-	<xs:attributeGroup name="aArrivalDepartureTimes">
-		<xs:attribute name="arrival" type="xs:time" />
-		<xs:attribute name="arrivalDay" type="xs:integer" />
-		<xs:attribute name="departure" type="xs:time" />
-		<xs:attribute name="departureDay" type="xs:integer" />
-	</xs:attributeGroup>
-	
-	<xs:attributeGroup name="aTimesScope">
-		<xs:attribute name="scope" use="required">
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:enumeration value="actual" />
-					<xs:enumeration value="calculated" />
-					<xs:enumeration value="published" />
-					<xs:enumeration value="scheduled" />
-					<xs:enumeration value="earliest" />
-					<xs:enumeration value="latest" />
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-  <!--*********************************************************-->
-  <!-- Stop times -->
-  <!--*********************************************************-->
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2011" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:xml="https://www.w3.org/XML/1998/namespace" targetNamespace="https://www.railml.org/schemas/2011" elementFormDefault="qualified" version="2.1">
+
+  <xs:annotation>
+    <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
+    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.0 Definition of attribute groups, simple and complex types, used by timetable sub schema (TT)</xs:documentation>
+  </xs:annotation>
+
+  <xs:include schemaLocation="railwayUnits.xsd" />
+  <xs:include schemaLocation="railwayBaseTypes.xsd" />
+
+  <xs:import namespace="https://www.w3.org/XML/1998/namespace" schemaLocation="https://www.w3.org/2001/03/xml.xsd" />
+
+  <xs:complexType name="tTimetable">
+    <xs:complexContent>
+      <xs:extension base="rail:tGlobalElementWithMetadata">
+        <xs:attributeGroup ref="rail:aTimetable" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTimetable">
+    <xs:attribute name="infrastructureRef" type="rail:tGenericRef" />
+    <xs:attribute name="rollingstockRef" type="rail:tGenericRef" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tOperatingPeriod">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aOperatingPeriod" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aOperatingPeriod">
+    <xs:attribute name="timetablePeriodRef" type="rail:tGenericRef" />
+    <xs:attributeGroup ref="rail:aServicePeriod" />
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="aServicePeriod">
+    <xs:attributeGroup ref="rail:aTimePeriod" />
+    <xs:attribute name="bitMask" type="rail:tBitMask" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tSpecialService">
+    <xs:attributeGroup ref="rail:aSpecialService" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aSpecialService">
+    <xs:attribute name="type" type="rail:tSpecialServiceType" use="required" />
+    <xs:attribute name="singleDate" type="xs:date" />
+    <xs:attributeGroup ref="rail:aTimePeriod" />
+    <xs:attributeGroup ref="rail:aPeriodTimeSpan" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tOperatingDay">
+    <xs:attributeGroup ref="rail:aOperatingCode" />
+    <xs:attributeGroup ref="rail:aTimePeriod" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aOperatingCode">
+    <xs:attribute name="operatingCode" type="rail:tOperatingCode" use="required" />
+    <xs:attribute name="onRequest" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>needed for "runs Monday to Friday and additionally Sunday on request"</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tOperatingDayDeviance">
+    <xs:attributeGroup ref="rail:aOperatingCode" />
+    <xs:attributeGroup ref="rail:aOperatingDayDeviance" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aOperatingDayDeviance">
+    <xs:attribute name="holidayOffset" type="xs:integer" use="required" />
+    <xs:attribute name="ranking" type="rail:tPositiveCounter" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tHoliday">
+    <xs:attributeGroup ref="rail:aHoliday" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aHoliday">
+    <xs:attribute name="holidayDate" type="xs:date" use="required" />
+    <xs:attribute name="description" type="rail:tElementDescription" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTimetablePeriod">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aTimetablePeriod" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTimetablePeriod">
+    <xs:attributeGroup ref="rail:aTimePeriod" />
+    <xs:attributeGroup ref="rail:aPeriodTimeSpan" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tFormationTT">
+    <xs:attributeGroup ref="rail:aFormationTT" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aFormationTT">
+    <xs:attribute name="formationRef" type="rail:tGenericRef" />
+    <xs:attribute name="weight" type="rail:tWeightTons" />
+    <xs:attribute name="load" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>weight without engine</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="length" type="rail:tLengthM" />
+    <xs:attribute name="speed" type="rail:tSpeedKmPerHour" />
+    <xs:attribute name="timetableLoad" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>assumed load (without engine) for timetable planning</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tEquipment">
+    <xs:attributeGroup ref="rail:aEquipment" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aEquipment">
+    <xs:attribute name="type" type="rail:tNationalSystemsType" />
+    <xs:attribute name="uses" type="xs:boolean" />
+    <xs:attribute name="description" type="xs:string" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tBrakeUsage">
+    <xs:attributeGroup ref="rail:aBrakeUsage" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aBrakeUsage">
+    <xs:attribute name="brakePercentage" type="rail:tBrakePercentage" />
+    <xs:attribute name="regularBrakePercentage" type="rail:tBrakePercentage">
+      <xs:annotation>
+        <xs:documentation>to be used instead of the uncertain "brakePercentage" as specific value for the regular case"</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="emergencyBrakePercentage" type="rail:tBrakePercentage">
+      <xs:annotation>
+        <xs:documentation>to be used instead of the uncertain "brakePercentage" as specific value for the emergency case"</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tBooking">
+    <xs:attributeGroup ref="rail:aBooking" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aBooking">
+    <xs:attribute name="bookingNumber" type="rail:tGenericName" use="required" />
+    <xs:attribute name="posInFormation" type="rail:tPositiveCounter">
+      <xs:annotation>
+        <xs:documentation>needed as reference, if the same vehicle is referenced several times inside a formation</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="vehicleRef" type="rail:tGenericRef" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tCategory">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aCategory" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aCategory">
+    <xs:attribute name="trainUsage" type="rail:tUsageType" />
+    <xs:attribute name="deadrun" type="xs:boolean" />
+    <xs:attribute name="categoryPriority" type="xs:string" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTrainPart">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aTrainPart" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTrainPart">
+    <xs:attribute name="line" type="xs:string">
+      <xs:annotation>
+        <xs:documentation>the "train part line", which could be different from the "train line"</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="trainLine" type="xs:string">
+      <xs:annotation>
+        <xs:documentation>DEPRECATED: the "train line" is located at the train and not to be mixed with a "train part line"</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="trainNumber" type="xs:string" />
+    <xs:attribute name="additionalTrainNumber" type="xs:string" />
+    <xs:attribute name="processStatus" type="rail:tProcessStatus" />
+    <xs:attribute name="debitcode" type="xs:integer" />
+    <xs:attribute name="remarks" type="xs:string" />
+    <xs:attribute name="timetablePeriodRef" type="rail:tGenericRef" />
+    <xs:attribute name="categoryRef" type="rail:tGenericRef" />
+    <xs:attribute name="operator" type="xs:string" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTrain">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aTrain" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTrain">
+    <xs:attribute name="type" type="rail:tTrainType" use="required" />
+    <xs:attribute name="trainNumber" type="xs:string" />
+    <xs:attribute name="additionalTrainNumber" type="xs:string" />
+    <xs:attribute name="scope" type="rail:tTrainScope" />
+    <xs:attribute name="processStatus" type="rail:tProcessStatus" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTrainGroup">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aTrainGroup" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTrainGroup">
+    <xs:attribute name="type" type="rail:tTrainGroupType" />
+    <xs:attribute name="trainNumber" type="xs:string" />
+    <xs:attribute name="processStatus" type="rail:tProcessStatus" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTrainRef">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <xs:attributeGroup ref="rail:aTrainRef" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTrainRef">
+    <xs:attribute name="sequence" type="rail:tPositiveCounter" use="required" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTrainPartSequence">
+    <xs:attributeGroup ref="rail:aTrainPartSequence" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTrainPartSequence">
+    <xs:attribute name="sequence" type="rail:tPositiveCounter" use="required" />
+    <xs:attribute name="pathStatus" type="rail:tPathStatus" />
+    <xs:attribute name="categoryRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>the category of a train which could differ (by its meaning) from a train part category</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTrainPartRef">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <xs:attributeGroup ref="rail:aTrainPartRef" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTrainPartRef">
+    <xs:attribute name="position" type="rail:tPositiveCounter" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tOperatingPeriodRef">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <xs:attributeGroup ref="rail:aOperatingPeriodRef" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aOperatingPeriodRef">
+    <xs:attributeGroup ref="rail:aTimePeriod" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tOcpTT">
+    <xs:attributeGroup ref="rail:aOcpTT" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aOcpTT">
+    <xs:attribute name="ocpRef" type="rail:tGenericRef" use="required" />
+    <xs:attribute name="trackRef" type="rail:tGenericRef" />
+    <xs:attribute name="trackInfo" type="xs:string" />
+    <xs:attribute name="ocpType" type="rail:tOcpTTType" />
+    <xs:attribute name="remarks" type="xs:string" />
+    <xs:attribute name="trainReverse" type="xs:boolean" />
+    <xs:attribute name="alignment" type="rail:tTrainAlignment" />
+    <xs:attribute name="offset" type="rail:tLengthM" />
+    <xs:attribute name="shuntingTime" type="xs:duration" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tArrivalDepartureTimes">
+    <xs:attributeGroup ref="rail:aTimesScope" />
+    <xs:attributeGroup ref="rail:aArrivalDepartureTimes" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aArrivalDepartureTimes">
+    <xs:attribute name="arrival" type="xs:time" />
+    <xs:attribute name="arrivalDay" type="xs:integer" />
+    <xs:attribute name="departure" type="xs:time" />
+    <xs:attribute name="departureDay" type="xs:integer" />
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="aTimesScope">
+    <xs:attribute name="scope" type="rail:tTimeScope" use="required" />
+  </xs:attributeGroup>
 
   <xs:complexType name="tStopTimes">
     <xs:attributeGroup ref="rail:aStopTimes" />
@@ -465,101 +337,74 @@
     <xs:attribute name="clearanceTime" type="xs:duration" />
   </xs:attributeGroup>
 
-    <!--*********************************************************-->
-	<!-- Connection -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tConnectionTT">
-		<xs:attributeGroup ref="rail:aConnectionTT" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aConnectionTT">
-		<xs:attribute name="trainRef" type="rail:tGenericRef" use="required" />
-		<xs:attribute name="minConnTime" type="xs:duration" />
-		<xs:attribute name="maxConnTime" type="xs:duration" />
-		<xs:attribute name="connOperation">
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:enumeration value="none" />
-					<xs:enumeration value="join" />
-					<xs:enumeration value="split" />
-					<xs:enumeration value="meet" />
-					<xs:enumeration value="turnaround" />
-					<xs:enumeration value="IsWaitingFor" />
-					<xs:enumeration value="IsExpectedBy" />
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Statistic and analyses -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tStatistic">
-		<xs:attributeGroup ref="rail:aStatistic" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aStatistic" />
-
-	<xs:complexType name="tStatisticTimes">
-		<xs:attributeGroup ref="rail:aArrivalDepartureTimes" />
-		<xs:attributeGroup ref="rail:aArrivalDepartureDelay" />
-		<xs:attribute name="stopTime" type="xs:duration" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aArrivalDepartureDelay">
-		<xs:attribute name="arrivalDelay" type="xs:duration" />
-		<xs:attribute name="departureDelay" type="xs:duration" />
-	</xs:attributeGroup>
-
-	<xs:complexType name="tStandardDeviationTimes">
-		<xs:attributeGroup ref="rail:aArrivalDepartureDelay" />
-	</xs:complexType>
-
-	<xs:complexType name="tStatisticAnalyses">
-		<xs:attributeGroup ref="rail:aStatisticAnalyses" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aStatisticAnalyses">
-		<xs:attribute name="description" type="xs:string" />
-		<xs:attribute name="percentage" type="xs:decimal" />
-		<xs:attribute name="value" type="xs:duration" />
-		<xs:attribute name="figure">
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:enumeration value="maxDelayArrival" />
-					<xs:enumeration value="maxDelayDeparture" />
-					<xs:enumeration value="meanDelayArrival" />
-					<xs:enumeration value="meanDelayDeparture" />
-					<xs:enumeration value="medianDelayArrival" />
-					<xs:enumeration value="medianDelayDeparture" />
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Section TT -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tSectionTT">
-		<xs:attributeGroup ref="rail:aSectionTT" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aSectionTT">
-		<xs:attribute name="section" type="xs:string" />
-		<xs:attribute name="lineRef" type="rail:tGenericRef" />
-		<xs:attribute name="trackInfo" type="xs:string" />
-		<xs:attribute name="description" type="rail:tElementDescription" />
-		<xs:attribute name="remarks" type="xs:string" />
-		<xs:attribute name="percentageSupplement" type="xs:decimal" />
-		<xs:attribute name="distance" type="rail:tLength" />
-	</xs:attributeGroup>
-
-  <!--*********************************************************-->
-  <!-- Run times -->
-  <!--*********************************************************-->
+  <xs:complexType name="tConnectionTT">
+    <xs:attributeGroup ref="rail:aConnectionTT" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aConnectionTT">
+    <xs:attribute name="trainRef" type="rail:tGenericRef" use="required" />
+    <xs:attribute name="minConnTime" type="xs:duration" />
+    <xs:attribute name="maxConnTime" type="xs:duration" />
+    <xs:attribute name="connOperation" type="rail:tConnOperation" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tStatistic">
+    <xs:attributeGroup ref="rail:aStatistic" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aStatistic" />
+
+  <xs:complexType name="tStatisticTimes">
+    <xs:attributeGroup ref="rail:aArrivalDepartureTimes" />
+    <xs:attributeGroup ref="rail:aArrivalDepartureDelay" />
+    <xs:attribute name="stopTime" type="xs:duration" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aArrivalDepartureDelay">
+    <xs:attribute name="arrivalDelay" type="xs:duration" />
+    <xs:attribute name="departureDelay" type="xs:duration" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tStandardDeviationTimes">
+    <xs:attributeGroup ref="rail:aArrivalDepartureDelay" />
+  </xs:complexType>
+
+  <xs:complexType name="tStatisticAnalyses">
+    <xs:attributeGroup ref="rail:aStatisticAnalyses" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aStatisticAnalyses">
+    <xs:attribute name="description" type="xs:string" />
+    <xs:attribute name="percentage" type="xs:decimal" />
+    <xs:attribute name="value" type="xs:duration" />
+    <xs:attribute name="figure" type="rail:tStatisticFigure" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tSectionTT">
+    <xs:attributeGroup ref="rail:aSectionTT" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aSectionTT">
+    <xs:attribute name="section" type="xs:string" />
+    <xs:attribute name="lineRef" type="rail:tGenericRef" />
+    <xs:attribute name="trackInfo" type="xs:string" />
+    <xs:attribute name="description" type="rail:tElementDescription" />
+    <xs:attribute name="remarks" type="xs:string" />
+    <xs:attribute name="percentageSupplement" type="xs:decimal" />
+    <xs:attribute name="distance" type="rail:tLengthM" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTrackRef">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <xs:attribute name="dir" type="rail:tLaxDirection">
+          <xs:annotation>
+            <xs:documentation>driving direction in relation to track definition direction</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
   <xs:complexType name="tRunTimes">
     <xs:attributeGroup ref="rail:aRunTimes" />
@@ -570,270 +415,389 @@
     <xs:attribute name="operationalReserve" type="xs:duration" />
     <xs:attribute name="additionalReserve" type="xs:duration" />
   </xs:attributeGroup>
-  
-	<!--*********************************************************-->
-	<!-- Stop description -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tStopDescription">
-		<xs:attributeGroup ref="rail:aStopDescription" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aStopDescription">
-		<xs:attribute name="commercial" type="xs:boolean" />
-		<xs:attribute name="stopOnRequest" type="xs:boolean" />
-		<xs:attribute name="onOff">
-			<xs:simpleType>
-				<xs:restriction base="xs:string">
-					<xs:enumeration value="both" />
-					<xs:enumeration value="on" />
-					<xs:enumeration value="off" />
-				</xs:restriction>
-			</xs:simpleType>
-		</xs:attribute>
-		<xs:attribute name="purpose" type="xs:string" />
-		<xs:attribute name="operatingPeriodRef" type="rail:tGenericRef" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Rostering types -->
-	<!--*********************************************************-->
-
-	<!--*********************************************************-->
-	<!-- Rostering -->
-	<!--*********************************************************-->
-
-    <xs:complexType name="tRostering">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aRostering"/>
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aRostering">
-		<xs:attribute name="vehicleRef" type="rail:tGenericRef">
-			<xs:annotation>
-				<xs:documentation>default vehicle, normally
-                    identical for all blockParts; can be
-                    superset by a certain blockPart</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="formationRef" type="rail:tGenericRef">
-			<xs:annotation>
-				<xs:documentation>default formation, normally identical
-                    for all blockParts; can be superset by a certain
-                    blockPart</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="depot" type="xs:string">
-			<xs:annotation>
-				<xs:documentation>depot or location this rostering
-                    belongs to</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="defaultPreProcessingTime" type="xs:duration" >
-			<xs:annotation>
-				<xs:documentation>default duration from the beginning of blocking of the ressource until start of blockPart</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="defaultPostProcessingTime" type="xs:duration" >
-			<xs:annotation>
-				<xs:documentation>default duration from the end of blockPart until the end of blocking of the ressource</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Block -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tBlock">		
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aBlock" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aBlock">
-		<xs:attribute name="blockGroupNumber" type="xs:string" />
-		<xs:attribute name="fixed" type="xs:boolean" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Block Part -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tBlockPartSequence">
-		<xs:attributeGroup ref="rail:aBlockPartSequence" />
-	</xs:complexType>
-
-	<xs:attributeGroup name="aBlockPartSequence">
-		<xs:attribute name="sequence" type="rail:tCounter" use="required" />
-		<xs:attribute name="dayOffset" type="rail:tCounter">
-			<xs:annotation>
-				<xs:documentation>defines the day the blockPart starts if the block runs over midnight (even if it is not longer than 24 hours); first day and default value is 0</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="preProcessingTime" type="xs:duration" >
-			<xs:annotation>
-				<xs:documentation>duration from the beginning of blocking of the ressource until start of blockPart</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="postProcessingTime" type="xs:duration" >
-			<xs:annotation>
-				<xs:documentation>duration from the end of blockPart until the end of blocking of the ressource</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<!-- Provide an extension point for other attributes-->
-		<xs:attribute name="basicBlockRef" type="rail:tGenericRef" />
-		<xs:attributeGroup ref="rail:anyAttribute" />
-	</xs:attributeGroup>
-
-	<xs:complexType name="tBlockPartRef">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithReference" />
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aBlockPartRef">
-		<xs:attribute name="position" type="rail:tCounter" />
-	</xs:attributeGroup>
-	<xs:complexType name="tBlockPart">
-		<xs:complexContent>
-			<xs:extension base="rail:tElementWithIDAndName">
-				<xs:attributeGroup ref="rail:aBlockPart" />
-			</xs:extension>
-		</xs:complexContent>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aBlockPart">
-		<xs:attribute name="begin" type="xs:time" />
-		<xs:attribute name="beginDay" type="xs:integer" />
-		<xs:attribute name="end" type="xs:time" />
-		<xs:attribute name="endDay" type="xs:integer" />
-		<xs:attribute name="startOcpRef" type="rail:tGenericRef" />
-		<xs:attribute name="endOcpRef" type="rail:tGenericRef" />
-		<xs:attribute name="trainPartRef" type="rail:tGenericRef" />
-		<xs:attribute name="operatingPeriodRef" type="rail:tGenericRef" />
-		<xs:attribute name="mission" type="rail:tMission" />
-		<xs:attribute name="fixed" type="xs:boolean" />
-		<xs:attribute name="runLength" type="rail:tLengthKM" />
-		<xs:attribute name="vehicleRef" type="rail:tGenericRef" />
-		<xs:attribute name="formationRef" type="rail:tGenericRef" />
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Circulation -->
-	<!--*********************************************************-->
-
-	<xs:complexType name="tCirculation">
-		<xs:attributeGroup ref="rail:aCirculation"/>
-	</xs:complexType>
-
-	<xs:attributeGroup name="aCirculation">
-		<xs:attribute name="blockRef" type="rail:tGenericRef" use="required"/>
-		<xs:attribute name="startDate" type="xs:date">
-			<xs:annotation>
-				<xs:documentation>if not defined: 
-				operatingPeriodRef must be defined
-                </xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="endDate" type="xs:date">
-			<xs:annotation>
-				<xs:documentation>if not defined:
-                    as operatingPeriod or open end
-                </xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="operatingPeriodRef" type="rail:tGenericRef">
-			<xs:annotation>
-				<xs:documentation>if not defined:
-                    daily from startDate to endDate
-                </xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="repeatCount" type="rail:tCounter">
-			<xs:annotation>
-				<xs:documentation>for abstract circulations
-                    without start/endDate</xs:documentation>
-			</xs:annotation>
-		</xs:attribute>
-		<xs:attribute name="nextBlockRef" type="rail:tGenericRef" use="required"/>
-	</xs:attributeGroup>
-
-	<!--*********************************************************-->
-	<!-- Simple type definitions -->
-	<!--*********************************************************-->
-
-	<xs:simpleType name="tUsageType">
-		<xs:restriction base="xs:string">
-			<xs:enumeration value="passenger" />
-			<xs:enumeration value="goods" />
-			<xs:enumeration value="mixed" />
-		</xs:restriction>
-	</xs:simpleType>
-
-    <xs:simpleType name="tMission">
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="timetable" />
-                    <xs:enumeration value="fullRun" />
-                    <xs:enumeration value="emptyRun" />
-                    <xs:enumeration value="outOfOrder" />
-                    <xs:enumeration value="fillIn" />
-                    <xs:enumeration value="preheating" />
-                    <xs:enumeration value="refuel" />
-                    <xs:enumeration value="shunting" />
-                    <xs:enumeration value="depotrun" />
-                    <xs:enumeration value="standBy" />
-                    <xs:enumeration value="cleaning" />
-                    <xs:enumeration value="maintenance" />
-                    <xs:enumeration value="inspection" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
-
-	<xs:simpleType name="tPathStatus">
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="planned" />
-                    <xs:enumeration value="ordered" />
-                    <xs:enumeration value="confirmed" />
-                    <xs:enumeration value="detailsRefused" />
-                    <xs:enumeration value="cancelled" />
-                    <xs:enumeration value="notAvailable" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
-
-	<xs:simpleType name="tProcessStatus">
-        <xs:union>
-            <xs:simpleType>
-                <xs:restriction base="xs:string">
-                    <xs:enumeration value="planned" />
-                    <xs:enumeration value="actual" />
-                    <xs:enumeration value="calculated" />
-                    <xs:enumeration value="toBeChecked" />
-                    <xs:enumeration value="changed" />
-                    <xs:enumeration value="imported" />
-                </xs:restriction>
-            </xs:simpleType>
-            <xs:simpleType>
-                <xs:restriction base="rail:tOtherEnumerationValue" />
-            </xs:simpleType>
-        </xs:union>
-    </xs:simpleType>
+
+  <xs:complexType name="tStopDescription">
+    <xs:attributeGroup ref="rail:aStopDescription" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aStopDescription">
+    <xs:attribute name="commercial" type="xs:boolean" />
+    <xs:attribute name="stopOnRequest" type="xs:boolean" />
+    <xs:attribute name="onOff" type="rail:tOnOff" />
+    <xs:attribute name="purpose" type="xs:string" />
+    <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tRostering">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aRostering" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aRostering">
+    <xs:attribute name="vehicleRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>default vehicle, normally identical for all blockParts; can be superset by a certain blockPart</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="formationRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>default formation, normally identical for all blockParts; can be superset by a certain blockPart</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="depot" type="xs:string">
+      <xs:annotation>
+        <xs:documentation>depot or location this rostering belongs to</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="defaultPreProcessingTime" type="xs:duration">
+      <xs:annotation>
+        <xs:documentation>default duration from the beginning of blocking of the ressource until start of blockPart</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="defaultPostProcessingTime" type="xs:duration">
+      <xs:annotation>
+        <xs:documentation>default duration from the end of blockPart until the end of blocking of the ressource</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="scope" type="rail:tRosteringScope">
+      <xs:annotation>
+        <xs:documentation>could be "conceptional" or "operational", or in case of timetable constraints for trainParts also "timetable"</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tBlock">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aBlock" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aBlock">
+    <xs:attribute name="blockGroupNumber" type="xs:string" />
+    <xs:attribute name="fixed" type="xs:boolean" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tBlockPartSequence">
+    <xs:attributeGroup ref="rail:aBlockPartSequence" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aBlockPartSequence">
+    <xs:attribute name="sequence" type="rail:tPositiveCounter" use="required" />
+    <xs:attribute name="dayOffset" type="rail:tCounter">
+      <xs:annotation>
+        <xs:documentation>defines the day the blockPart starts if the block runs over midnight (even if it is not longer than 24 hours); first day and default value is 0</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="preProcessingTime" type="xs:duration">
+      <xs:annotation>
+        <xs:documentation>duration from the beginning of blocking of the ressource until start of blockPart</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="postProcessingTime" type="xs:duration">
+      <xs:annotation>
+        <xs:documentation>duration from the end of blockPart until the end of blocking of the ressource</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="basicBlockRef" type="rail:tGenericRef" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tBlockPartRef">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference" />
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tBlockPart">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aBlockPart" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aBlockPart">
+    <xs:attribute name="begin" type="xs:time" />
+    <xs:attribute name="beginDay" type="xs:integer" />
+    <xs:attribute name="end" type="xs:time" />
+    <xs:attribute name="endDay" type="xs:integer" />
+    <xs:attribute name="startOcpRef" type="rail:tGenericRef" />
+    <xs:attribute name="endOcpRef" type="rail:tGenericRef" />
+    <xs:attribute name="trainPartRef" type="rail:tGenericRef" />
+    <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef" />
+    <xs:attribute name="mission" type="rail:tMission" />
+    <xs:attribute name="fixed" type="xs:boolean" />
+    <xs:attribute name="runLength" type="rail:tLengthKM" />
+    <xs:attribute name="vehicleRef" type="rail:tGenericRef" />
+    <xs:attribute name="formationRef" type="rail:tGenericRef" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tCirculation">
+    <xs:attributeGroup ref="rail:aCirculation" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aCirculation">
+    <xs:attribute name="blockRef" type="rail:tGenericRef" use="required" />
+    <xs:attribute name="startDate" type="xs:date">
+      <xs:annotation>
+        <xs:documentation>if not defined: operatingPeriodRef must be defined</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="endDate" type="xs:date">
+      <xs:annotation>
+        <xs:documentation>if not defined: as operatingPeriod or open end</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>if not defined: daily from startDate to endDate</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="repeatCount" type="rail:tCounter">
+      <xs:annotation>
+        <xs:documentation>for abstract circulations without start/endDate</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="nextBlockRef" type="rail:tGenericRef" />
+    <xs:attribute name="nextOperatingPeriodRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>there has to be an information to which operation day of the next block the current block should be linked to. A vehicle can make a standstill for serveral days but the defined next block inside of the cirulation may run every day</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tUsageType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="passenger" />
+      <xs:enumeration value="goods" />
+      <xs:enumeration value="mixed" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tMission">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="timetable" />
+          <xs:enumeration value="fullRun" />
+          <xs:enumeration value="emptyRun" />
+          <xs:enumeration value="outOfOrder" />
+          <xs:enumeration value="fillIn" />
+          <xs:enumeration value="preheating" />
+          <xs:enumeration value="refuel" />
+          <xs:enumeration value="shunting" />
+          <xs:enumeration value="depotrun" />
+          <xs:enumeration value="standBy" />
+          <xs:enumeration value="cleaning" />
+          <xs:enumeration value="maintenance" />
+          <xs:enumeration value="inspection" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tPathStatus">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="planned" />
+          <xs:enumeration value="ordered" />
+          <xs:enumeration value="confirmed" />
+          <xs:enumeration value="detailsRefused" />
+          <xs:enumeration value="cancelled" />
+          <xs:enumeration value="notAvailable" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tProcessStatus">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="planned" />
+          <xs:enumeration value="actual" />
+          <xs:enumeration value="calculated" />
+          <xs:enumeration value="toBeChecked" />
+          <xs:enumeration value="changed" />
+          <xs:enumeration value="imported" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tBitMask">
+    <xs:restriction base="xs:string">
+      <xs:pattern value="[0-1]*" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tOperatingCode">
+    <xs:restriction base="xs:string">
+      <xs:length value="7" />
+      <xs:pattern value="[0-1]{7}" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tTrainScope">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="primary" />
+      <xs:enumeration value="secondary" />
+      <xs:enumeration value="secondaryStart" />
+      <xs:enumeration value="secondaryEnd" />
+      <xs:enumeration value="secondaryInner" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tTimeScope">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="actual" />
+          <xs:enumeration value="calculated" />
+          <xs:enumeration value="published" />
+          <xs:enumeration value="scheduled" />
+          <xs:enumeration value="earliest" />
+          <xs:enumeration value="latest" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tRosteringScope">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="conceptional" />
+          <xs:enumeration value="operational" />
+          <xs:enumeration value="timetable" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tTrainGroupType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="interval" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tSpecialServiceType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="include" />
+      <xs:enumeration value="exclude" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tTrainType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="operational" />
+      <xs:enumeration value="commercial" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tOcpTTType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="stop" />
+      <xs:enumeration value="pass" />
+      <xs:enumeration value="begin">
+        <xs:annotation>
+          <xs:documentation>possible for the first ocp, if train part begins at this ocp and is not part of a longer train path</xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+      <xs:enumeration value="end">
+        <xs:annotation>
+          <xs:documentation>possible for the last ocp, if train part ends at this ocp and is not part of a longer train path</xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tOnOff">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="both" />
+      <xs:enumeration value="on" />
+      <xs:enumeration value="off" />
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tConnOperation">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="none" />
+          <xs:enumeration value="join">
+            <xs:annotation>
+              <xs:documentation>train will be coupled together with an other train</xs:documentation>
+              <xs:documentation>DEPRECATED with 2.1: use commercial trains instead</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="split">
+            <xs:annotation>
+              <xs:documentation>part of the train will go on as an other train</xs:documentation>
+              <xs:documentation>DEPRECATED with 2.1: use commercial trains instead</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="meet" />
+          <xs:enumeration value="turnaround">
+            <xs:annotation>
+              <xs:documentation>the train will go on as an other train</xs:documentation>
+              <xs:documentation>DEPRECATED with 2.1: use rosterings instead</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="IsWaitingFor" />
+          <xs:enumeration value="IsExpectedBy" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tStatisticFigure">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="maxDelayArrival" />
+          <xs:enumeration value="maxDelayDeparture" />
+          <xs:enumeration value="meanDelayArrival" />
+          <xs:enumeration value="meanDelayDeparture" />
+          <xs:enumeration value="medianDelayArrival" />
+          <xs:enumeration value="medianDelayDeparture" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
 </xs:schema>