Dev:changes/2.5/diff

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

Schema differences between railML® 2.4 and railML® 2.5

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

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

diff --git a/schema/genericRailML.xsd b/schema/genericRailML.xsd
index 1e7e159..ee5af36 100644
--- a/schema/genericRailML.xsd
+++ b/schema/genericRailML.xsd
@@ -1,24 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2018" 
-           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="https://www.railml.org/schemas/2018" 
-           elementFormDefault="qualified" 
-           version="2.4">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2021" 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="https://www.railml.org/schemas/2021" elementFormDefault="qualified" version="2.5">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.</xs:documentation>
     <xs:documentation>This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivs 3.0 Unported License with additional license conditions of railML.org.</xs:documentation>
     <xs:documentation>For further information see: https://www.railml.org/licence</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.4 Definition of generic simple types, used by all sub schemas</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.5 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:import namespace="http://purl.org/dc/elements/1.1/" schemaLocation="https://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd">
     <xs:annotation>
       <xs:documentation>Portions of this software may use XML schemas Copyright (c) 2009 DCMI, the Dublin Core Metadata Initiative. These are licensed under the Creative Commons 3.0 Attribution license.</xs:documentation>
-      <xs:documentation>For further information see: http://dublincore.org/ License link: http://creativecommons.org/licenses/by/3.0/</xs:documentation>
+      <xs:documentation>For further information see: https://dublincore.org/ License link: https://creativecommons.org/licenses/by/3.0/</xs:documentation>
     </xs:annotation>
   </xs:import>
 
@@ -70,71 +64,28 @@
     <xs:restriction base="xs:string" />
   </xs:simpleType>
 
+  <xs:complexType name="tElementWithID">
+    <xs:annotation>
+      <xs:documentation>base type for all elements with IDs</xs:documentation>
+    </xs:annotation>
+    <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:complexType>
+
   <xs:complexType name="tElementWithIDAndName">
     <xs:annotation>
       <xs:documentation>generic base type, used for inheritance of many railML types</xs:documentation>
     </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithID">
         <xs:sequence>
           <xs:element name="additionalName" type="rail:tAdditionalName" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>additional names and its according descriptions to be provided in other languages, dialects, encodings...</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_infrastructure" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_track" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_mileageChange" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_switch" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_crossing" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_crossSection" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_border" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_speedChange" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_gradientChange" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_radiusChange" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_tunnel" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_brigde" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_levelCrossing" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_ownerChange" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_operationModeChange" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_trainProtectionChange" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_electrificationChange" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_powerTransmissionChange" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_axleWeightChange" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_gaugeChange" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_geoMapping" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_trackCondition" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_platformEdge" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_serviceSection" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_signal" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_signalGroup" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_trainDetector" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_trackCircuitBorder" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_balise" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_trainProtectionElement" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_line" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_locallyControlledArea" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_ocp" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_propOther" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_controller" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_speedProfile" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_macroscopicInfrastructureElement" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:additionalName_rollingstock" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:additionalName_vehicle" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:additionalName_propulsion" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:additionalName_energyStorage" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:additionalName_etcs" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:additionalName_specificTransmissionModule" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:additionalName_nationalSystem" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:additionalName_trainRadio" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:additionalName_otherEquipment" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:additionalName_formation" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:additionalName_timetable" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:additionalName_timetablePeriod" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:additionalName_operatingPeriod" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:additionalName_category" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:additionalName_trainPart" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:additionalName_train" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:additionalName_trainGroup" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:additionalName_rostering" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:additionalName_blockPart" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:additionalName_block" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:additionalName, https://wiki2.railml.org/wiki/RS:additionalName and https://wiki2.railml.org/wiki/TT:additionalName</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
@@ -143,11 +94,6 @@
             </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>
@@ -165,10 +111,12 @@
         </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:documentation>natural language identification according to https://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation>
           </xs:annotation>
         </xs:attribute>
         <xs:attributeGroup ref="rail:anyAttribute" />
+      </xs:extension>
+    </xs:complexContent>
   </xs:complexType>
 
   <xs:complexType name="tAdditionalName">
@@ -184,7 +132,7 @@
     </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; should always be given</xs:documentation>
+        <xs:documentation>natural language identification according to https://www.w3.org/TR/xml/#sec-lang-tag; should always be given</xs:documentation>
       </xs:annotation>
     </xs:attribute>
     <xs:attributeGroup ref="rail:anyAttribute" />
@@ -231,10 +179,8 @@
         <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:documentation source="http://wiki.railml.org/index.php?title=IS:metadata" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:metadata" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:metadata" />
+              <xs:documentation>subschema-wide flexible collection of Dublin Core metadata based on xs:any according to https://dublincore.org/</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:metadata, https://wiki2.railml.org/wiki/RS:metadata and https://wiki2.railml.org/wiki/TT:metadata</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -370,6 +316,13 @@
     <xs:list itemType="xs:double" />
   </xs:simpleType>
 
+  <xs:simpleType name="tDurationList">
+    <xs:annotation>
+      <xs:documentation>a list of time intervals, each given as an xs:duration, separated by white space</xs:documentation>
+    </xs:annotation>
+    <xs:list itemType="xs:duration" />
+  </xs:simpleType>
+
   <xs:simpleType name="tCoordinateList">
     <xs:annotation>
       <xs:documentation>an coordinate list consisting of two or three coordinates</xs:documentation>
@@ -408,4 +361,44 @@
     </xs:complexContent>
   </xs:complexType>
 
+  <xs:simpleType name="tVerbosenessClass">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="reduced" />
+          <xs:enumeration value="normal" />
+          <xs:enumeration value="verbose" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tInfoTextBase">
+    <xs:simpleContent>
+      <xs:extension base="xs:string">
+        <xs:attributeGroup ref="rail:anyAttribute" />
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
+  <xs:complexType name="tInfoText">
+    <xs:simpleContent>
+      <xs:extension base="rail:tInfoTextBase">
+        <xs:attribute ref="xml:lang">
+          <xs:annotation>
+            <xs:documentation>natural language identification according to https://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="verboseness" type="rail:tVerbosenessClass">
+          <xs:annotation>
+            <xs:documentation>allows to categorize the text along its verboseness</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:simpleContent>
+  </xs:complexType>
+
 </xs:schema>
diff --git a/schema/infrastructure.xsd b/schema/infrastructure.xsd
index 6752cf1..053f5e8 100644
--- a/schema/infrastructure.xsd
+++ b/schema/infrastructure.xsd
@@ -1,17 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2018" 
-           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-           xmlns:xml="http://www.w3.org/XML/1998/namespace" 
-           targetNamespace="https://www.railml.org/schemas/2018" 
-           elementFormDefault="qualified" 
-           version="2.4">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2021" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="https://www.railml.org/schemas/2021" elementFormDefault="qualified" version="2.5">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.</xs:documentation>
     <xs:documentation>This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivs 3.0 Unported License with additional license conditions of railML.org.</xs:documentation>
     <xs:documentation>For further information see: https://www.railml.org/licence</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.4 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:documentation>Content of this file: XML Schema for railML(R) 2.5 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" />
@@ -20,7 +15,7 @@
 
   <xs:element name="infrastructure">
     <xs:annotation>
-      <xs:documentation source="http://wiki.railml.org/index.php?title=IS:infrastructure" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/IS:infrastructure</xs:documentation>
     </xs:annotation>
     <xs:complexType>
       <xs:complexContent>
@@ -28,37 +23,54 @@
           <xs:sequence>
             <xs:element name="infraAttrGroups" type="rail:eInfraAttrGroup" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=IS:infraAttrGroups" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/IS:infraAttrGroups</xs:documentation>
               </xs:annotation>
             </xs:element>
             <xs:element name="tracks" type="rail:eTracks" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=IS:tracks" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/IS:tracks</xs:documentation>
               </xs:annotation>
             </xs:element>
             <xs:element name="trackGroups" type="rail:eTrackGroups" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackGroups" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackGroups</xs:documentation>
               </xs:annotation>
             </xs:element>
             <xs:element name="operationControlPoints" type="rail:eOperationControlPoints" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=IS:operationControlPoints" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/IS:operationControlPoints</xs:documentation>
               </xs:annotation>
             </xs:element>
             <xs:element name="controllers" type="rail:eControllers" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=IS:controllers" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/IS:controllers</xs:documentation>
               </xs:annotation>
             </xs:element>
             <xs:element name="speedProfiles" type="rail:eSpeedProfiles" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=IS:speedProfiles" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/IS:speedProfiles</xs:documentation>
               </xs:annotation>
             </xs:element>
             <xs:element name="states" type="rail:tStates" minOccurs="0">
               <xs:annotation>
                 <xs:documentation>Container to define disabled/enabled status of infrastructure</xs:documentation>
+                <xs:documentation>See https://wiki2.railml.org/wiki/IS:states</xs:documentation>
+              </xs:annotation>
+            </xs:element>
+            <xs:element name="routes" type="rail:eRoutes" minOccurs="0">
+              <xs:annotation>
+                <xs:documentation>See https://wiki2.railml.org/wiki/IS:routes</xs:documentation>
+              </xs:annotation>
+            </xs:element>
+            <xs:element name="operatingRules" type="rail:eOperatingRules" minOccurs="0">
+              <xs:annotation>
+                <xs:documentation>See https://wiki2.railml.org/wiki/IS:operatingRules</xs:documentation>
+              </xs:annotation>
+            </xs:element>
+            <xs:element name="genericAreas" type="rail:eGenericAreas" minOccurs="0">
+              <xs:annotation>
+                <xs:documentation>Container element for generic areas, that are linked from different elements for different purposes</xs:documentation>
+                <xs:documentation>See https://wiki2.railml.org/wiki/IS:genericAreas</xs:documentation>
               </xs:annotation>
             </xs:element>
           </xs:sequence>
@@ -212,11 +224,13 @@
 
   </xs:element>
   
+  <!-- OCP -->
+
   <xs:complexType name="eOperationControlPoints">
     <xs:sequence>
       <xs:element name="ocp" type="rail:eOcp" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:ocp" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:ocp</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -228,43 +242,49 @@
         <xs:sequence>
           <xs:element name="propOperational" type="rail:eOcpPropOperational" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:propOperational" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:propOperational</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="propService" type="rail:tOcpPropService" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:propService" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:propService</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="propEquipment" type="rail:eOcpPropEquipment" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:propEquipment" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:propEquipment</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="propPassengerInfo" type="rail:eOcpPropPassengerInfo" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>properties for passenger information systems</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:propPassengerInfo_ocp</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="propOther" type="rail:eOcpPropOther" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:propOther" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:propOther</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="tsi" type="rail:tOcpTsi" minOccurs="0">
             <xs:annotation>
               <xs:documentation>DEPRECATED. Use register entry "PrimaryLocationCode" instead.</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:tsi" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:tsi</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="area" type="rail:tOcpArea" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:area" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:area</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="geoCoord" type="rail:tGeoCoord" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_ocp" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:geoCoord</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="designator" type="rail:tDesignator" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:designator" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:designator</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -278,7 +298,13 @@
         <xs:sequence>
           <xs:element name="uptime" type="rail:tOcpUptime" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:uptime" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:uptime</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="relation" type="rail:tOcpRelation" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>A relation defines a navigable link between sections of lines on a mesoscopic or macroscopic level</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:relation</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -292,12 +318,14 @@
         <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:documentation>This element has been deprecated, and is only kept for backward compatibility. Please use "additionalName" in "ocp" instead.</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:additionalName_propOther</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="states" type="rail:tStates" minOccurs="0">
             <xs:annotation>
               <xs:documentation>container for states of OCP; use this element to define the status of the OCP in terms of availability for operation</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:states</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -309,59 +337,89 @@
     <xs:choice>
       <xs:element name="summary" type="rail:tOcpPropEquipmentSummary">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:summary" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:summary</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackRef_propEquipment" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackRef_propEquipment</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:choice>
   </xs:complexType>
   
+  <xs:complexType name="eOcpPropPassengerInfo">
+    <xs:sequence>
+      <xs:element name="informationArea" type="rail:tInformationArea" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>an area (linked with an OCP) to be referred to by timetable when describing the passenger info behavior</xs:documentation>
+          <xs:documentation>information areas can be used for describing how passenger information is triggered to be shown to the passenger when travelling from and to an OCP. E.g. an announcement could be specified to be triggered when entering such area, or a special text could be set to be shown once leaving it.</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:informationArea</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="mediaResources" type="rail:tMediaResources" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>container for media resources connected with the infrastructure element such as announcement or special text fragments. Theses fragments are usually used to replace placeholders in announcements or special texts.</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:mediaResources</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  
+  <!-- Controllers -->
+
   <xs:complexType name="eControllers">
     <xs:sequence>
       <xs:element name="controller" type="rail:tController" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:controller" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:controller</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
   </xs:complexType>
   
+  <!-- Speed Profiles -->
+
   <xs:complexType name="eSpeedProfiles">
     <xs:sequence>
       <xs:element name="speedProfile" type="rail:tSpeedProfile" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:speedProfile" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:speedProfile</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
   </xs:complexType>
   
+  <!-- Infrastructure Attribute Groups -->
+
   <xs:complexType name="eInfraAttrGroup">
     <xs:sequence>
       <xs:element name="infraAttributes" type="rail:eInfraAttr" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:infraAttributes" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:infraAttributes</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
   </xs:complexType>
   
+  <!-- Track Groups -->
+
   <xs:complexType name="eLocallyControlledArea">
     <xs:complexContent>
       <xs:extension base="rail:tLocallyControlledArea">
+        <xs:annotation>
+          <xs:documentation>DEPRECATED, please use controller/localOperationArea instead</xs:documentation>
+        </xs:annotation>
         <xs:sequence>
           <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackRef_locallyControlledArea" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackRef_locallyControlledArea</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="controllerRef" type="rail:tElementRefInGroup" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>reference from locally controlled area to a controller</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:controllerRef_locallyControlledArea</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -376,12 +434,12 @@
           <xs:element name="lineDescr" type="xs:string" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>DEPRECATED with railML version 2.4</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:lineDescr" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:lineDescr</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="trackRef" type="rail:tTrackRefInGroup" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackRef_line" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackRef_line</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -393,12 +451,13 @@
     <xs:sequence>
       <xs:element name="line" type="rail:eLine" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:line" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:line_trackGroups</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="locallyControlledArea" type="rail:eLocallyControlledArea" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:locallyControlledArea" />
+          <xs:documentation>DEPRECATED. Use controller/localOperationArea instead.</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:locallyControlledArea</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
@@ -409,11 +468,13 @@
     </xs:sequence>
   </xs:complexType>
   
+  <!-- Tracks -->
+
   <xs:complexType name="eTracks">
     <xs:sequence>
       <xs:element name="track" type="rail:eTrack" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:track" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:track</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -426,32 +487,44 @@
           <xs:element name="trackDescr" type="xs:string" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>DEPRECATED with railML version 2.4</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackDescr" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackDescr</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="trackTopology" type="rail:eTrackTopology">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackTopology" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackTopology</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="trackElements" type="rail:eTrackElements" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackElements" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackElements</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="ocsElements" type="rail:eOcsElements" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:ocsElements" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:ocsElements</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="infraAttrGroupRefs" type="rail:eInfraAttrGroupRefs" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:infraAttrGroupRefs" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:infraAttrGroupRefs</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="impairmentSections" type="rail:eImpairmentSections" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>container element for track sections with impairments for railway operation</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:impairmentSections</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="propPassengerInfo" type="rail:tPropPassengerInfo" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>properties for passenger information systems</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:propPassengerInfo_track</xs:documentation>
             </xs:annotation>
           </xs:element>
           <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:documentation>This element has been deprecated, and is only kept for backward compatibility. Please use the first any-element in the the sequence instead.</xs:documentation>
             </xs:annotation>
           </xs:any>
         </xs:sequence>
@@ -464,33 +537,33 @@
       <xs:element name="trackBegin" type="rail:eTrackBegin">
         <xs:annotation>
           <xs:documentation>this node marks the begin of the track defined by its relative position pos=0</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackBegin" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackBegin</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="trackEnd" type="rail:eTrackEnd">
         <xs:annotation>
           <xs:documentation>this node marks the end of the track defined by its relative position pos=(length of track)</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackEnd" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackEnd</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="mileageChanges" type="rail:eMileageChanges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:mileageChanges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:mileageChanges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="connections" type="rail:eConnections" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:connections" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:connections</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="crossSections" type="rail:eCrossSections" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:crossSections" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:crossSections</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="borders" type="rail:eBorder" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:borders" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:borders</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -502,26 +575,22 @@
         <xs:choice>
           <xs:element name="connection" type="rail:tConnectionData">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:connection_trackBegin" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:connection_trackEnd" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:connection_trackBegin and https://wiki2.railml.org/wiki/IS:connection_trackEnd</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="bufferStop" type="rail:tBufferStop">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:bufferStop_trackBegin" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:bufferStop_trackEnd" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:bufferStop</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="openEnd" type="rail:tOpenEnd">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:openEnd_trackBegin" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:openEnd_trackEnd" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:openEnd</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="macroscopicNode" type="rail:tMacroscopicNode">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:macroscopicNode_trackBegin" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:macroscopicNode_trackEnd" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:macroscopicNode</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:choice>
@@ -559,7 +628,7 @@
         <xs:sequence>
           <xs:element name="connection" type="rail:tSwitchConnectionData" maxOccurs="3">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:connection_switch" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:connection_switch</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -573,7 +642,7 @@
         <xs:sequence>
           <xs:element name="connection" type="rail:tSwitchConnectionData" maxOccurs="3">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:connection_crossing" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:connection_crossing</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -585,7 +654,7 @@
     <xs:sequence>
       <xs:element name="mileageChange" type="rail:tMileageChange" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:mileageChange" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:mileageChange</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -595,12 +664,12 @@
     <xs:choice minOccurs="0" maxOccurs="unbounded">
       <xs:element name="switch" type="rail:eSwitch" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:switch" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:switch</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="crossing" type="rail:eCrossing" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:crossing" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:crossing</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:choice>
@@ -610,7 +679,7 @@
     <xs:sequence>
       <xs:element name="crossSection" type="rail:tCrossSection" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:crossSection" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:crossSection</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -620,7 +689,7 @@
     <xs:sequence>
       <xs:element name="border" type="rail:tBorder" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:border" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:border</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -630,92 +699,92 @@
     <xs:sequence>
       <xs:element name="speedChanges" type="rail:eSpeedChanges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:speedChanges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:speedChanges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="gradientChanges" type="rail:eGradientChanges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:gradientChanges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:gradientChanges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="radiusChanges" type="rail:eRadiusChanges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:radiusChanges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:radiusChanges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="tunnels" type="rail:eTunnels" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:tunnels" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:tunnels</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="bridges" type="rail:eBridges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:bridges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:bridges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="levelCrossings" type="rail:eLevelCrossings" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:levelCrossings" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:levelCrossings</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="ownerChanges" type="rail:eOwnerChanges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:ownerChanges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:ownerChanges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="operationModeChanges" type="rail:eOperationModeChanges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:operationModeChanges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:operationModeChanges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="trainProtectionChanges" type="rail:eTrainProtectionChanges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainProtectionChanges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainProtectionChanges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="electrificationChanges" type="rail:eElectrificationChanges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:electrificationChanges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:electrificationChanges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="powerTransmissionChanges" type="rail:ePowerTransmissionChanges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:powerTransmissionChanges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:powerTransmissionChanges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="axleWeightChanges" type="rail:eAxleWeightChanges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:axleWeightChanges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:axleWeightChanges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="gaugeChanges" type="rail:eGaugeChanges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:gaugeChanges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:gaugeChanges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="clearanceGaugeChanges" type="rail:eClearanceGaugeChanges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:clearanceGaugeChanges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:clearanceGaugeChanges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="geoMappings" type="rail:eGeoMappings" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoMappings" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:geoMappings</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="trackConditions" type="rail:eTrackConditions" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackConditions" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackConditions</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="platformEdges" type="rail:ePlatformEdges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:platformEdges" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:platformEdges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="serviceSections" type="rail:eServiceSections" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:serviceSections" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:serviceSections</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
@@ -730,7 +799,7 @@
     <xs:sequence>
       <xs:element name="speedChange" type="rail:tSpeedChange" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:speedChange" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:speedChange</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -740,7 +809,7 @@
     <xs:sequence>
       <xs:element name="gradientChange" type="rail:tGradientChange" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:gradientChange" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:gradientChange</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -750,7 +819,7 @@
     <xs:sequence>
       <xs:element name="radiusChange" type="rail:tRadiusChange" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:radiusChange" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:radiusChange</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -760,7 +829,7 @@
     <xs:sequence>
       <xs:element name="crossedElement" type="rail:tCrossedElement" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:crossedElement" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:crossedElement</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -773,6 +842,7 @@
           <xs:element name="crossedElements" type="rail:eCrossedElements" minOccurs="0">
             <xs:annotation>
               <xs:documentation>list the elements that are crossed by this element</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:crossedElements</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -784,7 +854,7 @@
     <xs:sequence>
       <xs:element name="tunnel" type="rail:eTunnel" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:tunnel" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:tunnel</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -797,6 +867,7 @@
           <xs:element name="crossedElements" type="rail:eCrossedElements" minOccurs="0">
             <xs:annotation>
               <xs:documentation>list the elements that are crossed by this element</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:crossedElements</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -808,7 +879,7 @@
     <xs:sequence>
       <xs:element name="brigde" type="rail:eBridge" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:brigde" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:brigde</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -821,6 +892,7 @@
           <xs:element name="crossedElements" type="rail:eCrossedElements" minOccurs="0">
             <xs:annotation>
               <xs:documentation>list the elements that are crossed by this element</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:crossedElements</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -832,7 +904,7 @@
     <xs:sequence>
       <xs:element name="levelCrossing" type="rail:eLevelCrossing" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:levelCrossing" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:levelCrossing_levelCrossings</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -842,7 +914,7 @@
     <xs:sequence>
       <xs:element name="ownerChange" type="rail:tOwnerChange" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:ownerChange" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:ownerChange</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -852,7 +924,7 @@
     <xs:sequence>
       <xs:element name="operationModeChange" type="rail:tOperationModeChange" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:operationModeChange" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:operationModeChange</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -862,7 +934,7 @@
     <xs:sequence>
       <xs:element name="trainProtectionChange" type="rail:tTrainProtectionChange" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainProtectionChange" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainProtectionChange</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -872,7 +944,7 @@
     <xs:sequence>
       <xs:element name="electrificationChange" type="rail:tElectrificationChange" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:electrificationChange" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:electrificationChange</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -882,7 +954,7 @@
     <xs:sequence>
       <xs:element name="powerTransmissionChange" type="rail:tPowerTransmissionChange" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:powerTransmissionChange" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:powerTransmissionChange</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -892,7 +964,7 @@
     <xs:sequence>
       <xs:element name="axleWeightChange" type="rail:tAxleWeightChange" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:axleWeightChange" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:axleWeightChange</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -902,7 +974,7 @@
     <xs:sequence>
       <xs:element name="gaugeChange" type="rail:tGaugeChange" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:gaugeChange" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:gaugeChange</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -912,7 +984,7 @@
     <xs:sequence>
       <xs:element name="clearanceGaugeChange" type="rail:tClearanceGaugeChange" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:clearanceGaugeChange" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:clearanceGaugeChange</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -922,7 +994,7 @@
     <xs:sequence>
       <xs:element name="geoMapping" type="rail:tPlacedElement" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoMapping" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:geoMapping</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -932,7 +1004,7 @@
     <xs:sequence>
       <xs:element name="trackCondition" type="rail:tTrackCondition" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackCondition" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackCondition</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -942,7 +1014,7 @@
     <xs:sequence>
       <xs:element name="platformEdge" type="rail:tPlatformEdge" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:platformEdge" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:platformEdge</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -952,7 +1024,7 @@
     <xs:sequence>
       <xs:element name="serviceSection" type="rail:tServiceSection" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:serviceSection" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:serviceSection</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -962,42 +1034,42 @@
     <xs:sequence>
       <xs:element name="signals" type="rail:eSignals" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:signals" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:signals</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="trainDetectionElements" type="rail:eTrainDetectionElements" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainDetectionElements" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainDetectionElements</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="balises" type="rail:eBalises" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:balises" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:balises</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="trainProtectionElements" type="rail:eTrainProtectionElements" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainProtectionElements" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainProtectionElements</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="stopPosts" type="rail:eStopPosts" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:stopPosts" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:stopPosts</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="derailers" type="rail:eDerailers" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:derailers" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:derailers</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="trainRadioChanges" type="rail:eTrainRadioChanges" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainRadios" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainRadioChanges</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="locks" type="rail:eLocks" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:locks" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:locks</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
@@ -1012,12 +1084,12 @@
     <xs:choice minOccurs="0" maxOccurs="unbounded">
       <xs:element name="signal" type="rail:tSignal">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:signal" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:signal</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="signalGroups" type="rail:eSignalGroups">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:signalGroups" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:signalGroups</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:choice>
@@ -1027,7 +1099,7 @@
     <xs:sequence>
       <xs:element name="signalGroup" type="rail:eSignalGroup" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:signalGroup" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:signalGroup</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -1039,7 +1111,7 @@
         <xs:sequence>
           <xs:element name="signalRef" type="rail:tSignalRefInGroup" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:signalRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:signalRef</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -1051,12 +1123,12 @@
     <xs:choice minOccurs="0" maxOccurs="unbounded">
       <xs:element name="trainDetector" type="rail:tTrainDetector">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainDetector" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainDetector</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="trackCircuitBorder" type="rail:tTrackCircuitBorder">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trackCircuitBorder" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackCircuitBorder</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:choice>
