Dev:changes/2.1/diff

From railML 2 Wiki
Revision as of 13:24, 13 June 2017 by RailML Coord Documentation (talk | contribs) (diff 2.0→2.1 eingefügt)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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. Thanks to Milan Wölke of PSI Transcom for compiling the data.

An explanation how to interpret diff output can be found here.

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="http://www.railml.org/schemas/2009"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema"
-    xmlns:xml="http://www.w3.org/XML/1998/namespace"
-    xmlns:dc="http://purl.org/dc/elements/1.1/"
-	targetNamespace="http://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:dc="http://purl.org/dc/elements/1.1/" targetNamespace="http://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. http://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: http://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="http://purl.org/dc/elements/1.1/" schemaLocation="http://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: http://dublincore.org/ License link: http://creativecommons.org/licenses/by/3.0/</xs:documentation>
+    </xs:annotation>
+  </xs:import>
+
+  <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd" />
 
-        This work is licensed under a Creative Commons Attribution 2.0 License. 
-        http://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: http://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="http://purl.org/dc/elements/1.1/"
-        schemaLocation="http://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:  http://dublincore.org/
-            License link: http://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="http://www.w3.org/XML/1998/namespace"
-    schemaLocation="http://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 http://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 http://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 http://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="http://www.railml.org/schemas/2009"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema"
-	xmlns:xml="http://www.w3.org/XML/1998/namespace"
-    targetNamespace="http://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. 
-        http://creativecommons.org/licenses/by/2.0/
-
-        For further information see: http://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="http://www.w3.org/XML/1998/namespace"
-    schemaLocation="http://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="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://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. http://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: http://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="http://www.w3.org/XML/1998/namespace" schemaLocation="http://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="http://www.railml.org/schemas/2009"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema"
-	xmlns:xml="http://www.w3.org/XML/1998/namespace"
-    targetNamespace="http://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
-
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://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. http://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: http://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="http://www.w3.org/XML/1998/namespace" schemaLocation="http://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. 
-        http://creativecommons.org/licenses/by/2.0/
-
-        For further information see: http://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="http://www.w3.org/XML/1998/namespace"
-        schemaLocation="http://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="http://www.railml.org/schemas/2009"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema"
-	targetNamespace="http://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. 
-        http://creativecommons.org/licenses/by/2.0/
-
-        For further information see: http://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="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://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. http://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: http://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="http://www.railml.org/schemas/2009"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema"
-	xmlns:dc="http://purl.org/dc/elements/1.1/"
-    targetNamespace="http://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://purl.org/dc/elements/1.1/" targetNamespace="http://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. 
-        http://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. http://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: http://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: http://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="http://purl.org/dc/elements/1.1/" schemaLocation="http://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: http://dublincore.org/ License link: http://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="http://purl.org/dc/elements/1.1/"
-        schemaLocation="http://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 http://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:  http://dublincore.org/
-            License link: http://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="http://www.railml.org/schemas/2009"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema"
-	targetNamespace="http://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://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. 
-        http://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. http://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: http://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: http://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="http://www.railml.org/schemas/2009"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema"
-	targetNamespace="http://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://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. 
-        http://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. http://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: http://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: http://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="http://www.railml.org/schemas/2009"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema"
-    xmlns:xml="http://www.w3.org/XML/1998/namespace"
-	targetNamespace="http://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://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. http://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: http://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. 
-        http://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: http://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="http://www.railml.org/schemas/2009"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema"
-    xmlns:xml="http://www.w3.org/XML/1998/namespace"
-	xmlns:mml="http://www.w3.org/1998/Math/MathML"
-	targetNamespace="http://www.railml.org/schemas/2009"
-	elementFormDefault="qualified" version="2.0">
+  <!-- $Id$ -->
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://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. http://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: http://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. 
-        http://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: http://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="http://www.w3.org/XML/1998/namespace"
-    schemaLocation="http://www.w3.org/2001/03/xml.xsd" />  
-
-	<!--*********************************************************-->
-	<!-- Support for MathML2 -->
-	<!--*********************************************************-->
-
-	<xs:import namespace="http://www.w3.org/1998/Math/MathML"
-		schemaLocation="http://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="http://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="http://www.railml.org/schemas/2009"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema"
-    xmlns:xml="http://www.w3.org/XML/1998/namespace"
-	targetNamespace="http://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. 
-        http://creativecommons.org/licenses/by/2.0/
-
-        For further information see: http://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="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://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. http://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: http://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="http://www.railml.org/schemas/2009"
-	xmlns:xs="http://www.w3.org/2001/XMLSchema"
-    xmlns:xml="http://www.w3.org/XML/1998/namespace"
-	targetNamespace="http://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. 
-        http://creativecommons.org/licenses/by/2.0/
-
-        For further information see: http://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="http://www.w3.org/XML/1998/namespace"
-    schemaLocation="http://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="http://www.railml.org/schemas/2011" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://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. http://creativecommons.org/licenses/by/2.0/</xs:documentation>
+    <xs:documentation>For further information see: http://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="http://www.w3.org/XML/1998/namespace" schemaLocation="http://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>