@@ -1066,12 +1138,12 @@
     <xs:sequence>
       <xs:element name="balise" type="rail:tBalise" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:balise" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:balise</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="baliseGroup" type="rail:tBaliseGroup" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:baliseGroup" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:baliseGroup</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -1081,12 +1153,12 @@
     <xs:sequence>
       <xs:element name="trainProtectionElement" type="rail:tTrainProtectionElement" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainProtectionElement" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainProtectionElement</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="trainProtectionElementGroup" type="rail:tTrainProtectionElementGroup" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainProtectionElementGroup" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainProtectionElementGroup</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -1096,7 +1168,7 @@
     <xs:sequence>
       <xs:element name="stopPost" type="rail:tStopPost" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:stopPost" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:stopPost</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -1106,7 +1178,7 @@
     <xs:sequence>
       <xs:element name="derailer" type="rail:tDerailer" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:derailer" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:derailer</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -1117,6 +1189,7 @@
       <xs:element name="trainRadioChange" type="rail:tTrainRadioChange" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>start of section with certain train radio system installed at the infrastructure</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainRadioChange</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -1127,6 +1200,7 @@
       <xs:element name="lock" type="rail:tLock" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>Locks are physical railway infrastructure elements that are used for logical locking connections between switches, derailers, level crossings, or other signalling components.</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:lock</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -1137,7 +1211,7 @@
       <xs:element name="infraAttrGroupRef" type="rail:tElementWithReference" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>sub-element for a reference to an infraAttributes instance</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:infraAttributes" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:infraAttributes</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -1149,62 +1223,62 @@
         <xs:all>
           <xs:element name="owner" type="rail:tOwner" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:owner" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:owner</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="operationMode" type="rail:tOperationMode" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:operationMode" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:operationMode</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="trainProtection" type="rail:tTrainProtection" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainProtection" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainProtection</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="electrification" type="rail:tElectrification" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:electrification" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:electrification</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="powerTransmission" type="rail:tPowerTransmission" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:powerTransmission" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:powerTransmission</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="axleWeight" type="rail:tAxleWeight" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:axleWeight" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:axleWeight</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="gauge" type="rail:tGauge" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:gauge" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:gauge</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="clearanceGauge" type="rail:tClearanceGaugeType" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:clearanceGauge" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:clearanceGauge</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="speeds" type="rail:eSpeeds" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:speeds" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:speeds</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="epsgCode" type="rail:tEpsgCode" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:epsgCode" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:epsgCode</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="trainRadio" type="rail:tTrainRadioAttributes" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainRadio" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainRadio_infraAttributes</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="generalInfraAttributes" type="rail:eGeneralInfraAttributes" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:generalInfraAttributes" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:generalInfraAttributes</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:all>
@@ -1216,7 +1290,7 @@
     <xs:sequence>
       <xs:element name="speed" type="rail:tSpeedInfo" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:speed" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:speed_speeds</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -1226,7 +1300,7 @@
     <xs:sequence>
       <xs:element name="generalInfraAttribute" type="rail:eGeneralInfraAttribute" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:generalInfraAttribute" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:generalInfraAttribute</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -1236,7 +1310,7 @@
     <xs:sequence>
       <xs:element name="attributes" type="rail:eAttributes" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:attributes" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:attributes</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
@@ -1247,18 +1321,76 @@
     <xs:sequence>
       <xs:element name="attribute" type="rail:tAttribute" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:attribute" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:attribute</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  
+  <xs:complexType name="eImpairmentSections">
+    <xs:sequence>
+      <xs:element name="impairmentSection" type="rail:tImpairmentSection" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>definition of a track section with impairments affecting railway operation</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:impairmentSection</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  
+  <xs:complexType name="eRoutes">
+    <xs:annotation>
+      <xs:documentation>container for routes as a subelement of infrastructure</xs:documentation>
+      <xs:documentation>See https://wiki2.railml.org/wiki/IS:infrastructure</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="route" type="rail:tRoute" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:route</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eOperatingRules">
+    <xs:annotation>
+      <xs:documentation>Only special operating rules that differ from the generic rule book and apply for specific physical objects are mapped. The generic rule book shall not be mapped here.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="operatingRule" type="rail:tOperatingRule" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:operatingRule</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
   </xs:complexType>
 
+  <xs:complexType name="eGenericAreas">
+    <xs:annotation>
+      <xs:documentation>container type for generic areas</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="genericArea" type="rail:tGenericArea" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>The area can be used for various types of areas</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:genericArea</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <!-- Infrastructure Visualization -->
+
   <xs:element name="infrastructureVisualizations">
+    <xs:annotation>
+      <xs:documentation>See https://wiki2.railml.org/wiki/IS:infrastructureVisualizations</xs:documentation>
+    </xs:annotation>
     <xs:complexType>
       <xs:sequence>
         <xs:element name="visualization" type="rail:eInfrastructureVisualization" minOccurs="0" maxOccurs="unbounded">
           <xs:annotation>
             <xs:documentation>container elements for all infrastructure visualizations</xs:documentation>
+            <xs:documentation>See https://wiki2.railml.org/wiki/IS:visualization</xs:documentation>
           </xs:annotation>
         </xs:element>
       </xs:sequence>
@@ -1273,11 +1405,19 @@
           <xs:element name="lineVis" type="rail:eLineVis" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>visualization of a railway line</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:lineVis</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="ocpVis" type="rail:eOcpVis" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation>visualization of an OCP</xs:documentation>
+              <xs:documentation>DEPRECATED, use element objectVis instead to visualize an OCP</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:ocpVis</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="objectVis" type="rail:eOcpVis" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>visualization of an object that is not on a line/track, e.g. an OCP or a controller</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:objectVis</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -1292,6 +1432,7 @@
           <xs:element name="trackVis" type="rail:eTrackVis" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>visualization of a railway track</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackVis</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -1306,6 +1447,7 @@
           <xs:element name="trackElementVis" type="rail:eTrackElementVis" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>visualization of a railway track element</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackElementVis</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -1317,7 +1459,11 @@
     <xs:complexContent>
       <xs:extension base="rail:tElementWithReference">
         <xs:sequence>
-          <xs:element name="position" type="rail:tPoint" />
+          <xs:element name="position" type="rail:tPoint">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:position_trackElementVis</xs:documentation>
+            </xs:annotation>
+          </xs:element>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -1329,12 +1475,14 @@
         <xs:sequence>
           <xs:element name="position" type="rail:tPoint">
             <xs:annotation>
-              <xs:documentation>position of the OCP visualization element in grid coordinates</xs:documentation>
+              <xs:documentation>position of the OCP/object visualization element in grid coordinates</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:position_ocpVis</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="size" type="rail:tSize" minOccurs="0">
             <xs:annotation>
-              <xs:documentation>size of the OCP visualization element</xs:documentation>
+              <xs:documentation>size of the OCP/object visualization element</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:size</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
diff --git a/schema/infrastructureTypes.xsd b/schema/infrastructureTypes.xsd
index ca2e16e..f6574c7 100644
--- a/schema/infrastructureTypes.xsd
+++ b/schema/infrastructureTypes.xsd
@@ -1,17 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2018" 
-           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-           xmlns:xml="http://www.w3.org/XML/1998/namespace" 
-           targetNamespace="https://www.railml.org/schemas/2018" 
-           elementFormDefault="qualified" 
-           version="2.4">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2021" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="https://www.railml.org/schemas/2021" elementFormDefault="qualified" version="2.5">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.</xs:documentation>
     <xs:documentation>This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivs 3.0 Unported License with additional license conditions of railML.org.</xs:documentation>
     <xs:documentation>For further information see: https://www.railml.org/licence</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.4 Definition of attribute groups, simple and complex types, used by infrastructure sub schema (IS)</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.5 Definition of attribute groups, simple and complex types, used by infrastructure sub schema (IS)</xs:documentation>
   </xs:annotation>
 
   <xs:include schemaLocation="railwayUnits.xsd" />
@@ -25,32 +20,7 @@
         <xs:sequence>
           <xs:element name="geoCoord" type="rail:tGeoCoord" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_switch" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_crossing" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_crossSection" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_border" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_speedChange" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_gradientChange" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_radiusChange" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_levelCrossing" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_ownerChange" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_operationModeChange" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_trainProtectionChange" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_electrificationChange" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_powerTransmissionChange" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_axleWeightChange" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_gaugeChange" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_geoMapping" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_trackCondition" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_signal" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_trainDetector" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_trackCircuitBorder" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_balise" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_trainProtectionElement" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_tunnel" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_brigde" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_platformEdge" />
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_serviceSection" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:geoCoord</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -67,7 +37,7 @@
           <xs:element name="states" type="rail:tStates" minOccurs="0">
             <xs:annotation>
               <xs:documentation>Container to define disabled/enabled pieces of infrastructure.</xs:documentation>
-              <xs:documentation source="https://wiki.railml.org/index.php?title=IS:states" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:states</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -82,7 +52,7 @@
           <xs:element name="states" type="rail:tStatesWithLength" minOccurs="0">
             <xs:annotation>
               <xs:documentation>Container to define disabled/enabled pieces of infrastructure with length values</xs:documentation>
-              <xs:documentation source="https://wiki.railml.org/index.php?title=IS:states" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:states_(with_length)</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -119,6 +89,14 @@
     </xs:complexContent>
   </xs:complexType>
 
+  <xs:complexType name="tDelimitedOrientedElementDeprecated">
+    <xs:complexContent>
+      <xs:extension base="rail:tPlacedElement">
+        <xs:attributeGroup ref="rail:aDelimitedOrientationDeprecated" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
   <xs:complexType name="tDelimitedOrientedElementWithLength">
     <xs:complexContent>
       <xs:extension base="rail:tPlacedElementWithLength">
@@ -127,6 +105,14 @@
     </xs:complexContent>
   </xs:complexType>
 
+  <xs:complexType name="tDelimitedOrientedElementWithLengthDeprecated">
+    <xs:complexContent>
+      <xs:extension base="rail:tPlacedElementWithLength">
+        <xs:attributeGroup ref="rail:aDelimitedOrientationDeprecated" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
   <xs:complexType name="tStrictOrientedElement">
     <xs:complexContent>
       <xs:extension base="rail:tPlacedElement">
@@ -170,6 +156,14 @@
     </xs:attribute>
   </xs:attributeGroup>
 
+  <xs:attributeGroup name="aDelimitedOrientationDeprecated">
+    <xs:attribute name="dir" type="rail:tDelimitedDirection">
+      <xs:annotation>
+        <xs:documentation>DEPRECATED! (a limited direction, which allows only for "up", "down" and "unknown")</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
   <xs:attributeGroup name="aStrictOrientation">
     <xs:attribute name="dir" type="rail:tStrictDirection">
       <xs:annotation>
@@ -187,68 +181,79 @@
     </xs:attribute>
   </xs:attributeGroup>
 
-  <xs:complexType name="tStates">
+  <xs:complexType name="tPropPassengerInfo">
     <xs:sequence>
-      <xs:element name="state" maxOccurs="unbounded" type="rail:tState">
+      <xs:element name="mediaResources" type="rail:tMediaResources" minOccurs="0">
         <xs:annotation>
-          <xs:documentation>This is to define disabled/enabled infrastructure pieces with a given time frame.</xs:documentation>
-          <xs:documentation source="https://wiki.railml.org/index.php?title=IS:state" />
+          <xs:documentation>container for media resources connected with the infrastructure element such as announcement or special text fragments. Theses fragments are usually used to replace placeholders in announcements or special texts.</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:mediaResources</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="tState">
+  <xs:complexType name="tMediaResources">
     <xs:sequence>
-      <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="disabled" type="xs:boolean" use="required">
+      <xs:element name="textFragments" type="rail:tMediaTextFragments" minOccurs="0">
         <xs:annotation>
-        <xs:documentation>This attribute is 'true' if the infrastructure piece is somehow disabled.</xs:documentation>
+          <xs:documentation>container for text fragments to be used for placeholder replacement</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:textFragments</xs:documentation>
         </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="status" type="rail:tInfrastructureStatus">
+      </xs:element>
+      <xs:element name="audioFragments" type="rail:tMediaAudioFragments" minOccurs="0">
         <xs:annotation>
-        <xs:documentation>defines the status of the infrastructure element from perspective of its availability</xs:documentation>
+          <xs:documentation>container for audio fragments to be used for placeholder replacement</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:audioFragments</xs:documentation>
         </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef">
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="tMediaTextFragments">
+    <xs:sequence>
+      <xs:element name="textFragment" type="rail:tInfoText" maxOccurs="unbounded">
         <xs:annotation>
-        <xs:documentation>The temporal frame of the 'state' should be defined in the 'timetable' part of the railML file, using the 'operatingPeriod' element.</xs:documentation>
+          <xs:documentation>text fragments used for placeholder replacements in special texts</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:textFragment</xs:documentation>
         </xs:annotation>
-    </xs:attribute>
-    <xs:attributeGroup ref="rail:aPeriodTimeSpan">
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="tMediaAudioFragments">
+    <xs:sequence>
+      <xs:element name="audioFragment" type="rail:tMediaAudioFragment" maxOccurs="unbounded">
         <xs:annotation>
-        <xs:documentation>Start and end time of the non-availability of the infrastructure element.</xs:documentation>
+          <xs:documentation>allows to specify audio fragments to be used for placeholder replacements in announcements</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:audioFragment</xs:documentation>
         </xs:annotation>
-    </xs:attributeGroup>
-    <xs:attribute name="endDayOffset" type="xs:nonNegativeInteger">
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="tMediaAudioFragment">
+    <xs:sequence>
+      <xs:element name="textToSpeechTemplate" type="rail:tInfoTextBase" minOccurs="0">
         <xs:annotation>
-        <xs:documentation>The number of midnight overruns over which non-availability persists.</xs:documentation>
+          <xs:documentation>allows to specify text to speech templates to be used for placeholder replacements in text-to-speech based announcements. This is managed separately from text fragments for special text placeholder replacement as text to speech templates usually contain special characters for encoding special phonetics, especially when dealing with location names.</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:textToSpeechTemplate</xs:documentation>
         </xs:annotation>
-    </xs:attribute>
-    <xs:attribute name="remarks" type="rail:tElementDescription">
+      </xs:element>
+    </xs:sequence>
+    <xs:attribute name="code" type="rail:tGenericName">
       <xs:annotation>
-        <xs:documentation>This is to further explain the 'state' definition.</xs:documentation>
+        <xs:documentation>for typical, specific abbreviations, used in different systems with the same understanding</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attributeGroup ref="rail:anyAttribute" />
+    <xs:attribute ref="xml:lang" />
   </xs:complexType>
 
   <xs:complexType name="tStatesWithLength">
     <xs:sequence>
-      <xs:element name="state" maxOccurs="unbounded" type="rail:tStateWithLength">
+      <xs:element name="state" type="rail:tStateWithLength" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>This is to define disabled/enabled infrastructure pieces with a given time frame for a certain length.</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:state_tunnel" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:state_brigde" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:state_platformEdge" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:state_serviceSection" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:state_track" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:state_(with_length)</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -261,13 +266,13 @@
           <xs:element name="from" type="rail:tLocation" minOccurs="0">
             <xs:annotation>
               <xs:documentation>starting point where the 'state' takes place, e.g. kilometric position</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:from" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:from_state</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="to" type="rail:tLocation" minOccurs="0">
             <xs:annotation>
               <xs:documentation>end point where the 'state' takes place, e.g. kilometric position</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:to" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:to_state</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -280,8 +285,7 @@
       <xs:element name="geoCoord" type="rail:tGeoCoord" minOccurs="0">
         <xs:annotation>
           <xs:documentation>location described by geographic coordinates</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_from" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_to" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:geoCoord</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -312,11 +316,113 @@
     <xs:attribute name="zip" type="xs:string" />
   </xs:complexType>
 
+  <xs:simpleType name="tSimultaneousEntry">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="yes" />
+          <xs:enumeration value="no" />
+          <xs:enumeration value="partial" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+  
+  <xs:complexType name="tOcpRelationNode">
+    <xs:attribute name="line" type="rail:tGenericRef" use="required">
+      <xs:annotation>
+        <xs:documentation>name the incoming/outgoing line (segment)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="ocp" type="rail:tGenericRef" use="required">
+      <xs:annotation>
+        <xs:documentation>name the neighbouring OCP</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  
+  <xs:complexType name="tOcpRelationDelayTime">
+    <xs:attribute name="value" type="xs:duration" use="required">
+      <xs:annotation>
+        <xs:documentation>the average delay time is given in xs:duration format</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  
+  <xs:simpleType name="tOcpRelationType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="direct" />
+          <xs:enumeration value="changeDrivingDirection" />
+          <xs:enumeration value="crossesContraflowTraffic" />
+          <xs:enumeration value="requiresShunting" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+  
+  <xs:simpleType name="tRelationPriority">
+    <xs:restriction base="xs:integer">
+      <xs:minInclusive value="1" />
+      <xs:maxInclusive value="255" />
+    </xs:restriction>
+  </xs:simpleType>
+  
+  <xs:complexType name="tOcpRelation">
+    <xs:sequence>
+      <xs:element name="from" type="rail:tOcpRelationNode">
+        <xs:annotation>
+          <xs:documentation>specifying the incoming direction</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:from_relation</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="to" type="rail:tOcpRelationNode">
+        <xs:annotation>
+          <xs:documentation>specifying the outgoing direction</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:to_relation</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="averageDelayTime" type="rail:tOcpRelationDelayTime" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>specify the average delay time due to waiting, shunting or other reasons</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:averageDelayTime</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+    <xs:attribute name="type" type="rail:tOcpRelationType" use="required">
+      <xs:annotation>
+        <xs:documentation>specify the type of connection</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="priority" type="rail:tRelationPriority">
+      <xs:annotation>
+        <xs:documentation>priority of a relation between 1 (high) and 255 (low)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </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:attribute name="remoteControlled" type="xs:boolean" default="false">
+      <xs:annotation>
+        <xs:documentation>specify whether the OCP is remotely controlled by a TMS or CTC</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="simultaneousEntry" type="rail:tSimultaneousEntry">
+      <xs:annotation>
+        <xs:documentation>describes the pattern for a simultaneous entry into the OCP</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:complexType>
 
   <xs:complexType name="tOcpPropEquipmentSummary">
@@ -376,43 +482,6 @@
     </xs:attribute>
   </xs:complexType>
 
-  <xs:simpleType name="tInfrastructureStatus">
-    <xs:union>
-      <xs:simpleType>
-        <xs:restriction base="xs:string">
-          <xs:enumeration value="conceptual">
-            <xs:annotation>
-              <xs:documentation>The construction or commissioning of the element is planned for the medium or long term. However, there are still no concrete (planning) activities for the construction of the element beyond the preliminary planning and cost estimation.</xs:documentation>
-            </xs:annotation>
-          </xs:enumeration>
-          <xs:enumeration value="planned">
-            <xs:annotation>
-              <xs:documentation>The construction or commissioning of the element is planned concretely and at short notice or concrete planning activities for the construction take place, e.g. design, approval or implementation planning, cost calculation, award of contracts. It is not normally possible to use the element.</xs:documentation>
-            </xs:annotation>
-          </xs:enumeration>
-          <xs:enumeration value="operational">
-            <xs:annotation>
-              <xs:documentation>The element is operational and can be used regularly.</xs:documentation>
-            </xs:annotation>
-          </xs:enumeration>
-          <xs:enumeration value="disabled">
-            <xs:annotation>
-              <xs:documentation>The element is currently not usable, switched off or deactivated and therefore cannot be used regularly. However, it can be put back into operation at short notice without further construction, acceptance or approval activities.</xs:documentation>
-            </xs:annotation>
-          </xs:enumeration>
-          <xs:enumeration value="closed">
-            <xs:annotation>
-              <xs:documentation>The element is no longer available, removed, dismantled, or no longer exists. Planning, construction or commissioning activities are absolutely necessary for recommissioning.</xs:documentation>
-            </xs:annotation>
-          </xs:enumeration>
-        </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>
@@ -432,32 +501,18 @@
     <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="tDesignator">
-    <xs:attribute name="register" type="xs:string" use="required">
+        <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef">
           <xs:annotation>
-        <xs:documentation>name of the register, e.g. IBNR, DB640, RL100 or DIDOK</xs:documentation>
-        <xs:documentation>choose a value from the railML codelist Registers.xml</xs:documentation>
+            <xs:documentation>reference to the operating period defined in the timetable part</xs:documentation>
           </xs:annotation>
         </xs:attribute>
-    <xs:attribute name="entry" type="xs:string" use="required">
+        <xs:attribute name="endDayOffset" type="xs:nonNegativeInteger">
           <xs:annotation>
-        <xs:documentation>the OCP's code in the specified register</xs:documentation>
+            <xs:documentation>define an offset greater than 0 if the end of the time span is not on the same day like the begin of the time span</xs:documentation>
           </xs:annotation>
         </xs:attribute>
-    <xs:attributeGroup ref="rail:aTimePeriod">
-      <xs:annotation>
-        <xs:documentation>the time period when the register is valid</xs:documentation>
-      </xs:annotation>
-    </xs:attributeGroup>
-    <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:extension>
+    </xs:complexContent>
   </xs:complexType>
 
   <xs:complexType name="tOperationControlPoint">
@@ -467,6 +522,7 @@
           <xs:element name="controllerRef" type="rail:tElementRefInGroup" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>reference from OCP to a Controller</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:controllerRef_ocp</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -480,7 +536,7 @@
             <xs:documentation>DEPRECATED: use the 'designator' with its parameters 'register' and 'entry' instead</xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attribute name="timezone" type="rail:tTimeZone"> </xs:attribute>
+        <xs:attribute name="timezone" type="rail:tTimeZone" />
         <xs:attribute name="parentOcpRef" type="rail:tGenericRef">
           <xs:annotation>
             <xs:documentation>references the one and only parent ocp of this ocp</xs:documentation>
@@ -500,7 +556,7 @@
           <xs:element name="additionalName" type="rail:tAdditionalOcpName" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>additional names and its according descriptions to be provided in other languages, dialects, encodings...</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:additionalName_ocp" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:additionalName_ocp</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
@@ -541,7 +597,7 @@
     </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; should always be given</xs:documentation>
+        <xs:documentation>natural language identification according to https://www.w3.org/TR/xml/#sec-lang-tag; should always be given</xs:documentation>
       </xs:annotation>
     </xs:attribute>
     <xs:attribute name="type" type="rail:tOcpNameType">
@@ -641,21 +697,21 @@
 
   <xs:complexType name="tOcpAdditionalName">
     <xs:annotation>
-      <xs:documentation>Deprecated for next major release, type "tAdditionalName" is used by "additionalName" in "ocp"</xs:documentation>
+      <xs:documentation>This type is only used by the deprecated element "additionalName" in "propOther". Please use "additionalName" in "ocp" instead.</xs:documentation>
     </xs:annotation>
     <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:documentation>This element has been deprecated, and is only kept for backward compatibility. Please 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, element "additionalName" in "ocp" provides the same attribute</xs:documentation>
+        <xs:documentation>This element has been deprecated, and is only kept for backward compatibility. The element "additionalName" in "ocp" provides the same attribute.</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:documentation>This element has been deprecated, and is only kept for backward compatibility. The element "additionalName" in "ocp" provides the same attribute.</xs:documentation>
       </xs:annotation>
     </xs:attribute>
   </xs:complexType>
@@ -713,6 +769,20 @@
         <xs:documentation>controller software version</xs:documentation>
       </xs:annotation>
     </xs:attribute>
+    <xs:attribute name="routeSetTime" type="xs:duration">
+      <xs:annotation>
+        <xs:documentation>Time for the route to be set by the CTC and interlocking. This is from the command is given by the dispatcher at the CTC/OCS terminal and to the signal light lights up or the movement authority is displayed in the MMI in the CAB.</xs:documentation>
+        <xs:documentation>See https://www.w3.org/TR/xmlschema-2/#duration</xs:documentation>
+        <xs:documentation>See https://wiki2.railml.org/wiki/IS:controller</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="typicalThrowTime" type="xs:duration">
+      <xs:annotation>
+        <xs:documentation>typicalThrowTime is defined as the average time from when signal is given from controller (interlocking), switch is unlocked, blades are switching, locked and controlled and new position is indicated in controller. Forum: consider moving this to controller or switchPointMachineType for generic value or beeing able to set an individual value per switch/crossing?</xs:documentation>
+        <xs:documentation>See https://www.w3.org/TR/xmlschema-2/#duration</xs:documentation>
+        <xs:documentation>See https://wiki2.railml.org/wiki/IS:controller</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:attributeGroup>
 
   <xs:complexType name="tController">
@@ -725,12 +795,31 @@
           <xs:element name="states" type="rail:tStates" minOccurs="0">
             <xs:annotation>
               <xs:documentation>Container to define disabled/enabled controllers</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:states_controller" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:states</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="ocpRef" type="rail:tElementRefInGroup" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>reference from a controller to an OCP</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:ocpRef_controller</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="trackVacancyDetectionArea" type="rail:tTrackVacancyDetectionArea" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>defining the track vacancy detection areas controlled by this controller</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackVacancyDetectionArea</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="localOperationArea" type="rail:tLocalOperationArea" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>defining the local operation areas controlled by this controller</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:localOperationArea</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="workZone" type="rail:tWorkZone" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>defining work zones that are controlled by the controller</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:workZone</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -772,7 +861,7 @@
 
   <xs:complexType name="tOwnerChange">
     <xs:complexContent>
-      <xs:extension base="rail:tStrictOrientedElement">
+      <xs:extension base="rail:tDelimitedOrientedElementDeprecated">
         <xs:attributeGroup ref="rail:aOwner" />
       </xs:extension>
     </xs:complexContent>
@@ -816,6 +905,12 @@
   <xs:attributeGroup name="aTrainProtection">
     <xs:attribute name="monitoring" type="rail:tTrainProtectionMonitoring" default="none" />
     <xs:attribute name="medium" type="rail:tTrainProtectionMedium" />
+    <xs:attribute name="trainProtectionSystem" type="xs:string">
+      <xs:annotation>
+        <xs:documentation>definition of the national train protection system, which is installed at the track</xs:documentation>
+        <xs:documentation>use value from the separate code definition file 'TrainProtectionSystems.xml'/trainProtectionSystemsAtTrack</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:attributeGroup>
 
   <xs:complexType name="tTrainProtection">
@@ -833,18 +928,12 @@
   <xs:complexType name="tTrainProtectionElement">
     <xs:complexContent>
       <xs:extension base="rail:tOrientedElement">
-        <xs:attribute name="medium" type="rail:tTrainProtectionMedium" />
+        <xs:attributeGroup ref="rail:aTrainProtection" />
         <xs:attribute name="system" type="xs:string">
           <xs:annotation>
             <xs:documentation>DEPRECATED: use the enumeration parameter trainProtectionSystem instead</xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attribute name="trainProtectionSystem" type="xs:string">
-          <xs:annotation>
-            <xs:documentation>definition of the national train protection system, which is installed at the track</xs:documentation>
-            <xs:documentation>use value from the separate code definition file 'TrainProtectionSystems.xml'/trainProtectionSystemsAtTrack</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
         <xs:attribute name="model" type="xs:string" />
       </xs:extension>
     </xs:complexContent>
@@ -856,7 +945,7 @@
         <xs:sequence>
           <xs:element name="trainProtectionElementRef" type="rail:tElementWithReference" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainProtectionElementRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainProtectionElementRef</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -883,6 +972,7 @@
       <xs:element name="maxTrainCurrent" type="rail:tMaxTrainCurrent" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>maximum allowed train current</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:maxTrainCurrent</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -932,11 +1022,12 @@
 
   <xs:complexType name="tElectrificationChange">
     <xs:complexContent>
-      <xs:extension base="rail:tStrictOrientedElement">
+      <xs:extension base="rail:tDelimitedOrientedElementDeprecated">
         <xs:sequence>
           <xs:element name="maxTrainCurrent" type="rail:tMaxTrainCurrent" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>maximum allowed train current</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:maxTrainCurrent</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -970,7 +1061,7 @@
 
   <xs:complexType name="tGaugeChange">
     <xs:complexContent>
-      <xs:extension base="rail:tStrictOrientedElement">
+      <xs:extension base="rail:tDelimitedOrientedElementDeprecated">
         <xs:attributeGroup ref="rail:aGauge" />
       </xs:extension>
     </xs:complexContent>
@@ -978,9 +1069,13 @@
 
   <xs:complexType name="tClearanceGaugeChange">
     <xs:complexContent>
-      <xs:extension base="rail:tStrictOrientedElement">
+      <xs:extension base="rail:tDelimitedOrientedElementDeprecated">
         <xs:sequence>
-          <xs:element name="clearanceGauge" type="rail:tClearanceGaugeType" />
+          <xs:element name="clearanceGauge" type="rail:tClearanceGaugeType">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:clearanceGauge</xs:documentation>
+            </xs:annotation>
+          </xs:element>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -1012,7 +1107,7 @@
 
   <xs:complexType name="tPowerTransmissionChange">
     <xs:complexContent>
-      <xs:extension base="rail:tStrictOrientedElement">
+      <xs:extension base="rail:tDelimitedOrientedElementDeprecated">
         <xs:attributeGroup ref="rail:aPowerTransmission" />
       </xs:extension>
     </xs:complexContent>
@@ -1029,7 +1124,7 @@
 
   <xs:complexType name="tAxleWeightChange">
     <xs:complexContent>
-      <xs:extension base="rail:tStrictOrientedElement">
+      <xs:extension base="rail:tDelimitedOrientedElementDeprecated">
         <xs:attributeGroup ref="rail:aAxleWeight" />
       </xs:extension>
     </xs:complexContent>
@@ -1048,7 +1143,7 @@
         <xs:sequence>
           <xs:element name="geoCoord" type="rail:tGeoCoord" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_mileageChange" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:geoCoord</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -1114,6 +1209,18 @@
         <xs:attribute name="normalPosition" type="rail:tCourse" />
         <xs:attribute name="model" type="xs:string" />
         <xs:attribute name="length" type="rail:tLengthM" />
+        <xs:attribute name="remoteOperated" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation>position is operated from anywhere else, i.e. from signalbox or remote operator place but not directly at the switch/crossing</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="remoteIndicated" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation>position is indicated at a remote place like within the signalbox or a remote operator place</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="lockRef" type="rail:tGenericRef" />
+        <xs:attribute name="clearancePosOffset" type="rail:tLengthM" />
         <xs:attributeGroup ref="rail:aOcpRef" />
         <xs:attributeGroup ref="rail:anyAttribute">
           <xs:annotation>
@@ -1166,22 +1273,22 @@
         <xs:restriction base="xs:string">
           <xs:enumeration value="mainTrack">
             <xs:annotation>
-              <xs:documentation>regular track a of line used for frequent passenger and freight transport</xs:documentation>
+              <xs:documentation>A main track is either an open track between operational points or the extension of an open track within an operational point. It typically connects stations and is used for planned train journeys (trains in commercial operation or trains being moved between operational points).</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="secondaryTrack">
             <xs:annotation>
-              <xs:documentation>a track not frequently used (e. g. loops for overtaking and/or crossing in stations)</xs:documentation>
+              <xs:documentation>A secondary track is a track used for planned train journeys running in commercial operation or trains being moved between operational points, but it is not an open track between operational points or the extension of an open track.</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="connectingTrack">
             <xs:annotation>
-              <xs:documentation>a transfer track from one to another track e. g. in branches, points or cross overs</xs:documentation>
+              <xs:documentation>Connecting tracks are typically very short and connect other tracks. Examples are short track sections connecting two tracks where switches allow to move from one track to the other. </xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="sidingTrack">
             <xs:annotation>
-              <xs:documentation>a siding</xs:documentation>
+              <xs:documentation>Siding tracks are tracks that are not used for planned train journeys, except at the start and end of a train journey if the train is shunted to or from a parking spot.</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="stationTrack">
@@ -1204,7 +1311,7 @@
           <xs:element name="states" type="rail:tStatesWithLength" minOccurs="0">
             <xs:annotation>
               <xs:documentation>Container to define disabled/enabled pieces of a track</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:states_track" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:states_(with_length)</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -1254,6 +1361,11 @@
         <xs:documentation>the category of the line according to the EU regulation EN 15528 (other national values are also possible)</xs:documentation>
       </xs:annotation>
     </xs:attribute>
+    <xs:attribute name="belongsToParent" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>reference to the (one and only) parent line (section)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:attributeGroup>
 
   <xs:complexType name="tLine">
@@ -1263,7 +1375,7 @@
           <xs:element name="states" type="rail:tStates" minOccurs="0">
             <xs:annotation>
               <xs:documentation>Container to define disabled/enabled lines</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:states_line" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:states</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -1279,7 +1391,7 @@
           <xs:element name="states" type="rail:tStates" minOccurs="0">
             <xs:annotation>
               <xs:documentation>Container to define disabled/enabled locally controlled areas</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:states_locallyControlledArea" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:states</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -1297,8 +1409,7 @@
     <xs:sequence>
       <xs:element name="geoCoord" type="rail:tGeoCoord" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_trackBegin" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoCoord_trackEnd" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:geoCoord</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -1424,6 +1535,7 @@
           <xs:enumeration value="state" />
           <xs:enumeration value="country" />
           <xs:enumeration value="station" />
+          <xs:enumeration value="project" />
         </xs:restriction>
       </xs:simpleType>
       <xs:simpleType>
@@ -1455,12 +1567,12 @@
   <xs:attributeGroup name="aSpeed">
     <xs:attribute name="trainCategory" type="rail:tTrainCategory">
       <xs:annotation>
-        <xs:documentation>DEPRECATED. Use the new attribute etcsTrainCategory instead.</xs:documentation>
+        <xs:documentation>DEPRECATED. Use the new attribute etcsTrainCategory in linked speedProfile instead.</xs:documentation>
       </xs:annotation>
     </xs:attribute>
     <xs:attribute name="etcsTrainCategory" type="rail:tEtcsTrainCategory">
       <xs:annotation>
-        <xs:documentation>the international train category number as specified on page 38 in ERA_ERTMS_040001 "Assignment of values to ETCS variables" v1.9 from 10/07/12</xs:documentation>
+        <xs:documentation>DEPRECATED. Use the new attribute etcsTrainCategory in linked speedProfile instead</xs:documentation>
       </xs:annotation>
     </xs:attribute>
     <xs:attribute name="profileRef" type="rail:tGenericRef">
@@ -1523,7 +1635,7 @@
     <xs:sequence>
       <xs:element name="ocpRef" type="rail:tOcpRefInGroup" minOccurs="2" maxOccurs="2">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:ocpRef" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:ocpRef_path</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -1539,22 +1651,33 @@
           <xs:element name="tilting" type="rail:tTilting" minOccurs="0">
             <xs:annotation>
               <xs:documentation>the tilting element contains parameters describing the required train tilting characteristics</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:tilting" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:tilting</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="braking" type="rail:tBraking" minOccurs="0">
             <xs:annotation>
               <xs:documentation>the braking element contains parameters describing the required train braking configuration</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:braking" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:braking</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="path" type="rail:tPath" minOccurs="0">
             <xs:annotation>
               <xs:documentation>the path element indicates a train run between two neighbouring OCPs</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:path" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:path</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
+        <xs:attribute name="basicSpeedProfile" type="xs:boolean" default="false">
+          <xs:annotation>
+            <xs:documentation>specify the speed profile being a basic speed profile</xs:documentation>
+            <xs:documentation>defines a "baseline speed value" that is valid for all trains if no other specific speed restrictions are given. The basic speed profile is always linked with @influence="increasing"</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="etcsTrainCategory" type="rail:tEtcsTrainCategory">
+          <xs:annotation>
+            <xs:documentation>the international train category number as specified on page 38 in ERA_ERTMS_040001 "Assignment of values to ETCS variables" v1.9 from 10/07/12</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
         <xs:attribute name="influence" type="rail:tInfluence" use="required">
           <xs:annotation>
             <xs:documentation>allows for overlaying speed profiles</xs:documentation>
@@ -1655,47 +1778,47 @@
         <xs:restriction base="xs:string">
           <xs:enumeration value="highway:cycleway">
             <xs:annotation>
-              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:highway%3Dcycleway" />
+              <xs:documentation>See https://wiki.openstreetmap.org/wiki/Tag:highway%3Dcycleway</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="highway:footway">
             <xs:annotation>
-              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:highway%3Dfootway" />
+              <xs:documentation>See https://wiki.openstreetmap.org/wiki/Tag:highway%3Dfootway</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="highway:motorway">
             <xs:annotation>
-              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:highway%3Dmotorway" />
+              <xs:documentation>See https://wiki.openstreetmap.org/wiki/Tag:highway%3Dmotorway</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="highway:road">
             <xs:annotation>
-              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:highway%3Droad" />
+              <xs:documentation>See https://wiki.openstreetmap.org/wiki/Tag:highway%3Droad</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="natural:peak">
             <xs:annotation>
-              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:natural%3Dpeak" />
+              <xs:documentation>See https://wiki.openstreetmap.org/wiki/Tag:natural%3Dpeak</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="natural:ridge">
             <xs:annotation>
-              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:natural%3Dridge" />
+              <xs:documentation>See https://wiki.openstreetmap.org/wiki/Tag:natural%3Dridge</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="natural:valley">
             <xs:annotation>
-              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:natural%3Dvalley" />
+              <xs:documentation>See https://wiki.openstreetmap.org/wiki/Tag:natural%3Dvalley</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="natural:water">
             <xs:annotation>
-              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:natural%3Dwater" />
+              <xs:documentation>See https://wiki.openstreetmap.org/wiki/Tag:natural%3Dwater</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="waterway:river">
             <xs:annotation>
-              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:waterway%3Driver" />
+              <xs:documentation>See https://wiki.openstreetmap.org/wiki/Tag:waterway%3Driver</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
         </xs:restriction>
@@ -1730,7 +1853,7 @@
 
   <xs:complexType name="tLevelCrossing">
     <xs:complexContent>
-      <xs:extension base="rail:tDelimitedOrientedElement">
+      <xs:extension base="rail:tDelimitedOrientedElementDeprecated">
         <xs:attribute name="length" type="rail:tLengthM">
           <xs:annotation>
             <xs:documentation>length of the level crossing from railway point of view</xs:documentation>
@@ -1746,6 +1869,11 @@
             <xs:documentation>technical protection equipment at the level crossing</xs:documentation>
           </xs:annotation>
         </xs:attribute>
+        <xs:attribute name="offset" type="rail:tLengthM">
+          <xs:annotation>
+            <xs:documentation>describes how many meters of the @length value is before @pos. If @offset is not defined, by default @pos describes the geometric center of the level crossing.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
         <xs:attributeGroup ref="rail:aOcpRef" />
       </xs:extension>
     </xs:complexContent>
@@ -1769,14 +1897,30 @@
 
   <xs:complexType name="tTunnel">
     <xs:complexContent>
-      <xs:extension base="rail:tDelimitedOrientedElementWithLength">
+      <xs:extension base="rail:tDelimitedOrientedElementWithLengthDeprecated">
         <xs:attribute name="crossSection" type="rail:tLengthM">
           <xs:annotation>
             <xs:documentation>The area of the tunnel cross section in square meters.</xs:documentation>
             <xs:documentation>Attention: currently the units given for crossSection in railML is given in metres (tLengthM), but to be understood and used as square metres. This issue will be fixed in a future railML version.</xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attribute name="kind" type="rail:tTunnelType" />
+        <xs:attribute name="kind" type="rail:tTunnelType">
+          <xs:annotation>
+            <xs:documentation>specify whether the tunnel is made from bricks, concrete, etc.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="resistanceFactorPassenger" type="xs:double">
+          <xs:annotation>
+            <xs:documentation>the tunnel resistance factor in kg/m for passenger trains</xs:documentation>
+            <xs:documentation>Define this value only if @kind and @crossSection are not known.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="resistanceFactorFreight" type="xs:double">
+          <xs:annotation>
+            <xs:documentation>the tunnel resistance factor in kg/m for freight trains</xs:documentation>
+            <xs:documentation>Define this value only if @kind and @crossSection are not known.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -1853,7 +1997,7 @@
 
   <xs:complexType name="tRadiusChange">
     <xs:complexContent>
-      <xs:extension base="rail:tStrictOrientedElement">
+      <xs:extension base="rail:tDelimitedOrientedElementDeprecated">
         <xs:attributeGroup ref="rail:aRadiusChange" />
       </xs:extension>
     </xs:complexContent>
@@ -1861,7 +2005,7 @@
 
   <xs:complexType name="tBridge">
     <xs:complexContent>
-      <xs:extension base="rail:tDelimitedOrientedElementWithLength">
+      <xs:extension base="rail:tDelimitedOrientedElementWithLengthDeprecated">
         <xs:attribute name="kind" type="xs:string" />
         <xs:attribute name="meterload" type="rail:tMeterloadTonsPerMeter" />
       </xs:extension>
@@ -1899,7 +2043,7 @@
 
   <xs:complexType name="tBaseServiceSection">
     <xs:complexContent>
-      <xs:extension base="rail:tStrictOrientedElementWithLength">
+      <xs:extension base="rail:tDelimitedOrientedElementWithLengthDeprecated">
         <xs:attribute name="height" type="rail:tLengthMM">
           <xs:annotation>
             <xs:documentation>height above the rails in millimeters</xs:documentation>
@@ -1923,6 +2067,14 @@
   <xs:complexType name="tPlatformEdge">
     <xs:complexContent>
       <xs:extension base="rail:tBaseServiceSection">
+        <xs:sequence>
+          <xs:element name="propPassengerInfo" type="rail:tPropPassengerInfo" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>properties for passenger information systems</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:propPassengerInfo_platformEdge</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
         <xs:attribute name="parentPlatformEdgeRef" type="rail:tGenericRef">
           <xs:annotation>
             <xs:documentation>reference to a parent platform edge for grouping platform edge parts together</xs:documentation>
@@ -1944,8 +2096,35 @@
           <xs:documentation>right side, regarding the relative direction of the track from trackBegin to trackEnd</xs:documentation>
         </xs:annotation>
       </xs:enumeration>
+      <xs:enumeration value="above">
+        <xs:annotation>
+          <xs:documentation>above the track</xs:documentation>
+        </xs:annotation>
+      </xs:enumeration>
+    </xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tRampType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="flat">
+            <xs:annotation>
+              <xs:documentation>a flat ramp</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="metalBridge">
+            <xs:annotation>
+              <xs:documentation>a metal bridge used as car ramp</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
         </xs:restriction>
       </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
 
   <xs:complexType name="tServiceSection">
     <xs:complexContent>
@@ -1990,8 +2169,13 @@
             <xs:documentation>defining the service section as being a preheating area</xs:documentation>
           </xs:annotation>
         </xs:attribute>
-      </xs:extension>
-    </xs:complexContent>
+        <xs:attribute name="rampType" type="rail:tRampType">
+          <xs:annotation>
+            <xs:documentation>specify the specific construction of the ramp</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
   </xs:complexType>
 
   <xs:complexType name="tSignal">
@@ -2001,61 +2185,61 @@
           <xs:element name="speed" type="rail:tSignalSpeed" minOccurs="0">
             <xs:annotation>
               <xs:documentation>sub-element for defining a speed signal or panel</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:speed_signal" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:speed_signal</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="etcs" type="rail:tSignalEtcs" minOccurs="0">
             <xs:annotation>
               <xs:documentation>sub-element for defining an ETCS panel</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:etcs" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:etcs</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="levelCrossing" type="rail:tSignalLevelCrossing" minOccurs="0">
             <xs:annotation>
               <xs:documentation>sub-element for defining a level crossing signal or panel</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:levelCrossing_signal" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:levelCrossing_signal</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="trainRadio" type="rail:tSignalTrainRadio" minOccurs="0">
             <xs:annotation>
               <xs:documentation>sub-element for defining a train radio signal or panel</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainRadio" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainRadio_signal</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="catenary" type="rail:tSignalCatenary" minOccurs="0">
             <xs:annotation>
               <xs:documentation>sub-element for defining a catenary signal or panel</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:catenary" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:catenary</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="line" type="rail:tSignalLine" minOccurs="0">
             <xs:annotation>
               <xs:documentation>sub-element for defining a line signal or panel</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:line_signal" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:line_signal</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="milepost" type="rail:tSignalMilepost" minOccurs="0">
             <xs:annotation>
               <xs:documentation>sub-element for defining a mileage signpost</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:milepost" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:milepost</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="braking" type="rail:tSignalBraking" minOccurs="0">
             <xs:annotation>
               <xs:documentation>sub-element for defining a braking signal or panel</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:braking" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:braking</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="trainProtectionElementGroupRef" type="rail:tElementWithReference" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>sub-element for a reference to a trainProtectionElementGroup, which is connected to the signal's aspect</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainProtectionElementGroupRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:trainProtectionElementGroupRef</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="baliseGroupRef" type="rail:tElementWithReference" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>sub-element for a reference to a baliseGroup, which is connected to the signal's aspect</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:baliseGroupRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:baliseGroupRef</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -2085,7 +2269,7 @@
           <xs:element name="speedChangeRef" type="rail:tElementWithReference" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>reference to a speed change</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:speedChangeRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:speedChangeRef</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -2304,9 +2488,9 @@
         <xs:documentation>DEPRECATED since it is not needed and not used.</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attribute name="switchable" type="xs:boolean">
+    <xs:attribute name="switchable" type="xs:boolean" use="required">
       <xs:annotation>
-        <xs:documentation>DEPRECATED: use attribute 'switchable' in sub-elements instead</xs:documentation>
+        <xs:documentation>mandatory for differentiation between boards and signals</xs:documentation>
       </xs:annotation>
     </xs:attribute>
     <xs:attribute name="maskableRoute" type="xs:boolean">
@@ -2335,8 +2519,49 @@
         <xs:documentation>DEPRECATED with railML 2.4 since it is not being used; refers to interlocking content</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attribute name="trackDist" type="rail:tLengthM" />
-    <xs:attribute name="height" type="rail:tLengthM" />
+    <xs:attribute name="trackDist" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>distance of middle of signal from middle of associated track axis</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="height" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>height of medium light of the signal above rail level (light spot height)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="numberOfLamps" type="xs:nonNegativeInteger">
+      <xs:annotation>
+        <xs:documentation>the number of lamps fitted at the signal screen</xs:documentation>
+        <xs:documentation>See https://wiki2.railml.org/wiki/IS:signal</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="mountedOn">
+      <xs:annotation>
+        <xs:documentation>the way the signal is physically mounted</xs:documentation>
+        <xs:documentation>See https://wiki2.railml.org/wiki/IS:signal</xs:documentation>
+      </xs:annotation>
+      <xs:simpleType>
+        <xs:union>
+          <xs:simpleType>
+            <xs:restriction base="xs:string">
+              <xs:enumeration value="pole" />
+              <xs:enumeration value="gantry" />
+              <xs:enumeration value="wall" />
+              <xs:enumeration value="ground" />
+            </xs:restriction>
+          </xs:simpleType>
+          <xs:simpleType>
+            <xs:restriction base="rail:tOtherEnumerationValue" />
+          </xs:simpleType>
+        </xs:union>
+      </xs:simpleType>
+    </xs:attribute>
+    <xs:attribute name="positionAtTrack" type="rail:tSide">
+      <xs:annotation>
+        <xs:documentation>the position the signal is mounted in relation to track</xs:documentation>
+        <xs:documentation>See https://wiki2.railml.org/wiki/IS:signal</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:attributeGroup>
 
   <xs:attributeGroup name="aSignalGroup">
@@ -2384,7 +2609,7 @@
     <xs:complexContent>
       <xs:extension base="rail:tOrientedElement">
         <xs:attributeGroup ref="rail:aBalise" />
-        <xs:attribute name="ndx" type="rail:tPIG"> </xs:attribute>
+        <xs:attribute name="ndx" type="rail:tPIG" />
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -2395,7 +2620,7 @@
         <xs:sequence>
           <xs:element name="baliseRef" type="rail:tBaliseRefInGroup" maxOccurs="8">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:baliseRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:baliseRef</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -2452,6 +2677,13 @@
     </xs:restriction>
   </xs:simpleType>
 
+  <xs:simpleType name="tBaliseType">
+    <xs:restriction base="xs:string">
+      <xs:enumeration value="fixed" />
+      <xs:enumeration value="controlled" />
+    </xs:restriction>
+  </xs:simpleType>
+
   <xs:attributeGroup name="aBalise">
     <xs:attribute name="countryID" type="rail:tBaliseCountryID" />
     <xs:attribute name="groupID" type="rail:tBaliseGroupID" />
@@ -2463,6 +2695,11 @@
         <xs:documentation>telegram coded to the balise; representation of the binary as hex string</xs:documentation>
       </xs:annotation>
     </xs:attribute>
+    <xs:attribute name="type" type="rail:tBaliseType">
+      <xs:annotation>
+        <xs:documentation>type of balise: fixed or controlled</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:attributeGroup>
 
   <xs:simpleType name="tBaliseLinkReaction">
@@ -2501,6 +2738,11 @@
           <xs:enumeration value="inductive" />
           <xs:enumeration value="optical" />
           <xs:enumeration value="radio" />
+          <xs:enumeration value="manual">
+            <xs:annotation>
+              <xs:documentation>used for local dispatchers manual observation</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
         </xs:restriction>
       </xs:simpleType>
       <xs:simpleType>
@@ -2533,6 +2775,11 @@
         <xs:attribute name="directionDetection" type="xs:boolean" />
         <xs:attribute name="model" type="xs:string" />
         <xs:attribute name="axleCounting" type="xs:boolean" />
+        <xs:attribute name="virtual" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation>use this attribute to model a local dispatcher doing a visual train detection</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
         <xs:attributeGroup ref="rail:aOcpRef" />
       </xs:extension>
     </xs:complexContent>
@@ -2549,7 +2796,7 @@
 
   <xs:complexType name="tTrackCircuitBorder">
     <xs:complexContent>
-      <xs:extension base="rail:tDelimitedOrientedElement">
+      <xs:extension base="rail:tDelimitedOrientedElementDeprecated">
         <xs:attribute name="insulatedRail" type="rail:tInsulatedRailSide" />
         <xs:attributeGroup ref="rail:aOcpRef" />
       </xs:extension>
@@ -2563,13 +2810,13 @@
           <xs:element name="validForMovements" type="rail:tValidForMovements" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>specification of the train types for which the stop post is relevant</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:validForMovements" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:validForMovements</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="signalRef" type="rail:tElementWithReference" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>reference to a (main) signal that is valid for a train waiting at the stop post</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:signalRef_stopPost" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:signalRef_stopPost</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -2601,6 +2848,11 @@
             <xs:documentation>specification of the derailer</xs:documentation>
           </xs:annotation>
         </xs:attribute>
+        <xs:attribute name="lockRef" type="rail:tGenericRef">
+          <xs:annotation>
+            <xs:documentation>Reference to a lock, locking the derailer</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -2621,6 +2873,15 @@
   <xs:complexType name="tLock">
     <xs:complexContent>
       <xs:extension base="rail:tOrientedElement">
+        <xs:sequence>
+          <xs:element name="lockedElement" type="rail:tLockedElement" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>reference to the infrastructure elements that are locked together</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:lockedElement</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+        <xs:attributeGroup ref="rail:aLock" />
         <xs:attributeGroup ref="rail:anyAttribute">
           <xs:annotation>
             <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation>
@@ -2630,6 +2891,38 @@
     </xs:complexContent>
   </xs:complexType>
 
+  <xs:complexType name="tLockedElement">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <xs:attribute name="hasKeyByDefault" type="xs:boolean" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aLock">
+    <xs:attribute name="type" type="xs:string" />
+    <xs:attribute name="positionAtTrack" type="rail:tSide">
+      <xs:annotation>
+        <xs:documentation>describe location of the lock along the track</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="trackDist" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>distance between the track's middle axis and the middle of the lock cabinet in meters</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="controllerRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>link the lock with the controller from where it is controlled</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="keyStorageRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>link the lock with the OCP where the key is stored in case it is not inserted in the lock</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
   <xs:simpleType name="tDerailKind">
     <xs:restriction base="xs:string">
       <xs:enumeration value="blockDerail">
@@ -2824,4 +3117,343 @@
     </xs:attribute>
   </xs:attributeGroup>
 
+  <xs:complexType name="tRoute">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:sequence>
+          <xs:element name="switchAndPosition" type="rail:tSwitchAndPosition" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:switchAndPosition</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="overlapSwitchAndPosition" type="rail:tSwitchAndPosition" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:overlapSwitchAndPosition</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="releaseGroup" type="rail:tReleaseGroup" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:releaseGroup</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="states" type="rail:tStates" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:states</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+        <xs:attribute name="conditional">
+          <xs:simpleType>
+            <xs:union>
+              <xs:simpleType>
+                <xs:restriction base="xs:string">
+                  <xs:enumeration value="ocpManned" />
+                  <xs:enumeration value="ocpUnmanned" />
+                </xs:restriction>
+              </xs:simpleType>
+              <xs:simpleType>
+                <xs:restriction base="rail:tOtherEnumerationValue" />
+              </xs:simpleType>
+            </xs:union>
+          </xs:simpleType>
+        </xs:attribute>
+        <xs:attribute name="approachPointRef" type="rail:tGenericRef">
+          <xs:annotation>
+            <xs:documentation>Used for a speed restriction on an approach zone in front of the route (Before RouteEntry) a train must obey if the route is closed (red light). The approachPoint refers to where the approach zone starts in front of the route. This may be the distant signal in front of the route.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="approachSpeed" type="rail:tSpeedKmPerHour">
+          <xs:annotation>
+            <xs:documentation>used together with approachPoint, ApproachSpeed can also be used for multiple route approach speed profiling.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="overlapEndRef" type="rail:tGenericRef">
+          <xs:annotation>
+            <xs:documentation>The overlap always starts at the RouteExit signal. The reference of the overlapEnd is to the end of the overlap/slip. This is usually a train detection element. Only one type of overlap exists. The overlap is defined to always start at the end signal of the route. The end of the overlap can be defined at the end point (usually an axle counter or a track circuit border) for an unambiguous overlap path. For an ambiguous overlap path the protective elements need to be defined (switch and position, flank protection or head protection). The overlap is always released together with the route. Except if there is defined a trigger. If a trigger is defined it can have a timer. The timer is set in seconds. The overlap is released after the trigger is activated and the timer has elapsed. The trigger can be a trigger point (line side) which either reacts on the head of the train (occupy TVD after the trigger point) or the complete train (release TVD before the trigger point). Or the trigger can be activated according to the speed of the train (train side). Only speed 0 km/h is deemed relevant (standstill). This (train side) trigger is technology independent. This as it can relay both to ETCS (which can be designed to send a telegram after standstill for a certain time), or human interlocking of the local dispatcher who observes that the train has come to a standstill and after a handling time (reflected in the timer) releases the overlap.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="releaseTriggerRef" type="rail:tGenericRef">
+          <xs:annotation>
+            <xs:documentation>Reference to the trigger point for the overlap release timer. This is usually a train detection element. If no overlapReleaseTimer is set, but a overlapValidityTime is set, the default value is that the timing starts from when the train has stopped on the route. This technology independent (ETCS standstill telegram or local dispatcher observance)</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="releaseTriggerHead" type="xs:boolean">
+          <xs:annotation>
+            <xs:documentation>"true" = valid for first axle (head) of the train. "false" = valid for last axle (tail/rear) of the train</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="overlapValidityTime" type="xs:duration">
+          <xs:annotation>
+            <xs:documentation>Duration the overlap is active blocking potential overlapping routes from forming. The overlap is formed together with the route and is released after overlapValidityTime has run out after the overlapReleaseTimer (aka overlap validity time trigger point) value has been triggered.</xs:documentation>
+            <xs:documentation>See https://www.w3.org/TR/xmlschema-2/#duration</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="proceedSpeed" type="rail:tSpeedKmPerHour">
+          <xs:annotation>
+            <xs:documentation>Proceed speed is a speed restrictions by the route. This is valid for the whole route (from signal to signal). No value=track speed.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="releaseSpeed" type="rail:tSpeedKmPerHour">
+          <xs:annotation>
+            <xs:documentation>Release speed is the speed at which the brake curve intervention is removed and the train driver is unsupervised except from SPAD. This is valid for the whole route (from signal to signal).</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="entryRef" type="rail:tGenericRef" use="required">
+          <xs:annotation>
+            <xs:documentation>refSignalId. Note term definition "route entry"</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="exitRef" type="rail:tGenericRef" use="required">
+          <xs:annotation>
+            <xs:documentation>ref to any element. reference to the signal where the route ends.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tSwitchAndPosition">
+    <xs:annotation>
+      <xs:documentation>For correct use see switch/crossing model. Position is either &quot;straight&quot;=trackContinuecourse or &quot;left/right&quot;=course. See course for direction of diverging track=&quot;left/right&quot;</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="switchRef" type="rail:tGenericRef" use="required">
+      <xs:annotation>
+        <xs:documentation>ref to any Switch element -- only to be used for when there are alternative routes between RouteEntry and RouteExit. Use from interlocking schema @switchAndPosition [ref switch id and course].</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="switchPosition" type="rail:tCourse" use="required" />
+    <xs:attribute name="flankProtection" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>Set to “true” if switch/crossing is not part of the path of the route and gives it flank protection</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="tReleaseGroup">
+    <xs:sequence>
+      <xs:element name="trackSectionRef" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackSectionRef</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:complexContent>
+            <xs:extension base="rail:tElementWithReference">
+              <xs:attribute name="flankProtection" type="xs:boolean">
+                <xs:annotation>
+                  <xs:documentation>Set to “true” if trackSection is not part of the path of the route and gives it flank protection</xs:documentation>
+                </xs:annotation>
+              </xs:attribute>
+            </xs:extension>
+          </xs:complexContent>
+        </xs:complexType>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="tOperatingRule">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:sequence>
+          <xs:element name="childRule" type="rail:tChildRule" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>reference to any another rule included here as part of the main rule</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:childRule</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="objectRef" type="rail:tElementWithReference" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>reference to any infrastructure object affected by the rule</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tChildRule">
+    <xs:attribute name="ruleRef" type="rail:tGenericRef" use="required">
+      <xs:annotation>
+        <xs:documentation>reference to an operatingRule element</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  
+  <!-- Areas -->
+  
+  <xs:complexType name="tLocationCircle">
+    <xs:sequence>
+      <xs:element name="center" type="rail:tGeoCoord">
+        <xs:annotation>
+          <xs:documentation>specification of the center point of a circular location</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:center</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+    <xs:attribute name="radius" type="rail:tLengthM" use="required">
+      <xs:annotation>
+        <xs:documentation>the radius of the circular location given in meters</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+  
+  <xs:complexType name="tLocationPolygon">
+    <xs:sequence>
+      <xs:element name="point" type="rail:tGeoCoord" minOccurs="3" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>specification of the polygon by its bounding nodes; first and last point are connected to close the polygon</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:point</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  
+  <xs:complexType name="tLocationTrack">
+    <xs:sequence>
+      <xs:element name="trackRef" type="rail:tLocationTrackRef" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>reference to at least one track (section) covered by the location</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackRef_trackLocation</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  
+  <xs:complexType name="tLocationTrackRef">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <xs:attribute name="fromPos" type="rail:tLengthM">
+          <xs:annotation>
+            <xs:documentation>relative position on track where location starts</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="toPos" type="rail:tLengthM">
+          <xs:annotation>
+            <xs:documentation>relative position on track where location ends</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  
+  <xs:complexType name="tGenericAreaLocation">
+    <xs:choice>
+      <xs:element name="circle" type="rail:tLocationCircle">
+        <xs:annotation>
+          <xs:documentation>defines a circular shape for the area location</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:circle</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="polygon" type="rail:tLocationPolygon">
+        <xs:annotation>
+          <xs:documentation>defines a polygon shape for the area location</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:polygon</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="trackLocation" type="rail:tLocationTrack">
+        <xs:annotation>
+          <xs:documentation>defines a track based area location</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:trackLocation</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:choice>
+  </xs:complexType>
+  
+  <xs:complexType name="tGenericArea">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:annotation>
+          <xs:documentation>generic area element; the specific purpose of this area is specified by the element that references this area</xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+          <xs:element name="location" type="rail:tGenericAreaLocation" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>location of the area within the track networt or with reference to a coordinate reference system</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:location</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="limitedBy" type="rail:tElementRefInGroup" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>reference from the area to an element bounding this area</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:limitedBy</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tInformationArea">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <!-- Possible information area specific attributes to be added here later -->
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tImpairmentSection">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:sequence>
+          <xs:element name="designator" type="rail:tDesignator" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:designator</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="additionalRunningTime" type="rail:tImpairmentSectionAdditionalRunningTime" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>specifying the additional running time connected with the impairment track section</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:additionalRunningTime</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+        <xs:attributeGroup ref="rail:aImpairmentSection" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  
+  <xs:attributeGroup name="aImpairmentSection">
+    <xs:attribute name="areaRef" type="rail:tGenericRef" use="required">
+      <xs:annotation>
+        <xs:documentation>reference to a genericArea covering the impairment section</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+  
+  <xs:complexType name="tImpairmentSectionAdditionalRunningTime">
+    <xs:attribute name="value" type="xs:duration" use="required">
+      <xs:annotation>
+        <xs:documentation>quantify the additional running time (in form of xs:duration)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="absDir" type="rail:tMileageDirection">
+      <xs:annotation>
+        <xs:documentation>define the travel direction for which the additional running time applies</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:complexType>
+
+  <xs:complexType name="tTrackVacancyDetectionArea">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <!-- Possible track vacancy detection area specific attributes to be added here later -->
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  
+  <xs:complexType name="tLocalOperationArea">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <!-- Possible local operation area specific attributes to be added here later -->
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  
+  <xs:complexType name="tWorkZone">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithReference">
+        <!-- Possible work zone specific attributes to be added here later -->
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  
 </xs:schema>
diff --git a/schema/physicalUnits.xsd b/schema/physicalUnits.xsd
index 7f84748..a4ccf9d 100644
--- a/schema/physicalUnits.xsd
+++ b/schema/physicalUnits.xsd
@@ -1,16 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2018" 
-           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-           targetNamespace="https://www.railml.org/schemas/2018" 
-           elementFormDefault="qualified" 
-           version="2.4">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2021" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="https://www.railml.org/schemas/2021" elementFormDefault="qualified" version="2.5">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.</xs:documentation>
     <xs:documentation>This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivs 3.0 Unported License with additional license conditions of railML.org.</xs:documentation>
     <xs:documentation>For further information see: https://www.railml.org/licence</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.4 Definition of simple types, which represent general units of measure, used by all sub schemas</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.5 Definition of simple types, which represent general units of measure, used by all sub schemas</xs:documentation>
   </xs:annotation>
 
   <xs:include schemaLocation="genericRailML.xsd" />
diff --git a/schema/railML.xsd b/schema/railML.xsd
index dd3cc63..8373cd5 100644
--- a/schema/railML.xsd
+++ b/schema/railML.xsd
@@ -1,17 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2018" 
-           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-           xmlns:dc="http://purl.org/dc/elements/1.1/" 
-           targetNamespace="https://www.railml.org/schemas/2018" 
-           elementFormDefault="qualified" 
-           version="2.4">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2021" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://purl.org/dc/elements/1.1/" targetNamespace="https://www.railml.org/schemas/2021" elementFormDefault="qualified" version="2.5">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.</xs:documentation>
     <xs:documentation>This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivs 3.0 Unported License with additional license conditions of railML.org.</xs:documentation>
     <xs:documentation>For further information see: https://www.railml.org/licence</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.4 Definition of root element "railml", refers to elements of all sub schemas from "xs:include" paths</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.5 Definition of root element "railml", refers to elements of all sub schemas from "xs:include" paths</xs:documentation>
   </xs:annotation>
 
   <xs:include schemaLocation="infrastructure.xsd" />
@@ -21,12 +16,12 @@
   <xs:element name="railml">
     <xs:complexType>
       <xs:annotation>
-        <xs:documentation source="http://wiki.railml.org/index.php?title=CO:railml" />
+        <xs:documentation>See https://wiki2.railml.org/wiki/CO:railml</xs:documentation>
       </xs:annotation>
       <xs:sequence>
         <xs:element name="metadata" type="rail:tMetadata" minOccurs="0">
           <xs:annotation>
-            <xs:documentation source="http://wiki.railml.org/index.php?title=CO:metadata" />
+            <xs:documentation>See https://wiki2.railml.org/wiki/CO:metadata</xs:documentation>
           </xs:annotation>
         </xs:element>
         <xs:element ref="rail:infrastructure" minOccurs="0">
@@ -59,7 +54,7 @@
 
     <!-- infrastructureManager identity in metadata -->
     <xs:key name="infrastructureManagerKey">
-      <xs:selector xpath=".//rail:organizationalUnits/rail:infrastructureManager" />
+      <xs:selector xpath="./rail:metadata/rail:organizationalUnits/rail:infrastructureManager" />
       <xs:field xpath="@id" />
     </xs:key>
 
@@ -79,7 +74,7 @@
 
     <!-- vehicleManufacturer identity in metadata -->
     <xs:key name="vehicleManufacturerKey">
-      <xs:selector xpath=".//rail:organizationalUnits/rail:vehicleManufacturer" />
+      <xs:selector xpath="./rail:metadata/rail:organizationalUnits/rail:vehicleManufacturer" />
       <xs:field xpath="@id" />
     </xs:key>
 
@@ -89,9 +84,21 @@
       <xs:field xpath="@vehicleManufacturerRef" />
     </xs:keyref>
 
+    <!-- vehicleOwner identity in metadata -->
+    <xs:key name="vehicleOwnerKey">
+      <xs:selector xpath="./rail:metadata/rail:organizationalUnits/rail:vehicleOwner" />
+      <xs:field xpath="@id" />
+    </xs:key>
+
+    <!-- vehicleOwner reference in rollingstock subschema -->
+    <xs:keyref name="vehicleOwner-ownerKeyref" refer="rail:vehicleOwnerKey">
+      <xs:selector xpath=".//rail:classification/rail:owner" />
+      <xs:field xpath="@vehicleOwnerRef" />
+    </xs:keyref>
+
     <!-- vehicleOperator identity in metadata -->
     <xs:key name="vehicleOperatorKey">
-      <xs:selector xpath=".//rail:organizationalUnits/rail:vehicleOperator" />
+      <xs:selector xpath="./rail:metadata/rail:organizationalUnits/rail:vehicleOperator" />
       <xs:field xpath="@id" />
     </xs:key>
 
@@ -101,9 +108,15 @@
       <xs:field xpath="@vehicleOperatorRef" />
     </xs:keyref>
 
+    <!-- vehicleOperator reference in timetable subschema -->
+    <xs:keyref name="vehicleOperator-vehicleOperatorKeyref" refer="rail:vehicleOperatorKey">
+      <xs:selector xpath=".//rail:organizationalUnitBinding/rail:vehicleOperator" />
+      <xs:field xpath="@ref" />
+    </xs:keyref>
+
     <!-- customer identity in metadata -->
     <xs:key name="customerKey">
-      <xs:selector xpath=".//rail:organizationalUnits/rail:customer" />
+      <xs:selector xpath="./rail:metadata/rail:organizationalUnits/rail:customer" />
       <xs:field xpath="@id" />
     </xs:key>
 
@@ -115,7 +128,7 @@
 
     <!-- railwayUndertaking identity in metadata -->
     <xs:key name="railwayUndertakingKey">
-      <xs:selector xpath=".//rail:organizationalUnits/rail:railwayUndertaking" />
+      <xs:selector xpath="./rail:metadata/rail:organizationalUnits/rail:railwayUndertaking" />
       <xs:field xpath="@id" />
     </xs:key>
 
@@ -127,7 +140,7 @@
 
     <!-- operationalUndertaking identity in metadata -->
     <xs:key name="operationalUndertakingKey">
-      <xs:selector xpath=".//rail:organizationalUnits/rail:operationalUndertaking" />
+      <xs:selector xpath="./rail:metadata/rail:organizationalUnits/rail:operationalUndertaking" />
       <xs:field xpath="@id" />
     </xs:key>
 
@@ -139,7 +152,7 @@
 
     <!-- concessionaire identity in metadata -->
     <xs:key name="concessionaireKey">
-      <xs:selector xpath=".//rail:organizationalUnits/rail:concessionaire" />
+      <xs:selector xpath="./rail:metadata/rail:organizationalUnits/rail:concessionaire" />
       <xs:field xpath="@id" />
     </xs:key>
 
@@ -151,7 +164,7 @@
 
     <!-- contractor identity in metadata -->
     <xs:key name="contractorKey">
-      <xs:selector xpath=".//rail:organizationalUnits/rail:contractor" />
+      <xs:selector xpath="./rail:metadata/rail:organizationalUnits/rail:contractor" />
       <xs:field xpath="@id" />
     </xs:key>
 
@@ -161,6 +174,18 @@
       <xs:field xpath="@ref" />
     </xs:keyref>
 
+    <!-- any organization unit identity in metadata -->
+    <xs:key name="organizationalUnitKey">
+      <xs:selector xpath="./rail:metadata/rail:organizationalUnits/*" />
+      <xs:field xpath="@id" />
+    </xs:key>
+
+    <!-- organization unit reference in timetable subschema -->
+    <xs:keyref name="category-organizationalUnitKeyref" refer="rail:organizationalUnitKey">
+      <xs:selector xpath=".//rail:categories/rail:category" />
+      <xs:field xpath="@organizationalUnitRef" />
+    </xs:keyref>
+
     <!-- ocp idendity in infrastructure subschema -->
     <xs:key name="ocpKey">
       <xs:selector xpath=".//rail:operationControlPoints/rail:ocp" />
@@ -233,6 +258,10 @@
     </xs:keyref>
 
     <!-- ocp reference in timetable subschema -->
+    <xs:keyref name="ocp-distributionKeyref" refer="rail:ocpKey">
+      <xs:selector xpath=".//rail:distribution/rail:referenceOcp" />
+      <xs:field xpath="@ocpRef" />
+    </xs:keyref>
     <xs:keyref name="ocp-ocpTTKeyref" refer="rail:ocpKey">
       <xs:selector xpath=".//rail:ocpsTT/rail:ocpTT" />
       <xs:field xpath="@ocpRef" />
@@ -249,6 +278,14 @@
       <xs:selector xpath=".//rail:blockParts/rail:blockPart" />
       <xs:field xpath="@endOcpRef" />
     </xs:keyref>
+    <xs:keyref name="ocp-trainPartOrigin" refer="rail:ocpKey">
+      <xs:selector xpath=".//rail:origin" />
+      <xs:field xpath="@ocpRef" />
+    </xs:keyref>
+    <xs:keyref name="ocp-trainPartDestination" refer="rail:ocpKey">
+      <xs:selector xpath=".//rail:destination" />
+      <xs:field xpath="@ocpRef" />
+    </xs:keyref>
 
     <!-- track idendity in infrastructure subschema -->
     <xs:key name="trackKey">
@@ -279,6 +316,10 @@
       <xs:selector xpath=".//rail:ocpTT/rail:sectionTT/rail:trackRef" />
       <xs:field xpath="@ref" />
     </xs:keyref>
+    <xs:keyref name="track-alternativeSectionTTKeyref" refer="rail:trackKey">
+      <xs:selector xpath=".//rail:ocpTT/rail:alternativeSectionsTT/rail:alternativeSectionTT/rail:trackRef" />
+      <xs:field xpath="@ref" />
+    </xs:keyref>
 
     <!-- line idendity in infrastructure subschema -->
     <xs:key name="lineKey">
@@ -301,6 +342,10 @@
       <xs:selector xpath=".//rail:ocpTT/rail:sectionTT" />
       <xs:field xpath="@lineRef" />
     </xs:keyref>
+    <xs:keyref name="line-alternativeSectionTTKeyref" refer="rail:lineKey">
+      <xs:selector xpath=".//rail:ocpTT/rail:alternativeSectionsTT/rail:alternativeSectionTT" />
+      <xs:field xpath="@lineRef" />
+    </xs:keyref>
 
     <!-- vehicle idendity in rollingstock subschema -->
     <xs:key name="vehicleKey">
@@ -340,7 +385,7 @@
 
     <!-- formation reference in timetable subschema -->
     <xs:keyref name="formation-formationTTKeyref" refer="rail:formationKey">
-      <xs:selector xpath=".//rail:trainParts/rail:trainPart/rail:formationTT" />
+      <xs:selector xpath=".//rail:formationTT" />
       <xs:field xpath="@formationRef" />
     </xs:keyref>
     <xs:keyref name="formation-rosteringKeyref" refer="rail:formationKey">
@@ -359,14 +404,22 @@
     </xs:key>
 
     <!-- category reference in timetable subschema -->
+    <xs:keyref name="category-patternTrainPartKeyref" refer="rail:categoryKey">
+      <xs:selector xpath=".//rail:patternTrainParts/rail:patternTrainPart" />
+      <xs:field xpath="@categoryRef" />
+    </xs:keyref>
     <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:selector xpath=".//rail:trainPartSequence" />
       <xs:field xpath="@categoryRef" />
     </xs:keyref>
+    <xs:keyref name="category-categoryParentRef" refer="rail:categoryKey">
+      <xs:selector xpath=".//rail:categories/rail:category" />
+      <xs:field xpath="@parentRef" />
+    </xs:keyref>
 
     <!-- category reference in rollingstock subschema -->
     <xs:keyref name="category-formationKeyref" refer="rail:categoryKey">
@@ -480,6 +533,30 @@
       <xs:field xpath="@operatingPeriodRef" />
     </xs:keyref>
 
+    <!-- project identity in common schema -->
+    <xs:key name="projectKey">
+      <xs:selector xpath="./rail:metadata/rail:projects/rail:project" />
+      <xs:field xpath="@id" />
+    </xs:key>
+
+    <!-- project reference in common schema -->
+    <xs:keyref name="project-revisionKeyref" refer="rail:projectKey">
+      <xs:selector xpath="./rail:metadata/rail:projects/rail:project/rail:revision" />
+      <xs:field xpath="@initialProjectRef" />
+    </xs:keyref>
+
+    <!-- genericArea identity in infrastructure schema -->
+    <xs:key name="genericAreaKey">
+      <xs:selector xpath="./rail:infrastructure/rail:genericAreas/rail:genericArea" />
+      <xs:field xpath="@id" />
+    </xs:key>
+
+    <!-- genericArea reference in common schema -->
+    <xs:keyref name="genericArea-projectKeyref" refer="rail:genericAreaKey">
+      <xs:selector xpath="./rail:metadata/rail:projects/rail:project/rail:projectArea" />
+      <xs:field xpath="@ref" />
+    </xs:keyref>
+
   </xs:element>
 
 </xs:schema>
diff --git a/schema/railwayBaseTypes.xsd b/schema/railwayBaseTypes.xsd
index b4ce5cb..3ed88b5 100644
--- a/schema/railwayBaseTypes.xsd
+++ b/schema/railwayBaseTypes.xsd
@@ -1,26 +1,21 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2018" 
-           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-           xmlns:dc="http://purl.org/dc/elements/1.1/" 
-           targetNamespace="https://www.railml.org/schemas/2018" 
-           elementFormDefault="qualified" 
-           version="2.4">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2021" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://purl.org/dc/elements/1.1/" targetNamespace="https://www.railml.org/schemas/2021" elementFormDefault="qualified" version="2.5">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.</xs:documentation>
     <xs:documentation>This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivs 3.0 Unported License with additional license conditions of railML.org.</xs:documentation>
     <xs:documentation>For further information see: https://www.railml.org/licence</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.4 Definition of attribute groups, simple and complex types, used by more than one sub schema</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.5 Definition of attribute groups, simple and complex types, used by more than one sub schema</xs:documentation>
   </xs:annotation>
 
   <xs:include schemaLocation="genericRailML.xsd" />
   <xs:include schemaLocation="railwayUnits.xsd" />
 
-  <xs:import namespace="http://purl.org/dc/elements/1.1/" schemaLocation="http://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd">
+  <xs:import namespace="http://purl.org/dc/elements/1.1/" schemaLocation="https://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd">
     <xs:annotation>
       <xs:documentation>Portions of this software may use XML schemas Copyright (c) 2009 DCMI, the Dublin Core Metadata Initiative. These are licensed under the Creative Commons 3.0 Attribution license.</xs:documentation>
-      <xs:documentation>For further information see: http://dublincore.org/ License link: http://creativecommons.org/licenses/by/3.0/</xs:documentation>
+      <xs:documentation>For further information see: https://dublincore.org/ License link: https://creativecommons.org/licenses/by/3.0/</xs:documentation>
     </xs:annotation>
   </xs:import>
 
@@ -28,8 +23,16 @@
     <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:attribute name="from" type="xs:time" use="required">
+      <xs:annotation>
+        <xs:documentation>The start time for the given mode. When referring to midnight at the beginning of the day, please use "00:00:00".</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="until" type="xs:time" use="required">
+      <xs:annotation>
+        <xs:documentation>The end time for the given mode. When referring to midnight at the end of the day, please use "24:00:00".</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:complexType>
 
   <xs:attributeGroup name="aPeriodTimeSpan">
@@ -40,6 +43,14 @@
     <xs:attribute name="endTime" type="xs:time" />
   </xs:attributeGroup>
 
+  <xs:attributeGroup name="aExactTimeSpan">
+    <xs:annotation>
+      <xs:documentation>generic type for exact time spans/periods in various context</xs:documentation>
+    </xs:annotation>
+    <xs:attribute name="startDateTime" type="xs:dateTime" />
+    <xs:attribute name="endDateTime" type="xs:dateTime" />
+  </xs:attributeGroup>
+
   <xs:attributeGroup name="aTimePeriod">
     <xs:annotation>
       <xs:documentation>generic type for time spans/periods regarding its dates</xs:documentation>
@@ -58,15 +69,14 @@
   <xs:complexType name="tBasicBrakeType">
     <xs:annotation>
       <xs:documentation>settings and characteristic of a particular brake type or brake application position</xs:documentation>
-      <xs:documentation source="http://wiki.railml.org/index.php?title=RS:vehicleBrake" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/RS:vehicleBrake</xs:documentation>
     </xs:annotation>
     <xs:sequence>
       <xs:element name="auxiliaryBrakes" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>provides access to the list of possible auxiliary brake systems</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:auxiliaryBrakes_vehicleBrake" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:auxiliaryBrakes_trainBrakes" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:auxiliaryBrakes" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:auxiliaryBrakes_vehicleBrake and https://wiki2.railml.org/wiki/RS:auxiliaryBrakes_trainBrakes</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:auxiliaryBrakes</xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:attributeGroup ref="rail:aAuxiliaryBrakes" />
@@ -97,11 +107,21 @@
         <xs:documentation>brake mass for normal brake operations of none-automatic brakes</xs:documentation>
       </xs:annotation>
     </xs:attribute>
+    <xs:attribute name="regularBrakePercentage" type="rail:tBrakePercentage">
+      <xs:annotation>
+        <xs:documentation>brake percentage related to 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="emergencyBrakePercentage" type="rail:tBrakePercentage">
+      <xs:annotation>
+        <xs:documentation>brake percentage related to brake mass for emergency brake operations, differs from regular brake percentage 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>
@@ -283,13 +303,13 @@
       <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:documentation source="http://wiki.railml.org/index.php?title=RS:places" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:places</xs:documentation>
         </xs:annotation>
       </xs:element>
       <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:documentation source="http://wiki.railml.org/index.php?title=RS:service_passenger" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:service_passenger</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -298,7 +318,7 @@
   <xs:complexType name="tPlaces">
     <xs:annotation>
       <xs:documentation>description of any places of the passenger car(part)</xs:documentation>
-      <xs:documentation source="http://wiki.railml.org/index.php?title=RS:places" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/RS:places</xs:documentation>
     </xs:annotation>
     <xs:attributeGroup ref="rail:aPlaces" />
   </xs:complexType>
@@ -307,9 +327,9 @@
     <xs:attribute name="category" type="rail:tPlaceCategory" use="required" />
     <xs:attribute name="tapTsiType9039Code">
       <xs:annotation>
-        <xs:documentation>Code list for the facility type description based on the directory of passenger code lists for the ERA technical documents used in TAP TSI (B.4.9039)</xs:documentation>
-        <xs:documentation>Values are outlined in the type9039CodeList (http://www.era.europa.eu/Document-Register/Documents/ERA_TAP_Passenger_Code_List_1.3.1.xsd)</xs:documentation>
-        <xs:documentation source="http://www.era.europa.eu/Document-Register/Pages/TAP-TSI.aspx" />
+        <xs:documentation>Facility code from the TAP TSI code list B.4.9039 "Code list for the facility type description"</xs:documentation>
+        <xs:documentation>The code list is maintained by ERA and can be found in the Directory of Passenger Code Lists for the ERA Technical Documents used in TAP TSI, which can be downloaded from https://www.era.europa.eu/content/tap .</xs:documentation>
+        <xs:documentation>See https://www.era.europa.eu/activities/technical-specifications-interoperability_en#meeting10</xs:documentation>
       </xs:annotation>
       <xs:simpleType>
         <xs:restriction base="rail:tDigitString">
@@ -363,7 +383,7 @@
   <xs:complexType name="tService">
     <xs:annotation>
       <xs:documentation>description of any service provided by the passenger car(part)</xs:documentation>
-      <xs:documentation source="http://wiki.railml.org/index.php?title=RS:service" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/RS:service_passenger</xs:documentation>
     </xs:annotation>
     <xs:attributeGroup ref="rail:aService" />
   </xs:complexType>
@@ -372,9 +392,9 @@
     <xs:attribute name="name" type="rail:tGenericName" />
     <xs:attribute name="tapTsiType7161Code">
       <xs:annotation>
-        <xs:documentation>Code list for the special services based on the directory of passenger code lists for the ERA technical documents used in TAP TSI (B.4.7161)</xs:documentation>
-        <xs:documentation>Values are outlined in the type7161CodeList (http://www.era.europa.eu/Document-Register/Documents/ERA_TAP_Passenger_Code_List_1.3.1.xsd)</xs:documentation>
-        <xs:documentation source="http://www.era.europa.eu/Document-Register/Pages/TAP-TSI.aspx" />
+        <xs:documentation>Service code from the TAP TSI code list B.4.7161 "Code list for the special services"</xs:documentation>
+        <xs:documentation>The code list is maintained by ERA and can be found in the Directory of Passenger Code Lists for the ERA Technical Documents used in TAP TSI, which can be downloaded from https://www.era.europa.eu/content/tap .</xs:documentation>
+        <xs:documentation>See https://www.era.europa.eu/activities/technical-specifications-interoperability_en#meeting10</xs:documentation>
       </xs:annotation>
       <xs:simpleType>
         <xs:restriction base="rail:tDigitString">
@@ -589,25 +609,61 @@
   </xs:simpleType>
 
   <xs:simpleType name="tUsageType">
+    <xs:union>
+      <xs:simpleType>
         <xs:restriction base="xs:string">
           <xs:enumeration value="passenger" />
           <xs:enumeration value="goods" />
           <xs:enumeration value="mixed" />
         </xs:restriction>
       </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
 
+  <xs:complexType name="tDesignator">
+    <xs:attribute name="register" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation>name of the register, e.g. registers for OCPs: IBNR, DB640, RL100 or DIDOK</xs:documentation>
+        <xs:documentation>choose a value from the railML codelist Registers.xml or name your own register starting with an underscore</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="entry" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation>an entity's code in the specified register</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attributeGroup ref="rail:aTimePeriod">
+      <xs:annotation>
+        <xs:documentation>the time period when the register is valid</xs:documentation>
+      </xs:annotation>
+    </xs:attributeGroup>
+    <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="tMetadata">
     <xs:complexContent>
       <xs:extension base="dc:elementContainer">
         <xs:annotation>
-          <xs:documentation>flexible collection of Dublin Core metadata based on xs:any according to http://dublincore.org/</xs:documentation>
+          <xs:documentation>flexible collection of Dublin Core metadata based on xs:any according to https://dublincore.org/</xs:documentation>
         </xs:annotation>
         <xs:sequence>
           <xs:element name="organizationalUnits" type="rail:tOrganizationalUnits" minOccurs="0">
             <xs:annotation>
               <xs:documentation>Container element for various company definitions regarding the railway service of this file</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=CO:organizationalUnits" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/CO:organizationalUnits</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="projects" type="rail:tProjects" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Container element for project desriptions</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/CO:projects</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -620,57 +676,80 @@
       <xs:element name="infrastructureManager" type="rail:tInfrastructureManager" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>de: Infrastrukturbetreiber</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=CO:infrastructureManager" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/CO:infrastructureManager</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="vehicleManufacturer" type="rail:tVehicleManufacturer" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>de: Fahrzeughersteller</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=CO:vehicleManufacturer" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/CO:vehicleManufacturer</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="vehicleOwner" type="rail:tVehicleOwner" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>An organisation that has the purpose of making railway vehicles available for railway undertakings</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/CO:vehicleOwner</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="vehicleOperator" type="rail:tVehicleOperator" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>Some kind of subcontractor (railway undertaking) that operates the vehicle, if different from the one that is responsible for the commercial service</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=CO:vehicleOperator" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/CO:vehicleOperator</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="customer" type="rail:tCustomer" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>The authority or enterprise that ordered the transportation service, i.e., an integrated transit system</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=CO:customer" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/CO:customer</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="railwayUndertaking" type="rail:tRailwayUndertaking" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>The undertaking that is commercially responsible for the service</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=CO:railwayUndertaking" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/CO:railwayUndertaking</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="operationalUndertaking" type="rail:tOperationalUndertaking" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>The unit that is responsible for the operational planning of this service</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=CO:operationalUndertaking" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/CO:operationalUndertaking</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="concessionaire" type="rail:tConcessionaire" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>de: Konzessionsinhaber</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=CO:concessionaire" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/CO:concessionaire</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="contractor" type="rail:tContractor" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>Any unit or undertaking that has a binding not defined in a neighbouring element</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=CO:contractor" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/CO:contractor</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
   </xs:complexType>
 
-  <xs:complexType name="tInfrastructureManager">
+  <xs:complexType name="tOrganizationalUnit">
     <xs:complexContent>
       <xs:extension base="rail:tElementWithIDAndName">
+        <xs:annotation>
+          <xs:documentation>Base type for child elements of organizationalUnits</xs:documentation>
+        </xs:annotation>
+        <xs:sequence>
+          <xs:element name="designator" type="rail:tDesignator" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:designator</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tInfrastructureManager">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrganizationalUnit">
         <xs:annotation>
           <xs:documentation>use the separated infrastructureManagerCode list for the 'code' attribute</xs:documentation>
         </xs:annotation>
@@ -680,43 +759,49 @@
 
   <xs:complexType name="tVehicleManufacturer">
     <xs:complexContent>
-      <xs:extension base="rail:tElementWithIDAndName" />
+      <xs:extension base="rail:tOrganizationalUnit" />
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tVehicleOwner">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrganizationalUnit" />
     </xs:complexContent>
   </xs:complexType>
 
   <xs:complexType name="tVehicleOperator">
     <xs:complexContent>
-      <xs:extension base="rail:tElementWithIDAndName" />
+      <xs:extension base="rail:tOrganizationalUnit" />
     </xs:complexContent>
   </xs:complexType>
 
   <xs:complexType name="tCustomer">
     <xs:complexContent>
-      <xs:extension base="rail:tElementWithIDAndName" />
+      <xs:extension base="rail:tOrganizationalUnit" />
     </xs:complexContent>
   </xs:complexType>
 
   <xs:complexType name="tRailwayUndertaking">
     <xs:complexContent>
-      <xs:extension base="rail:tElementWithIDAndName" />
+      <xs:extension base="rail:tOrganizationalUnit" />
     </xs:complexContent>
   </xs:complexType>
 
   <xs:complexType name="tOperationalUndertaking">
     <xs:complexContent>
-      <xs:extension base="rail:tElementWithIDAndName" />
+      <xs:extension base="rail:tOrganizationalUnit" />
     </xs:complexContent>
   </xs:complexType>
 
   <xs:complexType name="tConcessionaire">
     <xs:complexContent>
-      <xs:extension base="rail:tElementWithIDAndName" />
+      <xs:extension base="rail:tOrganizationalUnit" />
     </xs:complexContent>
   </xs:complexType>
 
   <xs:complexType name="tContractor">
     <xs:complexContent>
-      <xs:extension base="rail:tElementWithIDAndName">
+      <xs:extension base="rail:tOrganizationalUnit">
         <xs:attribute name="role" type="rail:tGenericName">
           <xs:annotation>
             <xs:documentation>characterizes the kind of work that has to be fulfilled with the contract, e.g. catering, cleaning</xs:documentation>
@@ -730,4 +815,237 @@
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
+
+  <xs:complexType name="tProjects">
+    <xs:sequence>
+      <xs:element name="project" type="rail:tProject" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>Describes one or more projects this railML model belongs to.</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/CO:project</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="tProject">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:sequence>
+          <xs:element name="designator" type="rail:tDesignator" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>External identifier of the project.</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:designator</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="alternative" type="rail:tElementWithIDAndName" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>If a project has multiple alternative solutions, this elements is used to specify which alternative is presented in this railML file.</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/CO:alternative</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="phase" type="rail:tPhase" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Describes which phase of the project this file represents.</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/CO:phase</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="revision" type="rail:tRevision" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Describes changes from a previous revision and the authors and auditors of these changes.</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/CO:revision</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="projectArea" type="rail:tElementWithReference" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>Reference to a project area.</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/CO:projectArea</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tPhase">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aTimePeriod">
+          <xs:annotation>
+            <xs:documentation>The start and end date for this phase.</xs:documentation>
+          </xs:annotation>
+        </xs:attributeGroup>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tRevision">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:sequence>
+          <xs:element name="objectsRevised" type="rail:tObjectsRevised" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Container for references to objects changed in this revision.</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/CO:objectsRevised</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="revisedBy" type="rail:tDoneBy" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>The author(s) of this revision</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/CO:revisedBy</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="checkedBy" type="rail:tDoneBy" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>The peer-reviewer(s) of this revision</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/CO:checkedBy</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="approvedBy" type="rail:tDoneBy" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>The person(s) who approved this revision</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/CO:approvedBy</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+        <xs:attribute name="initialProjectRef" type="rail:tGenericRef">
+          <xs:annotation>
+            <xs:documentation>Reference to a project element describing the previous revision. This may be the same project with another alternative or revision, or another project that was the base for this one.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+  
+  <xs:complexType name="tObjectsRevised">
+    <xs:sequence>
+      <xs:element name="objectRevised" type="rail:tElementWithReference" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>Reference to an object that was changed in this revision.</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/CO:objectRevised</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  
+  <xs:complexType name="tDoneBy">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attribute name="date" type="xs:date">
+          <xs:annotation>
+            <xs:documentation>The date of a revision</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:simpleType name="tInfrastructureStatus">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="conceptual">
+            <xs:annotation>
+              <xs:documentation>The construction or commissioning of the element is planned for the medium or long term. However, there are still no concrete (planning) activities for the construction of the element beyond the preliminary planning and cost estimation.</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="planned">
+            <xs:annotation>
+              <xs:documentation>The construction or commissioning of the element is planned concretely and at short notice or concrete planning activities for the construction take place, e.g. design, approval or implementation planning, cost calculation, award of contracts. It is not normally possible to use the element.</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="operational">
+            <xs:annotation>
+              <xs:documentation>The element is operational and can be used regularly.</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="disabled">
+            <xs:annotation>
+              <xs:documentation>The element is currently not usable, switched off or deactivated and therefore cannot be used regularly. However, it can be put back into operation at short notice without further construction, acceptance or approval activities.</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="closed">
+            <xs:annotation>
+              <xs:documentation>The element is no longer available, removed, dismantled, or no longer exists. Planning, construction or commissioning activities are absolutely necessary for recommissioning.</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="unknown">
+            <xs:annotation>
+              <xs:documentation>The state of this infrastructure element is explicitly unknown.</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tStates">
+    <xs:sequence>
+      <xs:element name="state" type="rail:tState" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>This is to define disabled/enabled objects with a given time frame.</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/IS:state</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:state</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="tState">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithID">
+        <xs:sequence>
+          <xs:element name="designator" type="rail:tDesignator" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/IS:designator</xs:documentation>
+            </xs:annotation>
+          </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="disabled" type="xs:boolean" use="required">
+          <xs:annotation>
+            <xs:documentation>This attribute is 'true' if the object is somehow disabled.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="status" type="rail:tInfrastructureStatus">
+          <xs:annotation>
+            <xs:documentation>defines the status of the object from perspective of its availability</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef">
+          <xs:annotation>
+            <xs:documentation>The temporal frame of the 'state' should be defined in the 'timetable' part of the railML file, using the 'operatingPeriod' element.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attributeGroup ref="rail:aPeriodTimeSpan">
+          <xs:annotation>
+            <xs:documentation>Start and/or end time of the non-availability of the object if linked with an operating period.</xs:documentation>
+          </xs:annotation>
+        </xs:attributeGroup>
+        <xs:attributeGroup ref="rail:aExactTimeSpan">
+          <xs:annotation>
+            <xs:documentation>start and/or end time of the non-availability of the object if not linked with an operating period.</xs:documentation>
+          </xs:annotation>
+        </xs:attributeGroup>
+        <xs:attribute name="endDayOffset" type="xs:nonNegativeInteger">
+          <xs:annotation>
+            <xs:documentation>The number of midnight overruns over which non-availability persists.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attribute name="remarks" type="rail:tElementDescription">
+          <xs:annotation>
+            <xs:documentation>This is to further explain the 'state' definition.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+        <xs:attributeGroup ref="rail:anyAttribute" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
 </xs:schema>
diff --git a/schema/railwayUnits.xsd b/schema/railwayUnits.xsd
index 11c1905..0cebb00 100644
--- a/schema/railwayUnits.xsd
+++ b/schema/railwayUnits.xsd
@@ -1,16 +1,12 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2018" 
-           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-           targetNamespace="https://www.railml.org/schemas/2018" 
-           elementFormDefault="qualified" 
-           version="2.4">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2021" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="https://www.railml.org/schemas/2021" elementFormDefault="qualified" version="2.5">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.</xs:documentation>
     <xs:documentation>This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivs 3.0 Unported License with additional license conditions of railML.org.</xs:documentation>
     <xs:documentation>For further information see: https://www.railml.org/licence</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.4 Definition of simple types, which represent railway specific units of measure and enumeration lists, used by all sub schemas</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.5 Definition of simple types, which represent railway specific units of measure and enumeration lists, used by all sub schemas</xs:documentation>
   </xs:annotation>
 
   <xs:include schemaLocation="physicalUnits.xsd" />
@@ -51,7 +47,6 @@
     <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>
diff --git a/schema/rollingstock.xsd b/schema/rollingstock.xsd
index a9f79c8..c41a2f2 100644
--- a/schema/rollingstock.xsd
+++ b/schema/rollingstock.xsd
@@ -1,39 +1,34 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2018" 
-           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-           xmlns:xml="http://www.w3.org/XML/1998/namespace" 
-           targetNamespace="https://www.railml.org/schemas/2018" 
-           elementFormDefault="qualified" 
-           version="2.4">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2021" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="https://www.railml.org/schemas/2021" elementFormDefault="qualified" version="2.5">
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.</xs:documentation>
     <xs:documentation>This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivs 3.0 Unported License with additional license conditions of railML.org.</xs:documentation>
     <xs:documentation>For further information see: https://www.railml.org/licence</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.4 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:documentation>Content of this file: XML Schema for railML(R) 2.5 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:documentation source="http://wiki.railml.org/index.php?title=RS:rollingstock" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/RS:rollingstock</xs:documentation>
     </xs:annotation>
+    <xs:complexType>
       <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:documentation source="http://wiki.railml.org/index.php?title=RS:vehicles" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/RS:vehicles</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:documentation source="http://wiki.railml.org/index.php?title=RS:formations" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/RS:formations</xs:documentation>
               </xs:annotation>
             </xs:element>
           </xs:sequence>
@@ -87,7 +82,7 @@
       <xs:element name="vehicle" type="rail:eVehicle" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>data related to single vehicle or vehicle family</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:vehicle" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:vehicle</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -100,40 +95,43 @@
           <xs:element name="classification" type="rail:eClassification" minOccurs="0">
             <xs:annotation>
               <xs:documentation>general management and classification data of vehicle</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:classification" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:classification</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:documentation source="http://wiki.railml.org/index.php?title=RS:engine" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:engine</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:documentation source="http://wiki.railml.org/index.php?title=RS:wagon" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:wagon</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:documentation source="http://wiki.railml.org/index.php?title=RS:vehicleBrakes" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:vehicleBrakes</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:documentation source="http://wiki.railml.org/index.php?title=RS:loadLimitMatrix" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:loadLimitMatrix</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:documentation source="http://wiki.railml.org/index.php?title=RS:curvingLimitation" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:curvingLimitation</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="maintenanceIntervals" type="rail:eMaintenanceIntervals" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:maintenanceIntervals</xs:documentation>
+            </xs:annotation>
           </xs:element>
         </xs:sequence>
       </xs:extension>
@@ -145,13 +143,19 @@
       <xs:element name="manufacturer" type="rail:tManufacturer" minOccurs="0">
         <xs:annotation>
           <xs:documentation>manufacturer data related to the vehicle</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:manufacturer" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:manufacturer</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="owner" type="rail:tOwnerRS" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>owner specific vehicle data</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:owner</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="operator" type="rail:eOperator" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>general operator specific vehicle data</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:operator" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:operator</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -164,7 +168,7 @@
           <xs:element name="vehicleIdentification" type="rail:tVehicleIdentification" minOccurs="0">
             <xs:annotation>
               <xs:documentation>vehicle identification as described by EU paper DV51EN01 annex P or UIC 438</xs:documentation>
-  		      <xs:documentation source="http://wiki.railml.org/index.php?title=RS:vehicleIdentification" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:vehicleIdentification</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -175,7 +179,7 @@
   <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:documentation source="http://wiki.railml.org/index.php?title=RS:engine" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/RS:engine</xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="rail:tEngine">
@@ -183,25 +187,25 @@
           <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:documentation source="http://wiki.railml.org/index.php?title=RS:propulsion" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:propulsion</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:documentation source="http://wiki.railml.org/index.php?title=RS:pantograph" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:pantograph</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:documentation source="http://wiki.railml.org/index.php?title=RS:energyStorage" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:energyStorage</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:documentation source="http://wiki.railml.org/index.php?title=RS:monitoring" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:monitoring</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -212,7 +216,7 @@
   <xs:complexType name="ePantograph">
     <xs:annotation>
       <xs:documentation>technical data about the installed pantographs of a vehicle</xs:documentation>
-      <xs:documentation source="http://wiki.railml.org/index.php?title=RS:pantograph" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/RS:pantograph</xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="rail:tPantograph">
@@ -220,7 +224,7 @@
           <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:documentation source="http://wiki.railml.org/index.php?title=RS:dedicatedSupplySystem_pantograph" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:dedicatedSupplySystem_pantograph</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -235,7 +239,7 @@
           <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0">
             <xs:annotation>
               <xs:documentation>detailed efficiency of energy storage device</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:efficiency_energyStorage" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:efficiency_energyStorage</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -246,7 +250,7 @@
   <xs:complexType name="ePropulsion">
     <xs:annotation>
       <xs:documentation>technical data about the propulsion system of a vehicle</xs:documentation>
-      <xs:documentation source="http://wiki.railml.org/index.php?title=RS:propulsion" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/RS:propulsion</xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="rail:tPropulsion">
@@ -254,103 +258,103 @@
           <xs:element name="transformer" type="rail:eTransformer" minOccurs="0">
             <xs:annotation>
               <xs:documentation>technical data of main transformer</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:transformer" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS: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:documentation source="http://wiki.railml.org/index.php?title=RS:fourQuadrantChopper" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:fourQuadrantChopper</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:documentation source="http://wiki.railml.org/index.php?title=RS:link" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:link</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:documentation source="http://wiki.railml.org/index.php?title=RS:tractionInverter" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:tractionInverter</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:documentation source="http://wiki.railml.org/index.php?title=RS:tractionMotor" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:tractionMotor</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:documentation source="http://wiki.railml.org/index.php?title=RS:diesel" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:diesel</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:documentation source="http://wiki.railml.org/index.php?title=RS:gear" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:gear</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:documentation source="http://wiki.railml.org/index.php?title=RS:auxiliarySupply" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:auxiliarySupply</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:documentation source="http://wiki.railml.org/index.php?title=RS:tractiveEffort" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:tractiveEffort</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:documentation source="http://wiki.railml.org/index.php?title=RS:brakeEffort" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:brakeEffort</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:documentation source="http://wiki.railml.org/index.php?title=RS:tractiveCurrent" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:tractiveCurrent</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:documentation source="http://wiki.railml.org/index.php?title=RS:brakeCurrent" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:brakeCurrent</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:documentation source="http://wiki.railml.org/index.php?title=RS:tractiveCurrentLimitation" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:tractiveCurrentLimitation</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:documentation source="http://wiki.railml.org/index.php?title=RS:brakeCurrentLimitation" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:brakeCurrentLimitation</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:documentation source="http://wiki.railml.org/index.php?title=RS:tractiveVehicleEfficiency" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:tractiveVehicleEfficiency</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:documentation source="http://wiki.railml.org/index.php?title=RS:brakeVehicleEfficiency" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:brakeVehicleEfficiency</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:documentation source="http://wiki.railml.org/index.php?title=RS:rackTraction_propulsion" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:rackTraction_propulsion</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -365,13 +369,13 @@
           <xs:element name="winding" type="rail:tWinding" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>nominal values of each transformer winding</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:winding" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS: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:documentation source="http://wiki.railml.org/index.php?title=RS:efficiency_transformer" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:efficiency_transformer</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -386,13 +390,13 @@
           <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0">
             <xs:annotation>
               <xs:documentation>four-quadrant-chopper efficiency vs. speed</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:efficiency_fourQuadratChopper" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:efficiency_fourQuadrantChopper</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:documentation source="http://wiki.railml.org/index.php?title=RS:phi" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:phi</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -407,13 +411,13 @@
           <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0">
             <xs:annotation>
               <xs:documentation>traction inverter efficiency vs. speed</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:efficiency_tractionInverter" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:efficiency_tractionInverter</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="pulsePattern" type="rail:ePulsePattern" minOccurs="0">
             <xs:annotation>
               <xs:documentation>pulse pattern of the traction inverter</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:pulsePattern" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:pulsePattern</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -426,7 +430,7 @@
       <xs:element name="valueTable">
         <xs:annotation>
           <xs:documentation>table of values vs. arbitrary variable</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_pulsePattern" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:valueTable_pulsePattern</xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:complexContent>
@@ -444,13 +448,13 @@
           <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0">
             <xs:annotation>
               <xs:documentation>traction motor efficiency vs. speed</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:efficiency_tractionMotor" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:efficiency_tractionMotor</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:documentation source="http://wiki.railml.org/index.php?title=RS:mechanicalLosses" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:mechanicalLosses</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -465,7 +469,7 @@
           <xs:element name="efficiency" type="rail:tEfficiencyCurve" minOccurs="0">
             <xs:annotation>
               <xs:documentation>transmission efficiency vs. speed</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:efficiency_gear" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:efficiency_gear</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -480,7 +484,7 @@
           <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:documentation source="http://wiki.railml.org/index.php?title=RS:dedicatedSupplySystem_auxiliarySupply" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:dedicatedSupplySystem_auxiliarySupply</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -495,25 +499,25 @@
           <xs:element name="etcs" type="rail:eETCS" minOccurs="0">
             <xs:annotation>
               <xs:documentation>capabilities with respect to European Train Control System</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:etcs" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:etcs</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:documentation source="http://wiki.railml.org/index.php?title=RS:nationalSystem" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:nationalSystem</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:documentation source="http://wiki.railml.org/index.php?title=RS:trainRadio" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:trainRadio</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:documentation source="http://wiki.railml.org/index.php?title=RS:otherEquipment" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:otherEquipment</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -524,7 +528,7 @@
   <xs:complexType name="eETCS">
     <xs:annotation>
       <xs:documentation>data about installed ETCS system</xs:documentation>
-      <xs:documentation source="http://wiki.railml.org/index.php?title=RS:etcs" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/RS:etcs</xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="rail:tETCS">
@@ -532,7 +536,7 @@
           <xs:element name="specificTransmissionModule" type="rail:tSpecificTransmissionModule" minOccurs="0">
             <xs:annotation>
               <xs:documentation>data for special transmission modules of ETCS equipment</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:specificTransmissionModule" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:specificTransmissionModule</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -543,7 +547,7 @@
   <xs:complexType name="eTrainRadio">
     <xs:annotation>
       <xs:documentation>train radio</xs:documentation>
-      <xs:documentation source="http://wiki.railml.org/index.php?title=RS:trainRadio" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/RS:trainRadio</xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="rail:tTrainRadio">
@@ -551,7 +555,7 @@
           <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:documentation source="http://wiki.railml.org/index.php?title=RS:radioSystem" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:radioSystem</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -562,7 +566,7 @@
   <xs:complexType name="eWagon">
     <xs:annotation>
       <xs:documentation>data about the car body of a vehicle and its payload</xs:documentation>
-      <xs:documentation source="http://wiki.railml.org/index.php?title=RS:wagon" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/RS:wagon</xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="rail:tWagon">
@@ -570,43 +574,43 @@
           <xs:element name="passenger" type="rail:ePassenger" minOccurs="0">
             <xs:annotation>
               <xs:documentation>data for passenger cars</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:passenger" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:passenger</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:documentation source="http://wiki.railml.org/index.php?title=RS:goods" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:goods</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:documentation source="http://wiki.railml.org/index.php?title=RS:auxiliarySupplySystem" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:auxiliarySupplySystem</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:documentation source="http://wiki.railml.org/index.php?title=RS:driversCab" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:driversCab</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:documentation source="http://wiki.railml.org/index.php?title=RS:rackTraction_wagon" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:rackTraction_wagon</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:documentation source="http://wiki.railml.org/index.php?title=RS:couplers" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:couplers</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="trainClearanceGauge" type="rail:tClearanceGaugeType" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>data about all compatible clearance gauges of the vehicle</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:trainClearanceGauge" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:trainClearanceGauge</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -621,19 +625,19 @@
           <xs:element name="gangway" type="rail:tGangway" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>description of gangway features between vehicles</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:gangway" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:gangway</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="doors" type="rail:eDoors" minOccurs="0">
             <xs:annotation>
               <xs:documentation>data about door dimensions</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:doors" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:doors</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="tilting" type="rail:tTilting" minOccurs="0">
             <xs:annotation>
               <xs:documentation>data about car body tilting system</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:tilting" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:tilting</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -648,7 +652,7 @@
           <xs:element name="passengerFlowSpeed" type="rail:tPassengerFlowSpeed" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>data about speed of passenger flow</xs:documentation>
-			              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:passengerFlowSpeed" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:passengerFlowSpeed</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -663,7 +667,7 @@
           <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:documentation source="http://wiki.railml.org/index.php?title=RS:service_goods" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:service_goods</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -676,19 +680,19 @@
       <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:documentation source="http://wiki.railml.org/index.php?title=RS:mechanicalCoupler" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:mechanicalCoupler</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:documentation source="http://wiki.railml.org/index.php?title=RS:pneumaticCoupler" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:pneumaticCoupler</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:documentation source="http://wiki.railml.org/index.php?title=RS:electricalCoupler" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:electricalCoupler</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -698,7 +702,7 @@
     <xs:complexContent>
       <xs:extension base="rail:tMechanicalWagonCouplerType">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:mechanicalCoupler" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:mechanicalCoupler</xs:documentation>
         </xs:annotation>
       </xs:extension>
     </xs:complexContent>
@@ -708,7 +712,7 @@
     <xs:complexContent>
       <xs:extension base="rail:tPneumaticWagonCouplerType">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:pneumaticCoupler" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:pneumaticCoupler</xs:documentation>
         </xs:annotation>
       </xs:extension>
     </xs:complexContent>
@@ -718,7 +722,7 @@
     <xs:complexContent>
       <xs:extension base="rail:tElectricalWagonCouplerType">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:electricalCoupler" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:electricalCoupler</xs:documentation>
         </xs:annotation>
       </xs:extension>
     </xs:complexContent>
@@ -727,31 +731,31 @@
   <xs:complexType name="eVehicleBrakes">
     <xs:annotation>
       <xs:documentation>data about brake systems independent from propulsion</xs:documentation>
-      <xs:documentation source="http://wiki.railml.org/index.php?title=RS:vehicleBrakes" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/RS:vehicleBrakes</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:documentation source="http://wiki.railml.org/index.php?title=RS:vehicleBrake" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:vehicleBrake</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="vehicleBrakeOperation" type="rail:tBasicBrakeOperation" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>operational braking rules according to specific supervision regime for single vehicle</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:vehicleBrakeOperation" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:vehicleBrakeOperation</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:documentation source="http://wiki.railml.org/index.php?title=RS:mechanicalBrakeEffort" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:mechanicalBrakeEffort</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:documentation source="http://wiki.railml.org/index.php?title=RS:eddyCurrentBrake" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:eddyCurrentBrake</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -761,7 +765,7 @@
     <xs:complexContent>
       <xs:extension base="rail:tBasicBrakeType">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:vehicleBrake" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:vehicleBrake</xs:documentation>
         </xs:annotation>
         <xs:attributeGroup ref="rail:aVehicleBrake" />
       </xs:extension>
@@ -772,7 +776,7 @@
     <xs:complexContent>
       <xs:extension base="rail:tCurvingLimitationType">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:curvingLimitation" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:curvingLimitation</xs:documentation>
         </xs:annotation>
       </xs:extension>
     </xs:complexContent>
@@ -781,6 +785,9 @@
   <xs:complexType name="eMaintenanceIntervals">
     <xs:sequence>
       <xs:element name="maintenanceInterval" type="rail:tMaintenanceInterval" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:maintenanceInterval</xs:documentation>
+        </xs:annotation>
       </xs:element>
     </xs:sequence>
   </xs:complexType>
@@ -789,13 +796,13 @@
     <xs:complexContent>
       <xs:extension base="rail:tLoadLimitMatrixType">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:loadLimitMatrix" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:loadLimitMatrix</xs:documentation>
         </xs:annotation>
         <xs:sequence>
           <xs:element name="loadLimit" type="rail:eLoadLimit" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>container for possible load limits</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:loadLimit" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:loadLimit</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -807,19 +814,19 @@
     <xs:complexContent>
       <xs:extension base="rail:tLoadLimitType">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:loadLimit" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:loadLimit</xs:documentation>
         </xs:annotation>
         <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:documentation source="http://wiki.railml.org/index.php?title=RS:railNetwork" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:railNetwork</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:documentation source="http://wiki.railml.org/index.php?title=RS:lineClassification" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:lineClassification</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -831,12 +838,12 @@
     <xs:sequence>
       <xs:annotation>
         <xs:documentation>contain formation data</xs:documentation>
-        <xs:documentation source="http://wiki.railml.org/index.php?title=RS:formations" />
+        <xs:documentation>See https://wiki2.railml.org/wiki/RS:formations</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:documentation source="http://wiki.railml.org/index.php?title=RS:formation" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:formation</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -845,7 +852,7 @@
   <xs:complexType name="eFormation">
     <xs:annotation>
       <xs:documentation>data for train composition or vehicle formation</xs:documentation>
-      <xs:documentation source="http://wiki.railml.org/index.php?title=RS:formation" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/RS:formation</xs:documentation>
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="rail:tFormation">
@@ -856,48 +863,49 @@
           <xs:element name="trainOrder" type="rail:eTrainOrder" minOccurs="0">
             <xs:annotation>
               <xs:documentation>car order for a formation</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:trainOrder" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:trainOrder</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:documentation source="http://wiki.railml.org/index.php?title=RS:categoryRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:categoryRef</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:documentation source="http://wiki.railml.org/index.php?title=RS:trainEngine" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:trainEngine</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:documentation source="http://wiki.railml.org/index.php?title=RS:trainBrakes" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:trainBrakes</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="trainBrakeOperation" type="rail:tBasicBrakeOperation" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>operational braking rules according to specific supervision regime for entire formation</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:trainBrakeOperation" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:trainBrakeOperation</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:documentation source="http://wiki.railml.org/index.php?title=RS:trainResistance" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:trainResistance</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="speedProfileRef" type="rail:tSpeedProfileRefRS" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>reference to permissible speed profiles for entire formation</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=RS:speedProfileRefRS" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:speedProfileRef</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="technicalStopActivity" type="rail:tTechnicalStopActivity" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>list of stop activities with their related technical times</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:technicalStopActivity</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -910,7 +918,7 @@
       <xs:element name="vehicleRef" type="rail:tVehicleRef" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>references via ID-attribute to vehicle element</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:vehicleRef" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:vehicleRef</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
diff --git a/schema/rollingstockTypes.xsd b/schema/rollingstockTypes.xsd
index c8d1cf1..57701b7 100644
--- a/schema/rollingstockTypes.xsd
+++ b/schema/rollingstockTypes.xsd
@@ -1,15 +1,11 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2018" 
-           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-           targetNamespace="https://www.railml.org/schemas/2018" 
-           elementFormDefault="qualified" 
-           version="2.4">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2021" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="https://www.railml.org/schemas/2021" elementFormDefault="qualified" version="2.5">
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.</xs:documentation>
     <xs:documentation>This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivs 3.0 Unported License with additional license conditions of railML.org.</xs:documentation>
     <xs:documentation>For further information see: https://www.railml.org/licence</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.4 Definition of attribute groups, simple and complex types, used by rollingstock sub schema (RS)</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.5 Definition of attribute groups, simple and complex types, used by rollingstock sub schema (RS)</xs:documentation>
   </xs:annotation>
 
   <xs:include schemaLocation="railwayUnits.xsd" />
@@ -45,6 +41,14 @@
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="rail:tElementWithIDAndName">
+        <xs:sequence>
+          <xs:element name="states" type="rail:tStates" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Container to define various life cycle status of the vehicle</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:states</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
         <xs:attributeGroup ref="rail:aVehicle" />
       </xs:extension>
     </xs:complexContent>
@@ -205,6 +209,27 @@
     </xs:attribute>
   </xs:attributeGroup>
 
+  <xs:complexType name="tOwnerRS">
+    <xs:annotation>
+      <xs:documentation>container for descriptive data of the vehicle owner</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aOwnerRS" />
+    <xs:attributeGroup ref="rail:aTimePeriod" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aOwnerRS">
+    <xs:attribute name="vehicleOwnerRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>reference to the vehicle owner entry</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="ownerClass" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation>vehicle class description of owner</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>
@@ -1040,6 +1065,9 @@
     </xs:annotation>
     <xs:sequence>
       <xs:element name="decelerationTable" type="rail:tDecelerationCurve" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:decelerationTable</xs:documentation>
+        </xs:annotation>
       </xs:element>
     </xs:sequence>
     <xs:attributeGroup ref="rail:aBasicBrakeOperation" />
@@ -1429,6 +1457,14 @@
     </xs:annotation>
     <xs:complexContent>
       <xs:extension base="rail:tElementWithIDAndName">
+        <xs:sequence>
+          <xs:element name="states" type="rail:tStates" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Container to define various life cycle status of the formation</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:states</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
         <xs:attributeGroup ref="rail:aFormation" />
       </xs:extension>
     </xs:complexContent>
@@ -1470,6 +1506,11 @@
         <xs:documentation>tare 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:attribute name="load" type="rail:tWeightTons">
+      <xs:annotation>
+        <xs:documentation>weight without engine</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
     <xs:attribute name="etcsTrainCategory" type="rail:tEtcsTrainCategory">
       <xs:annotation>
         <xs:documentation>the international train category number as specified on page 38 in ERA_ERTMS_040001 "Assignment of values to ETCS variables" v1.9 from 10/07/12</xs:documentation>
@@ -1542,8 +1583,7 @@
             <xs:documentation>factor for increasing air resistance when running through tunnel</xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attributeGroup ref="rail:aResistanceFormula">
-        </xs:attributeGroup>
+        <xs:attributeGroup ref="rail:aResistanceFormula" />
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -1656,24 +1696,7 @@
       <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:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_phi" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_trainResistance" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_mechanicalLosses" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_tractiveEffort" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_brakeEffort" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_mechanicalBrakeEffort" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_tractiveCurrent" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_brakeCurrent" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_tractiveCurrentLimitation" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_brakeCurrentLimitation" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_tractiveVehicleEfficiency" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_brakeVehicleEfficiency" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_efficiency_energyStorage" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_efficiency_transformer" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_efficiency_fourQuadrantChopper" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_efficiency_tractionInverter" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_efficiency_tractionMotor" />
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueTable_efficiency_gear" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:valueTable</xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:complexContent>
@@ -1681,7 +1704,84 @@
           </xs:complexContent>
         </xs:complexType>
       </xs:element>
+      <xs:element name="segmentTable" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>table of curve segments represented by polynomial function y=sum(a*x^i)</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:segmentTable</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:complexContent>
+            <xs:extension base="rail:tSegmentTable" />
+          </xs:complexContent>
+        </xs:complexType>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="tSegmentTable">
+    <xs:sequence>
+      <xs:element name="columnHeader" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:columnHeader_segmentTable</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:attribute name="exponentValue" type="xs:integer" use="required">
+            <xs:annotation>
+              <xs:documentation>the value used as exponent for the related x-value</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/RS:columnHeader_segmentTable</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="valueLine" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>set of coefficient values related to an x-value (one table line)</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:valueLine_segmentTable</xs:documentation>
+        </xs:annotation>
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="values" maxOccurs="unbounded">
+              <xs:annotation>
+                <xs:documentation>the coefficient values related to an x-value themselves</xs:documentation>
+                <xs:documentation>See https://wiki2.railml.org/wiki/RS:values_valueLine_segmentTable</xs:documentation>
+              </xs:annotation>
+              <xs:complexType>
+                <xs:attribute name="coefficentValue" type="xs:decimal" use="required">
+                  <xs:annotation>
+                    <xs:documentation>value of coefficent for the exponent in this line (row)</xs:documentation>
+                  </xs:annotation>
+                </xs:attribute>
+              </xs:complexType>
+            </xs:element>
           </xs:sequence>
+          <xs:attribute name="segmentStartValue" type="xs:decimal" use="required">
+            <xs:annotation>
+              <xs:documentation>the starting x-value of the segment for abscissa (x-axis)</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+        </xs:complexType>
+      </xs:element>
+    </xs:sequence>
+    <xs:attribute name="segmentStartValueName" 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="segmentStartValueUnit" 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="functionValueName" type="rail:tElementDescription" use="required">
+      <xs:annotation>
+        <xs:documentation>descriptive name for resulting values of ordinate (y-axis)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="functionValueUnit" type="rail:tUnitName" use="required">
+      <xs:annotation>
+        <xs:documentation>physical unit for resulting values of ordinate (y-axis)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:complexType>
 
   <xs:complexType name="tValueTable">
@@ -1692,7 +1792,7 @@
       <xs:element name="columnHeader" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>List of Names to explain meaning of values</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:columnHeader" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:columnHeader_valueTable</xs:documentation>
         </xs:annotation>
         <xs:complexType>
           <xs:attribute name="zValue" type="xs:decimal" use="required">
@@ -1705,14 +1805,14 @@
       <xs:element name="valueLine" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>set of values related to an x-value (one table line)</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=RS:valueLine" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/RS:valueLine_valueTable</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:documentation source="http://wiki.railml.org/index.php?title=RS:values" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/RS:values_valueLine_valueTable</xs:documentation>
               </xs:annotation>
               <xs:complexType>
                 <xs:attribute name="yValue" type="xs:decimal" use="required">
diff --git a/schema/timetable.xsd b/schema/timetable.xsd
index f9aa11c..3ddd30d 100644
--- a/schema/timetable.xsd
+++ b/schema/timetable.xsd
@@ -1,66 +1,87 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2018" 
-           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-           targetNamespace="https://www.railml.org/schemas/2018" 
-           elementFormDefault="qualified" 
-           version="2.4">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2021" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="https://www.railml.org/schemas/2021" elementFormDefault="qualified" version="2.5">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.</xs:documentation>
     <xs:documentation>This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivs 3.0 Unported License with additional license conditions of railML.org.</xs:documentation>
     <xs:documentation>For further information see: https://www.railml.org/licence</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.4 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:documentation>Content of this file: XML Schema for railML(R) 2.5 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:annotation>
-        <xs:documentation source="http://wiki.railml.org/index.php?title=TT:timetable" />
+      <xs:documentation>See https://wiki2.railml.org/wiki/TT:timetable</xs:documentation>
     </xs:annotation>
+    <xs:complexType>
       <xs:complexContent>
         <xs:extension base="rail:tTimetable">
           <xs:sequence>
             <xs:element name="timetablePeriods" type="rail:eTimetablePeriods" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=TT:timetablePeriods" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:timetablePeriods</xs:documentation>
               </xs:annotation>
             </xs:element>
             <xs:element name="operatingPeriods" type="rail:eOperatingPeriods" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=TT:operatingPeriods" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:operatingPeriods</xs:documentation>
+              </xs:annotation>
+            </xs:element>
+            <xs:element name="distributions" type="rail:eDistributions" minOccurs="0">
+              <xs:annotation>
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:distributions</xs:documentation>
               </xs:annotation>
             </xs:element>
             <xs:element name="categories" type="rail:eCategories" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=TT:categories" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:categories</xs:documentation>
               </xs:annotation>
             </xs:element>
             <xs:element name="annotations" type="rail:eAnnotations" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=TT:annotations" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:annotations</xs:documentation>
+              </xs:annotation>
+            </xs:element>
+            <xs:element name="announcements" type="rail:eAnnouncements" minOccurs="0">
+              <xs:annotation>
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:announcements</xs:documentation>
+              </xs:annotation>
+            </xs:element>
+            <xs:element name="linesTT" type="rail:eLines" minOccurs="0">
+              <xs:annotation>
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:linesTT</xs:documentation>
+              </xs:annotation>
+            </xs:element>
+            <xs:element name="patternTrainParts" type="rail:ePatternTrainParts" minOccurs="0">
+              <xs:annotation>
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:patternTrainParts</xs:documentation>
+              </xs:annotation>
+            </xs:element>
+            <xs:element name="patternTrains" type="rail:ePatternTrains" minOccurs="0">
+              <xs:annotation>
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:patternTrains</xs:documentation>
               </xs:annotation>
             </xs:element>
             <xs:element name="trainParts" type="rail:eTrainParts" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=TT:trainParts" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:trainParts</xs:documentation>
               </xs:annotation>
             </xs:element>
             <xs:element name="trains" type="rail:eTrains" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=TT:trains" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:trains</xs:documentation>
               </xs:annotation>
             </xs:element>
             <xs:element name="trainGroups" type="rail:eTrainGroups" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=TT:trainGroups" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:trainGroups</xs:documentation>
               </xs:annotation>
             </xs:element>
             <xs:element name="rosterings" type="rail:eRosterings" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=TT:rosterings" />
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:rosterings</xs:documentation>
               </xs:annotation>
             </xs:element>
           </xs:sequence>
@@ -76,11 +97,33 @@
       <xs:selector xpath=".//rail:operatingPeriods/rail:operatingPeriod" />
       <xs:field xpath="@timetablePeriodRef" />
     </xs:keyref>
+    <xs:keyref name="timetablePeriod-patternTrainPartKeyref" refer="rail:timetablePeriodKey">
+      <xs:selector xpath="rail:patternTrainParts/rail:patternTrainPart" />
+      <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="distributionKey">
+      <xs:selector xpath="rail:distributions/rail:distribution" />
+      <xs:field xpath="@id" />
+    </xs:key>
+    <xs:keyref name="distribution-patternTrainKeyref" refer="rail:distributionKey">
+      <xs:selector xpath="rail:patternTrains/rail:patternTrain" />
+      <xs:field xpath="@distributionRef" />
+    </xs:keyref>
+
+    <xs:key name="patternTrainPartKey">
+      <xs:selector xpath="rail:patternTrainParts/rail:patternTrainPart" />
+      <xs:field xpath="@id" />
+    </xs:key>
+    <xs:keyref name="patternTrainPart-trainPartSequenceKeyref" refer="rail:patternTrainPartKey">
+      <xs:selector xpath="rail:patternTrains/rail:patternTrain/rail:trainPartSequence/rail:patternTrainPartRef" />
+      <xs:field xpath="@ref" />
+    </xs:keyref>
+
     <xs:key name="trainPartKey">
       <xs:selector xpath=".//rail:trainParts/rail:trainPart" />
       <xs:field xpath="@id" />
@@ -98,6 +141,15 @@
       <xs:field xpath="@trainPartRef" />
     </xs:keyref>
 
+    <xs:key name="patternTrainKey">
+      <xs:selector xpath="rail:patternTrains/rail:patternTrain" />
+      <xs:field xpath="@id" />
+    </xs:key>
+    <xs:keyref name="patternTrain-trainGroupKeyref" refer="rail:patternTrainKey">
+      <xs:selector xpath="rail:trainGroups/rail:trainGroup" />
+      <xs:field xpath="@patternTrainRef" />
+    </xs:keyref>
+
     <xs:key name="trainKey">
       <xs:selector xpath=".//rail:trains/rail:train" />
       <xs:field xpath="@id" />
@@ -111,6 +163,15 @@
       <xs:field xpath="@trainRef" />
     </xs:keyref>
 
+    <xs:key name="trainGroupKey">
+      <xs:selector xpath=".//rail:trainGroups/rail:trainGroup" />
+      <xs:field xpath="@id" />
+    </xs:key>
+    <xs:keyref name="trainGroup-trainGroupParentKeyRef" refer="rail:trainGroupKey">
+      <xs:selector xpath=".//rail:trainGroups/rail:trainGroup" />
+      <xs:field xpath="@parentRef" />
+    </xs:keyref>
+
     <xs:key name="blockPartKey">
       <xs:selector xpath=".//rail:blockParts/rail:blockPart" />
       <xs:field xpath="@id" />
@@ -157,13 +218,50 @@
       <xs:field xpath="@ref" />
     </xs:keyref>
 
+    <!-- announcement identity in timetable subschema -->
+    <xs:key name="announcementKey">
+      <xs:selector xpath=".//rail:announcements/rail:announcement" />
+      <xs:field xpath="@id" />
+    </xs:key>
+
+    <!-- annotation reference in timetable subschema -->
+    <xs:keyref name="announcement-trainPartKeyref" refer="rail:announcementKey">
+      <xs:selector xpath=".//rail:trainParts/rail:trainPart/rail:announcementRef" />
+      <xs:field xpath="@ref" />
+    </xs:keyref>
+    <xs:keyref name="announcement-stopDescriptionKeyref" refer="rail:announcementKey">
+      <xs:selector xpath=".//rail:ocpsTT/rail:ocpTT/rail:stopDescription/rail:announcementRef" />
+      <xs:field xpath="@ref" />
+    </xs:keyref>
+    <xs:keyref name="line-annotationKeyref" refer="rail:annotationKey">
+      <xs:selector xpath=".//rail:linesTT/rail:lineTT/rail:annotationRef" />
+      <xs:field xpath="@ref" />
+    </xs:keyref>
+    <xs:keyref name="line-announcementKeyref" refer="rail:announcementKey">
+      <xs:selector xpath=".//rail:linesTT/rail:lineTT/rail:announcementRef" />
+      <xs:field xpath="@ref" />
+    </xs:keyref>
+    <xs:key name="lineTTKey">
+      <xs:selector xpath=".//rail:linesTT/rail:lineTT" />
+      <xs:field xpath="@id" />
+    </xs:key>
+    <xs:keyref name="trainPart-lineKeyref" refer="rail:lineTTKey">
+      <xs:selector xpath=".//rail:trainParts/rail:trainPart" />
+      <xs:field xpath="@lineTTRef" />
+    </xs:keyref>
+    <xs:keyref name="announcement-connectionKeyref" refer="rail:announcementKey">
+      <xs:selector xpath=".//rail:ocpsTT/rail:ocpTT/rail:connections/rail:connection/rail:announcementRef" />
+      <xs:field xpath="@ref" />
+    </xs:keyref>
+
+
   </xs:element>
 
   <xs:complexType name="eOperatingPeriods">
     <xs:sequence>
       <xs:element name="operatingPeriod" type="rail:eOperatingPeriod" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:operatingPeriod" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:operatingPeriod</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -175,12 +273,12 @@
         <xs:sequence>
           <xs:element name="operatingDay" type="rail:eOperatingDay" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:operatingDay" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:operatingDay</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="specialService" type="rail:tSpecialService" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:specialService_operatingPeriod" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:specialService_operatingPeriod</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -194,7 +292,7 @@
         <xs:sequence>
           <xs:element name="operatingDayDeviance" type="rail:tOperatingDayDeviance" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:operatingDayDeviance" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:operatingDayDeviance</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -206,7 +304,7 @@
     <xs:sequence>
       <xs:element name="timetablePeriod" type="rail:eTimetablePeriod" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:timetablePeriod" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:timetablePeriod</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -218,7 +316,7 @@
         <xs:sequence>
           <xs:element name="holidays" type="rail:eHolidays" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:holidays" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:holidays</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -230,10 +328,80 @@
     <xs:sequence>
       <xs:element name="holiday" type="rail:tHoliday" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:holiday" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:holiday</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eDistributions">
+    <xs:annotation>
+      <xs:documentation>Container for one or more distribution elements</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="distribution" type="rail:eDistribution" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>Lists how trains are distributed in time</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:distribution</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eDistribution">
+    <xs:annotation>
+      <xs:documentation>Allows listing the number of trains in different time slots, without exact times for the trains.</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:sequence>
+          <xs:element name="referenceOcp" type="rail:tReferenceOcp" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>Specifies the OCP for which the times slots are valid.</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:referenceOcp</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="slotGroup" type="rail:eSlotGroup" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>One or more slot groups, each containing one or more time slots that belong to a common interval pattern .</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:slotGroup</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eSlotGroup">
+    <xs:annotation>
+      <xs:documentation>A group of one or more time slots in a distribution that belong to a common interval pattern.</xs:documentation>
+    </xs:annotation>
+    <xs:sequence>
+      <xs:element name="slot" type="rail:eSlot" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>A time slot belonging to this slot group.</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:slot</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eSlot">
+    <xs:annotation>
+      <xs:documentation>A time slot with a number of trains, as part of a distribution.</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tSlot">
+        <xs:sequence>
+          <xs:element name="operatingDay" type="rail:eOperatingDay" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>Provides the (starting) day of the slot.</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:operatingDay</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
   </xs:complexType>
 
   <xs:complexType name="eFormationTT">
@@ -242,17 +410,17 @@
         <xs:sequence>
           <xs:element name="equipmentUsage" type="rail:eEquipmentUsage" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:equipmentUsage_formationTT" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:equipmentUsage_formationTT</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="passengerUsage" type="rail:ePassengerFacilityTT" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:passengerUsage" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:passengerUsage</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="reservationInfo" type="rail:eReservationInfo" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:reservationInfo" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:reservationInfo</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -264,7 +432,7 @@
     <xs:sequence>
       <xs:element name="equipment" type="rail:eEquipment" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:equipment" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:equipment</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -276,7 +444,7 @@
         <xs:sequence>
           <xs:element name="etcs" type="rail:tEtcsTT" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:etcs" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:etcs</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -294,13 +462,13 @@
       <xs:element name="places" type="rail:tPlacesTT" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation>list of place capacity of the vehicle divided by particular categories</xs:documentation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:places" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:places</xs:documentation>
         </xs:annotation>
       </xs:element>
       <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:documentation source="http://wiki.railml.org/index.php?title=TT:service" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:service</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -310,7 +478,7 @@
     <xs:sequence>
       <xs:element name="booking" type="rail:tBooking" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:booking" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:booking</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -320,7 +488,7 @@
     <xs:sequence>
       <xs:element name="category" type="rail:eCategory" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:category" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:category</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -332,24 +500,135 @@
     </xs:complexContent>
   </xs:complexType>
 
+  <xs:complexType name="eLines">
+    <xs:sequence>
+      <xs:element name="lineTT" type="rail:eLineTT" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:lineTT</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eAnnouncements">
+    <xs:sequence>
+      <xs:element name="announcement" type="rail:eAnnouncement" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:announcement</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
   <xs:complexType name="eAnnotations">
     <xs:sequence>
       <xs:element name="annotation" type="rail:eAnnotation" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:annotation" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:annotation</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eLineTT">
+    <xs:complexContent>
+      <xs:extension base="rail:tLineTT">
+        <xs:sequence>
+          <xs:element name="mediaResources" type="rail:tMediaResources" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:mediaResources</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="eAnnouncement">
+    <xs:complexContent>
+      <xs:extension base="rail:tAnnouncement">
+        <xs:sequence>
+          <xs:element name="mediaCategories" type="rail:tMediaCategories" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>allows specification of one or more media categories for this announcement (e.g. Cancellation message, Delay reason, Formation change)</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:mediaCategories</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
   </xs:complexType>
 
   <xs:complexType name="eAnnotation">
     <xs:complexContent>
       <xs:extension base="rail:tAnnotation">
         <xs:sequence>
-          <xs:element name="text" type="rail:tAnnotationText" maxOccurs="unbounded">
+          <xs:element name="mediaCategories" type="rail:tMediaCategories" minOccurs="0">
             <xs:annotation>
-              <xs:documentation>could be the instructions to drivers, used by an AVL (de:RBL) system, or the message on printouts</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:text_annotation" />
+              <xs:documentation>allows specification of one or more media categories for this annotation (e.g. Cancellation message, Delay reason, Formation change)</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:mediaCategories</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="text" type="rail:tInfoText" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>could be the instructions to drivers, used by an AVL (de:RBL) system, or the message on printouts, or passenger information texts, symbols and images</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:text</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tMediaCategories">
+    <xs:sequence>
+      <xs:element name="mediaCategory" type="rail:tAdditionalName" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:text</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  
+  <xs:complexType name="ePatternTrainParts">
+    <xs:sequence>
+      <xs:element name="patternTrainPart" type="rail:ePatternTrainPart" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:patternTrainPart</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ePatternTrainPart">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseTrainPart">
+        <xs:sequence>
+          <xs:element name="formationTT" type="rail:tBaseFormationTT" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:formationTT_patternTrainPart</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="ocpsTT" type="rail:ePatternTrainOcps">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:ocpsTT_patternTrainPart</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="organizationalUnitBinding" type="rail:eOrganizationalUnitBinding" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:organizationalUnitBinding</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="origin" type="rail:tOriginDestinationInfo" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>allows for specifying information about the origin of the train if it cannot be derived from its path (trains entering the operated area)</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:origin_patternTrainPart</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="destination" type="rail:tOriginDestinationInfo" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>allows for specifying information about the destination of the train if it cannot be derived from its path (trains leaving the operated area)</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:destination_patternTrainPart</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -361,7 +640,7 @@
     <xs:sequence>
       <xs:element name="trainPart" type="rail:eTrainPart" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:trainPart" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:trainPart</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -373,33 +652,51 @@
         <xs:sequence>
           <xs:element name="formationTT" type="rail:eFormationTT" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:formationTT" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:formationTT_trainPart</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="operatingPeriodRef" type="rail:eOperatingPeriodRef" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:operatingPeriodRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:operatingPeriodRef</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="ocpsTT" type="rail:eOcpsTT">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:ocpsTT" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:ocpsTT_trainPart</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="organizationalUnitBinding" type="rail:eOrganizationalUnitBinding" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:organizationalUnitBinding" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:organizationalUnitBinding</xs:documentation>
             </xs:annotation>
           </xs:element>
-          <xs:element minOccurs="0" maxOccurs="unbounded" name="annotationRef" type="rail:tAnnotationRef">
+          <xs:element name="annotationRef" type="rail:tAnnotationRef" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>refers to the id attribute of an annotation element</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:annotationRef_trainPart" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:annotationRef_trainPart</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="announcementRef" type="rail:tAnnouncementRef" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>refers to the id attribute of an announcement element</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:announcementRef_trainPart</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="origin" type="rail:eOriginDestinationInfo" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>allows for specifying information about the origin of the train if it cannot be derived from its path (trains entering the operated area)</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:origin_trainPart</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="destination" type="rail:eOriginDestinationInfo" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>allows for specifying information about the destination of the train if it cannot be derived from its path (trains leaving the operated area)</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:destination_trainPart</xs:documentation>
             </xs:annotation>
           </xs:element>
           <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:documentation>This element has been deprecated, and is only kept for backward compatibility. Please use the first any-element in the the sequence instead.</xs:documentation>
             </xs:annotation>
           </xs:any>
         </xs:sequence>
@@ -414,9 +713,49 @@
           <xs:element name="specialService" type="rail:tSpecialService" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>DEPRECATED: use reference to individual operating period instead.</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:specialService_operatingPeriodRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:specialService_operatingPeriodRef</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ePatternTrainOcps">
+    <xs:sequence>
+      <xs:element name="ocpTT" type="rail:ePatternTrainOcp" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:ocpTT_ocpsTT_patternTrainPart</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ePatternTrainOcp">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseOcpTT">
+        <xs:sequence>
+          <xs:element name="times" type="rail:ePatternTrainArrivalDepartureTimes" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:times_ocpTT_ocpsTT_patternTrainPart</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="sectionTT" type="rail:eSectionTT" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:sectionTT</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="alternativeSectionsTT" type="rail:eAlternativeSectionsTT" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:alternativeSectionsTT</xs:documentation>
             </xs:annotation>
           </xs:element>
+          <xs:element name="stopDescription" type="rail:ePatternTrainStopDescription" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:stopDescription_ocpTT_ocpsTT_patternTrainPart</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -426,7 +765,7 @@
     <xs:sequence>
       <xs:element name="ocpTT" type="rail:eOcpTT" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:ocpTT" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:ocpTT_ocpsTT_trainPart</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -438,27 +777,37 @@
         <xs:sequence>
           <xs:element name="times" type="rail:eArrivalDepartureTimes" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:times" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:times_ocpTT_ocpsTT_trainPart</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="connections" type="rail:eConnectionsTT" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:connections" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:connections</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="statistics" type="rail:eStatistics" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:statistics" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:statistics</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="sectionTT" type="rail:eSectionTT" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:sectionTT" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:sectionTT</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="alternativeSectionsTT" type="rail:eAlternativeSectionsTT" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:alternativeSectionsTT</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="stopDescription" type="rail:eStopDescription" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:stopDescription" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:stopDescription_ocpTT_ocpsTT_trainPart</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="originalTrackInfo" type="rail:eOriginalTrackInfo" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:originalTrackInfo</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
@@ -467,6 +816,27 @@
     </xs:complexContent>
   </xs:complexType>
 
+  <xs:complexType name="eOriginalTrackInfo">
+    <xs:complexContent>
+      <xs:extension base="rail:tOriginalTrackInfo">
+        <xs:sequence>
+          <xs:element name="trackInfo" type="rail:tStationTrackInfo" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>allows the definition of operating day specific information for station tracks</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:trackInfo_originalTrackInfo</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ePatternTrainArrivalDepartureTimes">
+    <xs:complexContent>
+      <xs:extension base="rail:tPatternTrainArrivalDepartureTimes" />
+    </xs:complexContent>
+  </xs:complexType>
+
   <xs:complexType name="eArrivalDepartureTimes">
     <xs:complexContent>
       <xs:extension base="rail:tArrivalDepartureTimes" />
@@ -477,7 +847,7 @@
     <xs:sequence>
       <xs:element name="connection" type="rail:eConnectionTT" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:connection" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:connection</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -487,11 +857,21 @@
     <xs:complexContent>
       <xs:extension base="rail:tConnectionTT">
         <xs:sequence>
-          <xs:element name="externalReference" type="rail:eExternalReference" minOccurs="0"/>
+          <xs:element name="externalReference" type="rail:eExternalReference" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:externalReference</xs:documentation>
+            </xs:annotation>
+          </xs:element>
           <xs:element name="annotationRef" type="rail:tAnnotationRef" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>refers to the id attribute of an annotation element</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:annotationRef_connection" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:annotationRef_connection</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="announcementRef" type="rail:tAnnouncementRef" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>refers to the id attribute of an announcement element</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:announcementRef_connection</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -501,13 +881,20 @@
 
   <xs:complexType name="eExternalReference">
     <xs:sequence>
-      <xs:element name="tafTapTsiTrainID" type="rail:eTapTsiTransportOperationalIdentifier" minOccurs="0" />
+      <xs:element name="tafTapTsiTrainID" type="rail:eTapTsiTransportOperationalIdentifier" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:tafTapTsiTrainID_externalReference</xs:documentation>
+        </xs:annotation>
+      </xs:element>
       <xs:element name="trainNumber" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:trainNumber</xs:documentation>
+        </xs:annotation>
         <xs:complexType>
           <xs:sequence>
             <xs:element name="organizationalUnitBinding" type="rail:eOrganizationalUnitBinding" minOccurs="0">
               <xs:annotation>
-                <xs:documentation source="http://wiki.railml.org/index.php?title=TT:organizationalUnitBinding"/>
+                <xs:documentation>See https://wiki2.railml.org/wiki/TT:organizationalUnitBinding</xs:documentation>
               </xs:annotation>
             </xs:element>
           </xs:sequence>
@@ -515,11 +902,17 @@
         </xs:complexType>
       </xs:element>
       <xs:element name="lineNumber" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:lineNumber</xs:documentation>
+        </xs:annotation>
         <xs:complexType>
           <xs:attribute name="lineNumber" type="xs:string" />
         </xs:complexType>
       </xs:element>
       <xs:element name="information" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:information</xs:documentation>
+        </xs:annotation>
         <xs:complexType>
           <xs:attribute name="description" type="xs:string">
             <xs:annotation>
@@ -535,7 +928,7 @@
     <xs:sequence>
       <xs:element name="statistic" type="rail:eStatistic" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:statistic" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:statistic</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -547,22 +940,22 @@
         <xs:sequence>
           <xs:element name="mean" type="rail:tStatisticTimes" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:mean" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:mean</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="median" type="rail:tStatisticTimes" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:median" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:median</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="standardDeviation" type="rail:tStandardDeviationTimes" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:standardDeviation" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:standardDeviation</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="statisticAnalyses" type="rail:tStatisticAnalyses" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:statisticAnalyses" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:statisticAnalyses</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -570,18 +963,66 @@
     </xs:complexContent>
   </xs:complexType>
 
+  <xs:complexType name="eAlternativeSectionsTT">
+    <xs:sequence>
+      <xs:element name="alternativeSectionTT" type="rail:eAlternativeSectionTT" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:alternativeSectionTT</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="eAlternativeSectionTT">
+    <xs:complexContent>
+      <xs:extension base="rail:eSectionTT">
+        <xs:attribute name="priority" type="xs:integer">
+          <xs:annotation>
+            <xs:documentation>Specifies an order of multiple alternative sections. A higher priority means that the alternative section is considered later.</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
+      </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 name="trackRef" type="rail:tTrackRef" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:trackRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:trackRef</xs:documentation>
             </xs:annotation>
           </xs:element>
-          <xs:element minOccurs="0" name="runTimes" type="rail:tRunTimes">
+          <xs:element name="runTimes" type="rail:tRunTimes" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:runTimes" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:runTimes</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ePatternTrainStopDescription">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseStopDescription">
+        <xs:sequence>
+          <xs:element name="stopTimes" type="rail:tStopTimes" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:stopTimes</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="platformEdgeRef" type="rail:tPlatformEdgeRef" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>refers to the id attribute of the associated platform edge element, redundant if stopPostRef is given</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:platformEdgeRef</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="trackInfo" type="rail:tBaseTrackInfo" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>allows definition alternative station tracks</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:trackInfo_stopDescription_ocpTT_ocpsTT_patternTrainPart</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -593,39 +1034,45 @@
     <xs:complexContent>
       <xs:extension base="rail:tStopDescription">
         <xs:sequence>
-          <xs:element minOccurs="0" name="stopTimes" type="rail:tStopTimes">
+          <xs:element name="stopTimes" type="rail:tStopTimes" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:stopTimes" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:stopTimes</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="stopActivities" type="rail:eStopActivities" minOccurs="0">
             <xs:annotation>
               <xs:documentation>Activities carried out at stop</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:stopActivities"/>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:stopActivities</xs:documentation>
             </xs:annotation>
           </xs:element>
-          <xs:element minOccurs="0" maxOccurs="unbounded" name="platformEdgeRef" type="rail:tPlatformEdgeRef">
+          <xs:element name="platformEdgeRef" type="rail:tPlatformEdgeRef" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>refers to the id attribute of the associated platform edge element, redundant if stopPostRef is given</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:platformEdgeRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:platformEdgeRef</xs:documentation>
             </xs:annotation>
           </xs:element>
-          <xs:element minOccurs="0" maxOccurs="unbounded" name="serviceSectionRef" type="rail:tServiceSectionRef">
+          <xs:element name="serviceSectionRef" type="rail:tServiceSectionRef" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>refers to the id attribute of the associated service section element</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:serviceSectionRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:serviceSectionRef</xs:documentation>
             </xs:annotation>
           </xs:element>
-          <xs:element minOccurs="0" maxOccurs="unbounded" name="trackInfo" type="rail:tStationTrackInfo">
+          <xs:element name="trackInfo" type="rail:tStationTrackInfo" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation>allows definition operating day specific information for station tracks</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:trackInfo" />
+              <xs:documentation>allows the definition of operating day specific information for station tracks</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:trackInfo_stopDescription_ocpTT_ocpsTT_trainPart</xs:documentation>
             </xs:annotation>
           </xs:element>
-          <xs:element minOccurs="0" maxOccurs="unbounded" name="annotationRef" type="rail:tAnnotationRef">
+          <xs:element name="annotationRef" type="rail:tAnnotationRef" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>refers to the id attribute of an annotation element</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:annotationRef_stopDescription" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:annotationRef_stopDescription</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="announcementRef" type="rail:tAnnouncementRef" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>refers to the id attribute of an announcement element</xs:documentation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:announcementRef_stopDescription</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -637,7 +1084,7 @@
     <xs:sequence>
       <xs:element name="stopActivity" type="rail:tStopActivity" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:stopActivity"/>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:stopActivity</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -647,43 +1094,81 @@
     <xs:sequence>
       <xs:element name="vehicleOperator" type="rail:tElementWithReference" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:vehicleOperator" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:vehicleOperator</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="customer" type="rail:tElementWithReference" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:customer" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:customer</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="railwayUndertaking" type="rail:tElementWithReference" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:railwayUndertaking" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:railwayUndertaking</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="operationalUndertaking" type="rail:tElementWithReference" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:operationalUndertaking" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:operationalUndertaking</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="concessionaire" type="rail:tElementWithReference" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:concessionaire" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:concessionaire</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:element name="contractor" type="rail:tElementWithReference" minOccurs="0">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:contractor" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:contractor</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
     </xs:sequence>
   </xs:complexType>
 
+  <xs:complexType name="eOriginDestinationInfo">
+    <xs:complexContent>
+      <xs:extension base="rail:tOriginDestinationInfo">
+        <xs:sequence>
+          <xs:element name="mediaResources" type="rail:tMediaResources" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:mediaResources</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ePatternTrains">
+    <xs:sequence>
+      <xs:element name="patternTrain" type="rail:ePatternTrain" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:patternTrain</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="ePatternTrain">
+    <xs:complexContent>
+      <xs:extension base="rail:tPatternTrain">
+        <xs:sequence>
+          <xs:element name="trainPartSequence" type="rail:ePatternTrainPartSequence" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:trainPartSequence_patternTrain</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
   <xs:complexType name="eTrains">
     <xs:sequence>
       <xs:element name="train" type="rail:eTrain" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:train" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:train</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -695,16 +1180,20 @@
         <xs:sequence>
           <xs:element name="trainPartSequence" type="rail:eTrainPartSequence" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:trainPartSequence" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:trainPartSequence_train</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="tafTapTsiTrainID" type="rail:eTapTsiTransportOperationalIdentifier" minOccurs="0">
             <xs:annotation>
               <xs:documentation>Optional information corresponding to the TAF/TAP TSI train ID.</xs:documentation>
-              <xs:documentation source="https://wiki.railml.org/index.php?title=TT:tafTapTsiTrainID" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:tafTapTsiTrainID</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="replacements" type="rail:eReplacedTrains" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:replacements</xs:documentation>
             </xs:annotation>
           </xs:element>
-		  <xs:element name="replacements" type="rail:eReplacedTrains" minOccurs="0"/>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -712,16 +1201,32 @@
 
   <xs:complexType name="eReplacedTrains">
     <xs:sequence>
-      <xs:element name="replacementOf" type="rail:eReplacementOf" minOccurs="0" maxOccurs="unbounded"/>
+      <xs:element name="replacementOf" type="rail:eReplacementOf" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:replacementOf</xs:documentation>
+        </xs:annotation>
+      </xs:element>
     </xs:sequence>
   </xs:complexType>
 
   <xs:complexType name="eReplacementOf">
     <xs:sequence>
-	  <xs:element name="operatingPeriodRef" type="rail:tOperatingPeriodRef" />
+      <xs:element name="operatingPeriodRef" type="rail:tOperatingPeriodRef">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:operatingPeriodRef_replacementOf</xs:documentation>
+        </xs:annotation>
+      </xs:element>
       <xs:choice>
-        <xs:element name="tafTapTsiTrainID" type="rail:eTapTsiTransportOperationalIdentifier" />
-        <xs:element name="uniqueTrainKey" type="rail:tUniqueTrainKey" />
+        <xs:element name="tafTapTsiTrainID" type="rail:eTapTsiTransportOperationalIdentifier">
+          <xs:annotation>
+            <xs:documentation>See https://wiki2.railml.org/wiki/TT:tafTapTsiTrainID_replacementOf</xs:documentation>
+          </xs:annotation>
+        </xs:element>
+        <xs:element name="uniqueTrainKey" type="rail:tUniqueTrainKey">
+          <xs:annotation>
+            <xs:documentation>See https://wiki2.railml.org/wiki/TT:uniqueTrainKey</xs:documentation>
+          </xs:annotation>
+        </xs:element>
       </xs:choice>
     </xs:sequence>
   </xs:complexType>
@@ -732,28 +1237,47 @@
         <xs:sequence>
           <xs:element name="trainPartRef" type="rail:tTrainPartRef" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:trainPartRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:trainPartRef</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="speedProfileRef" type="rail:tSpeedProfileRef" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>a reference to a speed profile; there could be several speed profiles to be considered</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:speedProfileRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:speedProfileRef</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="equipmentUsage" type="rail:eEquipmentUsage" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:equipmentUsage_trainPartSequence" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:equipmentUsage_trainPartSequence</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="brakeUsage" type="rail:eBrakeUsage" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:brakeUsage" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:brakeUsage</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="topologyReference" type="rail:tTopologyReference" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:topologyReference"/>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:topologyReference</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="ePatternTrainPartSequence">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseTrainPartSequence">
+        <xs:sequence>
+          <xs:element name="patternTrainPartRef" type="rail:tTrainPartRef" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:patternTrainPartRef</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="topologyReference" type="rail:tTopologyReference" minOccurs="0" maxOccurs="unbounded">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:topologyReference</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -780,7 +1304,7 @@
     <xs:sequence>
       <xs:element name="trainGroup" type="rail:eTrainGroup" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:trainGroup" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:trainGroup</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -790,13 +1314,18 @@
     <xs:complexContent>
       <xs:extension base="rail:tTrainGroup">
         <xs:sequence>
-          <xs:element name="trainRef" type="rail:tElementRefInGroup" maxOccurs="unbounded">
+          <xs:element name="trainRef" type="rail:tElementRefInGroup" minOccurs="0" maxOccurs="unbounded">
             <xs:annotation>
               <xs:documentation>reference to the trains included in a trainGroup; the group members could be ordered by a sequence attribute</xs:documentation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:trainRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:trainRef</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
+        <xs:attribute name="parentRef" type="rail:tGenericRef">
+          <xs:annotation>
+            <xs:documentation>Reference to a parent trainGroup, i.e. a group with sub-groups</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -805,7 +1334,7 @@
     <xs:sequence>
       <xs:element name="rostering" type="rail:eRostering" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:rostering" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:rostering</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -817,17 +1346,17 @@
         <xs:sequence>
           <xs:element name="blockParts" type="rail:eBlockParts">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:blockParts" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:blockParts</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="blocks" type="rail:eBlocks" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:blocks" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:blocks</xs:documentation>
             </xs:annotation>
           </xs:element>
           <xs:element name="circulations" type="rail:eCirculations" minOccurs="0">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:circulations" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:circulations</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -839,7 +1368,7 @@
     <xs:sequence>
       <xs:element name="block" type="rail:eBlock" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:block" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:block</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
@@ -851,7 +1380,7 @@
         <xs:sequence>
           <xs:element name="blockPartSequence" type="rail:eBlockPartSequence" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:blockPartSequence" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:blockPartSequence</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -865,7 +1394,7 @@
         <xs:sequence>
           <xs:element name="blockPartRef" type="rail:tBlockPartRef" maxOccurs="unbounded">
             <xs:annotation>
-              <xs:documentation source="http://wiki.railml.org/index.php?title=TT:blockPartRef" />
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:blockPartRef</xs:documentation>
             </xs:annotation>
           </xs:element>
         </xs:sequence>
@@ -877,7 +1406,7 @@
     <xs:sequence>
       <xs:element name="blockPart" type="rail:tBlockPart" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:blockPart" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:blockPart</xs:documentation>
         </xs:annotation>
       </xs:element>
       <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
@@ -892,7 +1421,7 @@
     <xs:sequence>
       <xs:element name="circulation" type="rail:tCirculation" maxOccurs="unbounded">
         <xs:annotation>
-          <xs:documentation source="http://wiki.railml.org/index.php?title=TT:circulation" />
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:circulation</xs:documentation>
         </xs:annotation>
       </xs:element>
     </xs:sequence>
diff --git a/schema/timetableTypes.xsd b/schema/timetableTypes.xsd
index 46508f1..ce50ed4 100644
--- a/schema/timetableTypes.xsd
+++ b/schema/timetableTypes.xsd
@@ -1,21 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2018" 
-           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
-           xmlns:xml="http://www.w3.org/XML/1998/namespace" 
-           targetNamespace="https://www.railml.org/schemas/2018" 
-           elementFormDefault="qualified" 
-           version="2.4">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2021" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="https://www.railml.org/schemas/2021" elementFormDefault="qualified" version="2.5">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.</xs:documentation>
     <xs:documentation>This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivs 3.0 Unported License with additional license conditions of railML.org.</xs:documentation>
     <xs:documentation>For further information see: https://www.railml.org/licence</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.4 Definition of attribute groups, simple and complex types, used by timetable sub schema (TT)</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.5 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:include schemaLocation="infrastructureTypes.xsd" />
 
   <xs:import namespace="http://www.w3.org/XML/1998/namespace" schemaLocation="http://www.w3.org/2001/03/xml.xsd" />
 
@@ -49,7 +45,7 @@
     <xs:attributeGroup ref="rail:aTimePeriod" />
     <xs:attribute name="bitMask" type="rail:tBitMask">
       <xs:annotation>
-        <xs:documentation>a sequence of 1 and 0 for every day of the timetable period, indicating that the train runs or runs not on this specific date</xs:documentation>
+        <xs:documentation>a sequence of 1 and 0 for every day of the timetable period, indicating that the train does or does not run on this specific date</xs:documentation>
       </xs:annotation>
     </xs:attribute>
   </xs:attributeGroup>
@@ -96,7 +92,7 @@
     <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:documentation>Deprecated. Use //trainPart/onRequest instead."</xs:documentation>
       </xs:annotation>
     </xs:attribute>
   </xs:attributeGroup>
@@ -135,7 +131,7 @@
     <xs:attributeGroup ref="rail:aPeriodTimeSpan" />
   </xs:attributeGroup>
 
-  <xs:complexType name="tFormationTT">
+  <xs:complexType name="tReferenceOcp">
     <xs:sequence>
       <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
@@ -143,16 +139,87 @@
         </xs:annotation>
       </xs:any>
     </xs:sequence>
-    <xs:attributeGroup ref="rail:aFormationTT" />
+    <xs:attributeGroup ref="rail:aReferenceOcp" />
     <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
-  <xs:attributeGroup name="aFormationTT">
+  <xs:attributeGroup name="aReferenceOcp">
+    <xs:attribute name="event" type="rail:tSimpleOcpEvent">
+      <xs:annotation>
+        <xs:documentation>Specifies whether to use arrival or departure times.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="ocpRef" type="rail:tGenericRef" use="required">
+      <xs:annotation>
+        <xs:documentation>Reference to an OCP in the infrastructure.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tSlot">
+    <xs:sequence>
+      <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:attributeGroup ref="rail:aSlot" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aSlot">
+    <xs:attribute name="startTime" type="xs:time">
+      <xs:annotation>
+        <xs:documentation>Time of day for the start of the slot. Skip if generally referring to all intervals with a length equal to @duration, such as every week, day or hour.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="duration" type="xs:duration" use="required">
+      <xs:annotation>
+        <xs:documentation>Duration of the time slot. Can exceed one day.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="numberOfTrains" type="rail:tCounter" use="required">
+      <xs:annotation>
+        <xs:documentation>Number of trains in the slot, including @startTime and excluding @startTime + @duration. So if @startTime is "04:30:00" and @duration is "PT2H" and there are trains at 04:30, 05:30 and 06:30, @numberOfTrains will be 2, not 3.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="interval" type="rail:tDurationList">
+      <xs:annotation>
+        <xs:documentation>Interval between instances of this train, as a space-separated list of XML durations.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tBaseFormationTT">
+    <xs:sequence>
+      <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:attributeGroup ref="rail:aBaseFormationTT" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:complexType>
+
+  <xs:complexType name="tFormationTT">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseFormationTT">
+        <xs:attributeGroup ref="rail:aFormationTT" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aBaseFormationTT">
     <xs:attribute name="formationRef" type="rail:tGenericRef">
       <xs:annotation>
         <xs:documentation>refers to the id attribute of the associated formation element</xs:documentation>
       </xs:annotation>
     </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="aFormationTT">
     <xs:attribute name="weight" type="rail:tWeightTons">
       <xs:annotation>
         <xs:documentation>real weight of the formation while in use</xs:documentation>
@@ -192,7 +259,7 @@
     <xs:attributeGroup ref="rail:aPlaces" />
     <xs:attribute name="reservation" type="rail:tPlaceReservation">
       <xs:annotation>
-        <xs:documentation>is needed to define a mandatory reservation for "places" in general and for bicycles in special</xs:documentation>
+        <xs:documentation>Specifies the applicability of seat or place reservations.</xs:documentation>
       </xs:annotation>
     </xs:attribute>
     <xs:attributeGroup ref="rail:anyAttribute" />
@@ -231,16 +298,6 @@
         <xs:documentation>DEPRECATED: so far used uncertain value, specific values should now be used instead"</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <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>
 
@@ -271,6 +328,8 @@
     <xs:attribute name="trainUsage" type="rail:tUsageType" />
     <xs:attribute name="deadrun" type="xs:boolean" />
     <xs:attribute name="categoryPriority" type="xs:string" />
+    <xs:attribute name="parentRef" type="rail:tGenericRef" />
+    <xs:attribute name="organizationalUnitRef" type="rail:tGenericRef" />
   </xs:attributeGroup>
 
   <xs:complexType name="tAnnotation">
@@ -281,22 +340,76 @@
     </xs:complexContent>
   </xs:complexType>
 
-  <xs:attributeGroup name="aAnnotation" />
+  <xs:complexType name="tLineTT">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName" />
+    </xs:complexContent>
+  </xs:complexType>
 
-  <xs:complexType name="tTrainPart">
+  <xs:complexType name="tAnnouncement">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName" />
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aAnnotation">
+    <xs:attribute name="type" type="rail:tAnnotationType" default="text">
+      <xs:annotation>
+        <xs:documentation>allows to describe what kind of annotation follows</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tBaseTrainPart">
     <xs:complexContent>
       <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aBaseTrainPart" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tTrainPart">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseTrainPart">
         <xs:attributeGroup ref="rail:aTrainPart" />
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
 
-  <xs:attributeGroup name="aTrainPart">
+  <xs:complexType name="tOriginDestinationInfo">
+    <xs:attributeGroup ref="rail:aOriginDestinationInfo" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aOriginDestinationInfo">
+    <xs:attribute name="ocpRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>allows to refer to a known ocp as origin or destination</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="aBaseTrainPart">
     <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="lineTTRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>reference to a lineTT element describing how this train part is presented to the passengers</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="remarks" type="xs:string" />
+    <xs:attribute name="timetablePeriodRef" type="rail:tGenericRef" />
+    <xs:attribute name="categoryRef" type="rail:tGenericRef" />
+    <xs:attribute name="lastModified" type="xs:dateTime">
+      <xs:annotation>
+        <xs:documentation>allows to specify when the last change to this trainPart was done</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="aTrainPart">
     <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>
@@ -304,11 +417,12 @@
     </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="processStatus" type="rail:tProcessStatus">
+      <xs:annotation>
+        <xs:documentation>DEPRECATED: no standardized semantics defined.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
     <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:annotation>
         <xs:documentation>DEPRECATED: the "organizationalUnitBinding" should be used instead</xs:documentation>
@@ -316,28 +430,64 @@
     </xs:attribute>
     <xs:attribute name="cancellation" type="xs:boolean">
       <xs:annotation>
-        <xs:documentation>indicates, that this trainPart is no longer valid and should be canceled out of a previously delivered set</xs:documentation>
+        <xs:documentation>indicates that this trainPart is no longer valid and should be canceled out of a previously delivered set</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="onRequest" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>indicates that this trainPart is considered on request if this flag is set to true. If a `trainPart` has `onRequest=true`, it is considered for planning, but it is not actually running, unless requested otherwise. The default value is `onRequest=false`, meaning that the train is planned and running as specified.</xs:documentation>
       </xs:annotation>
     </xs:attribute>
   </xs:attributeGroup>
 
-  <xs:complexType name="tTrain">
+  <xs:complexType name="tBaseTrain">
     <xs:complexContent>
       <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aBaseTrain" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tPatternTrain">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseTrain">
+        <xs:attributeGroup ref="rail:aPatternTrain" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tTrain">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseTrain">
         <xs:attributeGroup ref="rail:aTrain" />
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
 
+  <xs:attributeGroup name="aBaseTrain">
+    <xs:attribute name="remarks" type="xs:string">
+      <xs:annotation>
+        <xs:documentation>a free attribute for further descriptions</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="aPatternTrain">
+    <xs:attribute name="distributionRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>Reference to a (more detailed) distribution</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
   <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:attribute name="remarks" type="xs:string">
+    <xs:attribute name="processStatus" type="rail:tProcessStatus">
       <xs:annotation>
-        <xs:documentation>a free attribute for further descriptions</xs:documentation>
+        <xs:documentation>DEPRECATED: no standardized semantics defined.</xs:documentation>
       </xs:annotation>
     </xs:attribute>
     <xs:attribute name="cancellation" type="xs:boolean">
@@ -358,10 +508,19 @@
   <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:attribute name="processStatus" type="rail:tProcessStatus">
+      <xs:annotation>
+        <xs:documentation>DEPRECATED: no standardized semantics defined.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="patternTrainRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>Reference to a pattern train that is the basis for the trains in the train group</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:attributeGroup>
 
-  <xs:complexType name="tTrainPartSequence">
+  <xs:complexType name="tBaseTrainPartSequence">
     <xs:sequence>
       <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
@@ -369,13 +528,12 @@
         </xs:annotation>
       </xs:any>
     </xs:sequence>
-    <xs:attributeGroup ref="rail:aTrainPartSequence" />
+    <xs:attributeGroup ref="rail:aBaseTrainPartSequence" />
     <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
-  <xs:attributeGroup name="aTrainPartSequence">
+  <xs:attributeGroup name="aBaseTrainPartSequence">
     <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>
@@ -383,6 +541,18 @@
     </xs:attribute>
   </xs:attributeGroup>
 
+  <xs:complexType name="tTrainPartSequence">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseTrainPartSequence">
+        <xs:attributeGroup ref="rail:aTrainPartSequence" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTrainPartSequence">
+    <xs:attribute name="pathStatus" type="rail:tPathStatus" />
+  </xs:attributeGroup>
+
   <xs:complexType name="tTrainPartRef">
     <xs:complexContent>
       <xs:extension base="rail:tElementWithReference">
@@ -407,25 +577,33 @@
   <xs:complexType name="tOperatingPeriodRef">
     <xs:complexContent>
       <xs:extension base="rail:tElementWithReference">
-        <xs:attributeGroup ref="rail:aOperatingPeriodRef">
-          <xs:annotation>
-            <xs:documentation>DEPRECATED: use restricted operating period instead.</xs:documentation>
-          </xs:annotation>
-        </xs:attributeGroup>
+        <xs:attributeGroup ref="rail:aOperatingPeriodRef" />
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
 
   <xs:attributeGroup name="aOperatingPeriodRef">
-    <xs:attributeGroup ref="rail:aTimePeriod" />
+    <xs:attributeGroup ref="rail:aTimePeriod">
+      <xs:annotation>
+        <xs:documentation>DEPRECATED: use restricted operating period instead.</xs:documentation>
+      </xs:annotation>
     </xs:attributeGroup>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tBaseOcpTT">
+    <xs:attributeGroup ref="rail:aBaseOcpTT" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:complexType>
 
   <xs:complexType name="tOcpTT">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseOcpTT">
         <xs:attributeGroup ref="rail:aOcpTT" />
-    <xs:attributeGroup ref="rail:anyAttribute" />
+      </xs:extension>
+    </xs:complexContent>
   </xs:complexType>
 
-  <xs:attributeGroup name="aOcpTT">
+  <xs:attributeGroup name="aBaseOcpTT">
     <xs:attribute name="sequence" type="rail:tPositiveCounter">
       <xs:annotation>
         <xs:documentation>defines explicitly the order of the ocpTTs which are supposed to be in chronological order along the train path</xs:documentation>
@@ -456,11 +634,6 @@
         <xs:documentation>a free attribute for further descriptions</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attribute name="trainReverse" type="xs:boolean">
-      <xs:annotation>
-        <xs:documentation>is true if the train changes its direction of travel at this station. After this station the rollingstock which is referenced in formationTT changes its order</xs:documentation>
-      </xs:annotation>
-    </xs:attribute>
     <xs:attribute name="alignment" type="rail:tTrainAlignment">
       <xs:annotation>
         <xs:documentation>describes the alignment of the arriving train in relation to the point on a track referenced by ocpRef</xs:documentation>
@@ -471,19 +644,56 @@
         <xs:documentation>describes the offset of the stopping point in relation to the point on a track referenced by ocpRef</xs:documentation>
       </xs:annotation>
     </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="aOcpTT">
+    <xs:attribute name="trainReverse" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>is true if the train changes its direction of travel at this station. After this station the rollingstock which is referenced in formationTT changes its order</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
     <xs:attribute name="shuntingTime" type="xs:duration">
       <xs:annotation>
-        <xs:documentation>is the driving time used inside a station</xs:documentation>
+        <xs:documentation>is the driving time used inside a station. DEPRECATED: instead please use //stopDescription/stopTimes/@shuntingTime.</xs:documentation>
       </xs:annotation>
     </xs:attribute>
   </xs:attributeGroup>
 
-  <xs:complexType name="tArrivalDepartureTimes">
-    <xs:attributeGroup ref="rail:aTimesScope" />
+  <xs:complexType name="tOriginalTrackInfo">
+    <xs:attribute name="trackRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>refers to the id attribute of the associated track element</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="trackInfo" type="xs:string">
+      <xs:annotation>
+        <xs:documentation>is a description of the station track, often used for the platform number</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:complexType>
+
+  <xs:complexType name="tBaseArrivalDepartureTimes">
     <xs:attributeGroup ref="rail:aArrivalDepartureTimes" />
     <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
+  <xs:complexType name="tPatternTrainArrivalDepartureTimes">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseArrivalDepartureTimes">
+        <xs:attributeGroup ref="rail:aFutureTimesScope" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tArrivalDepartureTimes">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseArrivalDepartureTimes">
+        <xs:attributeGroup ref="rail:aTimesScope" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
   <xs:attributeGroup name="aArrivalDepartureTimes">
     <xs:attribute name="arrival" type="xs:time" />
     <xs:attribute name="arrivalDay" type="xs:integer" default="0" />
@@ -491,6 +701,10 @@
     <xs:attribute name="departureDay" type="xs:integer" default="0" />
   </xs:attributeGroup>
 
+  <xs:attributeGroup name="aFutureTimesScope">
+    <xs:attribute name="scope" type="rail:tFutureTimeScope" use="required" />
+  </xs:attributeGroup>
+
   <xs:attributeGroup name="aTimesScope">
     <xs:attribute name="scope" type="rail:tTimeScope" use="required" />
   </xs:attributeGroup>
@@ -504,7 +718,11 @@
     <xs:attribute name="minimalTime" type="xs:duration" />
     <xs:attribute name="operationalReserve" type="xs:duration" />
     <xs:attribute name="additionalReserve" type="xs:duration" />
-    <xs:attribute name="shuntingTime" type="xs:duration" />
+    <xs:attribute name="shuntingTime" type="xs:duration">
+      <xs:annotation>
+        <xs:documentation>is the driving time used inside a station. See https://wiki2.railml.org/wiki/TT:stopTimes</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
     <xs:attribute name="clearanceTime" type="xs:duration" />
   </xs:attributeGroup>
 
@@ -532,7 +750,7 @@
     </xs:attribute>
     <xs:attribute name="ocpRef" type="rail:tGenericRef">
       <xs:annotation>
-        <xs:documentation>refers to an ocp element, in case the referenced train is located on a different ocp nearby</xs:documentation>
+        <xs:documentation>refers to an ocp element, in case the connection is realized with a train stopping at a different ocp.</xs:documentation>
       </xs:annotation>
     </xs:attribute>
     <xs:attribute name="trainPartRef" type="rail:tGenericRef">
@@ -547,7 +765,7 @@
     </xs:attribute>
     <xs:attribute name="notGuaranteed" type="xs:boolean">
       <xs:annotation>
-        <xs:documentation>indicates if the connection could not be guaranteed</xs:documentation>
+        <xs:documentation>Indicates that this connection will not be maintained in case of delays or other disruptions.</xs:documentation>
       </xs:annotation>
     </xs:attribute>
     <xs:attribute name="nonConnection" type="xs:boolean">
@@ -562,19 +780,6 @@
     </xs:attribute>
   </xs:attributeGroup>
 
-  <xs:complexType name="tAnnotationText">
-    <xs:simpleContent>
-      <xs:extension base="xs:string">
-        <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:extension>
-    </xs:simpleContent>
-  </xs:complexType>
-  
   <xs:complexType name="tStatistic">
     <xs:sequence>
       <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
@@ -660,40 +865,318 @@
     </xs:complexContent>
   </xs:complexType>
 
+  <xs:complexType name="tBaseTrackInfo">
+    <xs:attribute name="track" type="xs:string">
+      <xs:annotation>
+        <xs:documentation>information concerning the station track used by the train</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="platform" type="xs:string">
+      <xs:annotation>
+        <xs:documentation>information concerning the platform used by the train</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:complexType>
+
   <xs:complexType name="tStationTrackInfo">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseTrackInfo">
         <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef">
           <xs:annotation>
             <xs:documentation>reference to the operatingPeriod, which defines when the specified track information is valid</xs:documentation>
           </xs:annotation>
         </xs:attribute>
-    <xs:attribute name="track" type="xs:string">
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:complexType name="tEventTrigger">
+    <xs:attributeGroup ref="rail:aEventTrigger" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aEventTrigger">
+    <xs:attribute name="offset" type="xs:duration">
       <xs:annotation>
-        <xs:documentation>information concerning the station track used by the train</xs:documentation>
+        <xs:documentation>specifies the delay from the triggering event to the triggered event</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attribute name="platform" type="xs:string">
+    <xs:attribute name="event" type="rail:tOcpEvent" use="required">
       <xs:annotation>
-        <xs:documentation>information concerning the platform used by the train</xs:documentation>
+        <xs:documentation>allows to specify the event triggering the announcement</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attributeGroup ref="rail:anyAttribute" />
+  </xs:attributeGroup>
+
+  <xs:complexType name="tOcpTrigger">
+    <xs:attributeGroup ref="rail:aOcpTrigger" />
   </xs:complexType>
 
-  <xs:complexType name="tAnnotationRef">
+  <xs:attributeGroup name="aOcpTrigger">
+    <xs:attribute name="ocpRef" type="rail:tGenericRef" use="required">
+      <xs:annotation>
+        <xs:documentation>allows to specify an ocp which when reached triggers the announcement</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="offset" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>allows to specify an offset (as distance on the scheduled line of tracks) to the ocp which needs to be reached to trigger the announcement</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tTimingTrigger">
+    <xs:attributeGroup ref="rail:aTimingTrigger" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aTimingTrigger">
+    <xs:attribute name="time" type="xs:time" use="required">
+      <xs:annotation>
+        <xs:documentation>allows to specify a specific time for the announcement</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tGeoTrigger">
+    <xs:sequence>
+      <xs:element name="geoCoord" type="rail:tGeoCoord">
+        <xs:annotation>
+          <xs:documentation>allows to specify geocoordinates which when reached trigger the announcement</xs:documentation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:geoCoord</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+    <xs:attributeGroup ref="rail:aGeoTrigger" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aGeoTrigger">
+    <xs:attribute name="radius" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>allows for specifying a radius around the geo coordinates which when hit will trigger the announcement</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tInformationAreaTrigger">
+    <xs:attributeGroup ref="rail:aInformationAreaTrigger" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aInformationAreaTrigger">
+    <xs:attribute name="informationAreaRef" type="rail:tGenericRef" use="required">
+      <xs:annotation>
+        <xs:documentation>allows to specify the information area defined in the infrastructure</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="event" type="rail:tInformationAreaEvent" use="required">
+      <xs:annotation>
+        <xs:documentation>defines which event triggers something (entering or leavin the area)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tInformationAreaEvent">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="entering" />
+          <xs:enumeration value="leaving" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:complexType name="tAnnouncementTriggerPeriodic">
+    <xs:choice>
+      <xs:element name="eventTrigger" type="rail:tEventTrigger">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:eventTrigger</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ocpTrigger" type="rail:tOcpTrigger">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:ocpTrigger</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="timingTrigger" type="rail:tTimingTrigger">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:timingTrigger</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="geoTrigger" type="rail:tGeoTrigger">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:geoTrigger</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="informationAreaTrigger" type="rail:tInformationAreaTrigger">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:informationAreaTrigger</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="tAnnouncementTrigger">
+    <xs:choice>
+      <xs:element name="eventTrigger" type="rail:tEventTrigger">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:eventTrigger</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="ocpTrigger" type="rail:tOcpTrigger">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:ocpTrigger</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="timingTrigger" type="rail:tTimingTrigger">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:timingTrigger</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="geoTrigger" type="rail:tGeoTrigger">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:geoTrigger</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="informationAreaTrigger" type="rail:tInformationAreaTrigger">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:informationAreaTrigger</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="manualTrigger">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:manualTrigger</xs:documentation>
+        </xs:annotation>
+        <xs:complexType />
+      </xs:element>
+    </xs:choice>
+  </xs:complexType>
+
+  <xs:complexType name="tPassengerInfoActivationTimeSpec">
+    <xs:sequence>
+      <xs:element name="startTime" type="rail:tAnnouncementTriggerPeriodic">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:startTime</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+      <xs:element name="endTime" type="rail:tAnnouncementTriggerPeriodic">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:endTime</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="tPeriodicAnnouncementSpec">
+    <xs:complexContent>
+      <xs:extension base="rail:tPassengerInfoActivationTimeSpec">
+        <xs:attributeGroup ref="rail:aPeriodicAnnouncementSpec" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aPeriodicAnnouncementSpec">
+    <xs:attribute name="interval" type="xs:duration" use="required">
+      <xs:annotation>
+        <xs:documentation>specifies the interval, in which the announcement is repeated between startTime and endTime</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tPassengerInformationReference">
     <xs:complexContent>
       <xs:extension base="rail:tElementWithReference">
-        <xs:attributeGroup ref="rail:aAnnotationRef" />
+        <xs:sequence>
+          <xs:element name="outputLanguages" type="rail:tOutputLanguages" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:outputLanguages</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+        <xs:attributeGroup ref="rail:aPassengerInformationReference" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aPassengerInformationReference">
+    <xs:attribute name="target" type="rail:tPassengerInfoTarget">
+      <xs:annotation>
+        <xs:documentation>specifies the target passenger information system (e.g. info output via system at the station or in the train)</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="priority" type="xs:integer">
+      <xs:annotation>
+        <xs:documentation>specifies the priority of the announcements. If multiple announcements apply, the order in which they are played is determined by the priority (smallest number first).</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tOutputLanguages">
+    <xs:sequence>
+      <xs:element name="language" type="rail:tOutputLanguage">
+        <xs:annotation>
+          <xs:documentation>See https://wiki2.railml.org/wiki/TT:language</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
+  <xs:complexType name="tOutputLanguage">
+    <xs:attributeGroup ref="rail:aOutputLanguage" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aOutputLanguage">
+    <xs:attribute ref="xml:lang">
+      <xs:annotation>
+        <xs:documentation>natural language identification according to https://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
+  <xs:complexType name="tAnnotationRef">
+    <xs:complexContent>
+      <xs:extension base="rail:tPassengerInformationReference">
+        <xs:sequence>
+          <xs:element name="activationTime" type="rail:tPassengerInfoActivationTimeSpec" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:activationTime</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+        <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef">
+          <xs:annotation>
+            <xs:documentation>references a reduction of the operating days of the annotation, must be a subset of the parents operating days</xs:documentation>
+          </xs:annotation>
+        </xs:attribute>
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
 
-  <xs:attributeGroup name="aAnnotationRef">
+  <xs:complexType name="tAnnouncementRef">
+    <xs:complexContent>
+      <xs:extension base="rail:tPassengerInformationReference">
+        <xs:choice>
+          <xs:element name="trigger" type="rail:tAnnouncementTrigger">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:trigger</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+          <xs:element name="periodic" type="rail:tPeriodicAnnouncementSpec">
+            <xs:annotation>
+              <xs:documentation>See https://wiki2.railml.org/wiki/TT:periodic</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:choice>
         <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef">
           <xs:annotation>
             <xs:documentation>references a reduction of the operating days of the annotation, must be a subset of the parents operating days</xs:documentation>
           </xs:annotation>
         </xs:attribute>
-  </xs:attributeGroup>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
   <xs:complexType name="tRunTimes">
     <xs:attributeGroup ref="rail:aRunTimes" />
@@ -706,7 +1189,7 @@
     <xs:attribute name="additionalReserve" type="xs:duration" />
   </xs:attributeGroup>
 
-  <xs:complexType name="tStopDescription">
+  <xs:complexType name="tBaseStopDescription">
     <xs:sequence>
       <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
@@ -714,10 +1197,18 @@
         </xs:annotation>
       </xs:any>
     </xs:sequence>
-    <xs:attributeGroup ref="rail:aStopDescription" />
+    <xs:attributeGroup ref="rail:aBaseStopDescription" />
     <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
+  <xs:complexType name="tStopDescription">
+    <xs:complexContent>
+      <xs:extension base="rail:tBaseStopDescription">
+        <xs:attributeGroup ref="rail:aStopDescription" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
   <xs:complexType name="tStopActivity">
     <xs:attributeGroup ref="rail:aStopActivity" />
   </xs:complexType>
@@ -729,7 +1220,7 @@
     </xs:attribute>
   </xs:attributeGroup>
 
-  <xs:attributeGroup name="aStopDescription">
+  <xs:attributeGroup name="aBaseStopDescription">
     <xs:attribute name="commercial" type="xs:boolean">
       <xs:annotation>
         <xs:documentation>characterizes the stop as either commercial or operational stop</xs:documentation>
@@ -760,14 +1251,17 @@
         <xs:documentation>the stop is requested by the infrastructure manager</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef">
+    <xs:attribute name="stopPostRef" type="rail:tGenericRef">
       <xs:annotation>
-        <xs:documentation>references a reduction of the operating days of the stop compared to the operating days of the train part</xs:documentation>
+        <xs:documentation>refers to the id attribute of the associated stop post element</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attribute name="stopPostRef" type="rail:tGenericRef">
+  </xs:attributeGroup>
+
+  <xs:attributeGroup name="aStopDescription">
+    <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef">
       <xs:annotation>
-        <xs:documentation>refers to the id attribute of the associated stop post element</xs:documentation>
+        <xs:documentation>references a reduction of the operating days of the stop compared to the operating days of the train part</xs:documentation>
       </xs:annotation>
     </xs:attribute>
   </xs:attributeGroup>
@@ -958,12 +1452,36 @@
     </xs:union>
   </xs:simpleType>
 
+  <xs:simpleType name="tPassengerInfoTarget">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="station">
+            <xs:annotation>
+              <xs:documentation>indicates that passenger info is to be output via the stationary info system at the platform/station</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="train">
+            <xs:annotation>
+              <xs:documentation>indicates that passenger info is to be output via the onboard info system in the train</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+        </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="conceptual" />
           <xs:enumeration value="planned" />
           <xs:enumeration value="ordered" />
+          <xs:enumeration value="offered" />
           <xs:enumeration value="confirmed" />
           <xs:enumeration value="detailsRefused" />
           <xs:enumeration value="cancelled" />
@@ -976,6 +1494,51 @@
     </xs:union>
   </xs:simpleType>
 
+  <xs:simpleType name="tSimpleOcpEvent">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="arrival" />
+          <xs:enumeration value="departure" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tOcpEvent">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="scheduledArrival" />
+          <xs:enumeration value="expectedArrival" />
+          <xs:enumeration value="scheduledDeparture" />
+          <xs:enumeration value="expectedDeparture" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+
+  <xs:simpleType name="tAnnotationType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="text" />
+          <xs:enumeration value="symbol" />
+          <xs:enumeration value="image" />
+        </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>
@@ -1017,16 +1580,32 @@
     </xs:restriction>
   </xs:simpleType>
 
+  <xs:simpleType name="tTimeScopeAll">
+    <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:enumeration value="expected" />
+    </xs:restriction>
+  </xs:simpleType>
+
   <xs:simpleType name="tTimeScope">
+    <xs:union memberTypes="rail:tTimeScopeAll rail:tOtherEnumerationValue" />
+  </xs:simpleType>
+
+  <xs:simpleType name="tFutureTimeScope">
     <xs:union>
       <xs:simpleType>
-        <xs:restriction base="xs:string">
-          <xs:enumeration value="actual" />
+        <xs:restriction base="rail:tTimeScopeAll">
           <xs:enumeration value="calculated" />
           <xs:enumeration value="published" />
           <xs:enumeration value="scheduled" />
           <xs:enumeration value="earliest" />
           <xs:enumeration value="latest" />
+          <xs:enumeration value="expected" />
         </xs:restriction>
       </xs:simpleType>
       <xs:simpleType>
@@ -1165,12 +1744,12 @@
           </xs:enumeration>
           <xs:enumeration value="crewChange">
             <xs:annotation>
-              <xs:documentation>Stop to change engine or train crew</xs:documentation>
+              <xs:documentation>Stop to change engine crew and/or change train crew</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="crewBreak">
             <xs:annotation>
-              <xs:documentation>Stop for engine or train crew to pause</xs:documentation>
+              <xs:documentation>Stop for engine crew and/or train crew to pause</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="reverse">
@@ -1245,7 +1824,7 @@
           </xs:enumeration>
           <xs:enumeration value="photo">
             <xs:annotation>
-              <xs:documentation/>
+              <xs:documentation>Stop to let the passengers take photos, e.g. of tourist attractions</xs:documentation>
             </xs:annotation>
           </xs:enumeration>
           <xs:enumeration value="catering">
@@ -1361,7 +1940,7 @@
 
   <xs:attributeGroup name="aTapTsiCompositIdentifierOperationalType">
     <xs:annotation>
-      <xs:documentation>Used for unique identification of the objects handled in the messages such as train, path, path request or case refernce.</xs:documentation>
+      <xs:documentation>Used for unique identification of the objects handled in the messages such as train, path, path request or case reference.</xs:documentation>
     </xs:annotation>
     <xs:attribute name="objectType" type="rail:tTapTsiObjectType" use="required" />
     <xs:attribute name="companyCode" type="rail:tCompanyCode" use="required" />
@@ -1376,9 +1955,6 @@
       <xs:documentation>Provides a possibility for differentiantion between the objects: Train, Path, Case Reference and Path Request</xs:documentation>
     </xs:annotation>
     <xs:restriction base="xs:string">
-      <xs:minLength value="2"/>
-      <xs:maxLength value="2"/>
-      <xs:pattern value="[0-9A-Z]{2}"/>
       <xs:enumeration value="TR" />
       <xs:enumeration value="PA" />
       <xs:enumeration value="CR" />
@@ -1398,12 +1974,9 @@
 
   <xs:simpleType name="tTapTsiCore">
     <xs:annotation>
-      <xs:documentation>It is the main part of identifier and is determent by the company that creates  it.</xs:documentation>
+      <xs:documentation>It is the main part of the identifier and is determined by the company that creates it.</xs:documentation>
     </xs:annotation>
     <xs:restriction base="xs:string">
-      <xs:minLength value="12"/>
-      <xs:whiteSpace value="replace"/>
-      <xs:maxLength value="12"/>
       <xs:pattern value="[\-\*0-9A-Z]{12}" />
     </xs:restriction>
   </xs:simpleType>
@@ -1413,8 +1986,6 @@
       <xs:documentation>The variant shows a relationship between two identifiers referring to the same business case</xs:documentation>
     </xs:annotation>
     <xs:restriction base="xs:string">
-      <xs:minLength value="2"/>
-      <xs:maxLength value="2"/>
       <xs:pattern value="[0-9A-Z]{2}" />
     </xs:restriction>
   </xs:simpleType>