Dev:changes/2.3/diff

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

Schema differences between railML® 2.2 and railML® 2.3

This page shows schema differences between railML® 2.2 and railML® 2.3. 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/InfrastructureManagerCodes.xml b/schema/InfrastructureManagerCodes.xml
deleted file mode 100644
index c88b8e0..0000000
--- a/schema/InfrastructureManagerCodes.xml
+++ /dev/null
@@ -1,237 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<!-- Copyright (c) railML.org; All Rights Reserved.
-     This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html
-     For further information see: https://www.railml.org/
-     Content of this file: XML Code List for railML(R) 2.2 Definition of infrastructure manager codes, used by infrastructure sub schema (IS) -->
-<infrastructureManagerCodes xmlns="https://www.railml.org/schemas/lists" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.railml.org/schemas/lists ../codelist-schema/InfrastructureManager.xsd">
-  <infrastructureManager code="ADF">
-    <name>ADIF</name>
-    <isoCountryCode>ES</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="AVG">
-    <name>Albtal-Verkehrs-Gesellschaft mbH</name>
-    <isoCountryCode>DE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="BC">
-    <name>BC</name>
-    <isoCountryCode>BY</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="BDK">
-    <name>Banedanmark</name>
-    <isoCountryCode>DK</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="BLS">
-    <name>BLS Netz</name>
-    <isoCountryCode>TR</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="BRE">
-    <name>Bayerische Regionaleisenbahn</name>
-    <isoCountryCode>DE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="CFL">
-    <name>CFL</name>
-    <isoCountryCode>LU</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="CFM">
-    <name>CFM</name>
-    <isoCountryCode>MD</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="CFR">
-    <name>CFR Infrastructura</name>
-    <isoCountryCode>RO</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="CIE">
-    <name>CIE</name>
-    <isoCountryCode>IE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="DBN">
-    <name>DB Netz</name>
-    <isoCountryCode>DE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="DRE">
-    <name>Deutsche Regionaleisenbahn</name>
-    <isoCountryCode>DE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="EDS">
-    <name>ΕΔΙΣΥ</name>
-    <isoCountryCode>GR</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="evb">
-    <name>Eisenbahnen und Verkehrsbetriebe Elbe-Weser GmbH</name>
-    <isoCountryCode>DE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="EVR">
-    <name>EVR</name>
-    <isoCountryCode>EE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="GKB">
-    <name>Graz-Köflacher Bahn und Busbetrieb GmbH</name>
-    <isoCountryCode>AT</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="GyS">
-    <name>GySEV</name>
-    <isoCountryCode>HU</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="HSB">
-    <name>Harzer Schmalspurbahnen GmbH</name>
-    <isoCountryCode>DE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="HZI">
-    <name>HŽ Infrastruktura</name>
-    <isoCountryCode>HR</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="HzL">
-    <name>Hohenzollerische Landesbahn AG</name>
-    <isoCountryCode>DE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="InB">
-    <name>Infrabel</name>
-    <isoCountryCode>BE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="JBV">
-    <name>JBV</name>
-    <isoCountryCode>NO</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="KZH">
-    <name>KZH</name>
-    <isoCountryCode>KZ</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="LDz">
-    <name>LDz</name>
-    <isoCountryCode>LV</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="LG">
-    <name>LG</name>
-    <isoCountryCode>LT</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="MGB">
-    <name>Matterhorn Gotthard Bahn</name>
-    <isoCountryCode>CH</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="MZ">
-    <name>MŽ</name>
-    <isoCountryCode>MK</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="NEB">
-    <name>Niederbarnimer Eisenbahn AG, Berlin</name>
-    <isoCountryCode>DE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="NRl">
-    <name>Network Rail</name>
-    <isoCountryCode>GB</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="NKS">
-    <name>NKSchl</name>
-    <isoCountryCode>BG</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="ÖBB">
-    <name>ÖBB Infra</name>
-    <isoCountryCode>AT</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="OHE">
-    <name>Osthannoversche Eisenbahnen AG</name>
-    <isoCountryCode>DE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="PLK">
-    <name>PLK</name>
-    <isoCountryCode>PL</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="PrR">
-    <name>ProRail</name>
-    <isoCountryCode>NL</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="REF">
-    <name>REFER</name>
-    <isoCountryCode>PT</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="RFF">
-    <name>RFF</name>
-    <isoCountryCode>FR</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="RFI">
-    <name>RFI</name>
-    <isoCountryCode>IT</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="RhB">
-    <name>Rhätische Bahn</name>
-    <isoCountryCode>CH</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="RHK">
-    <name>RHK</name>
-    <isoCountryCode>FI</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="RIG">
-    <name>RegioInfra Gesellschaft mbH</name>
-    <isoCountryCode>DE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="RÖE">
-    <name>Raab-Oedenburg-Ebenfurter Eisenbahn</name>
-    <isoCountryCode>AT</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="RSE">
-    <name>Rhein-Sieg-Eisenbahn GmbH</name>
-    <isoCountryCode>DE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="RZD">
-    <name>РЖД</name>
-    <isoCountryCode>RU</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="SBB">
-    <name>SBB Infrastruktur</name>
-    <isoCountryCode>CH</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="SLB">
-    <name>Salzburger Lokalbahn</name>
-    <isoCountryCode>AT</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="SuH">
-    <name>Stern und Hafferl Ges.m.b.H, Gmunden</name>
-    <isoCountryCode>AT</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="SZD">
-    <name>SŽDC</name>
-    <isoCountryCode>CZ</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="SZI">
-    <name>SŽ Infrastruktura</name>
-    <isoCountryCode>SI</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="TCD">
-    <name>TCDD</name>
-    <isoCountryCode>TR</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="ThE">
-    <name>Thüringer Eisenbahn GmbH</name>
-    <validity begin="2001-08-01" />
-    <isoCountryCode>DE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="TrV">
-    <name>Trafikverket</name>
-    <isoCountryCode>SE</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="UZ">
-    <name>UZ</name>
-    <isoCountryCode>UA</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="VPE">
-    <name>VPE</name>
-    <isoCountryCode>HU</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="ZFB">
-    <name>ŽFBH</name>
-    <isoCountryCode>BA</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="ZS">
-    <name>ŽS</name>
-    <isoCountryCode>RS</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="ZRS">
-    <name>ŽRS</name>
-    <isoCountryCode>BA</isoCountryCode>
-  </infrastructureManager>
-  <infrastructureManager code="ZSR">
-    <name>ŽSR</name>
-    <isoCountryCode>SK</isoCountryCode>
-  </infrastructureManager>
-</infrastructureManagerCodes>
diff --git a/schema/Registers.xml b/schema/Registers.xml
deleted file mode 100644
index ad61cc8..0000000
--- a/schema/Registers.xml
+++ /dev/null
@@ -1,29 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<!-- Copyright (c) railML.org; All Rights Reserved.
-     This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html
-     For further information see: https://www.railml.org/
-     Content of this file: XML Code List for railML(R) 2.2 Definition of operation or control point register codes, used by timetable sub schema (TT) -->
-<registers xmlns="https://www.railml.org/schemas/lists" xmlns:xml="https://www.w3.org/XML/1998/namespace" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.railml.org/schemas/lists ../codelist-schema/Register.xsd">
-  <register code="DB640">
-    <name>Dienstbehelf Nr. 640</name>
-    <organization xml:lang="de-AT">ÖBB</organization>
-  </register>
-  <register code="DIDOK">
-    <name>Dienststellendokumentation</name>
-    <organization xml:lang="de-CH">SBB</organization>
-  </register>
-  <register code="ENEE">
-    <name>ENEE Database Station Code</name>
-    <organization xml:lang="fr">UIC</organization>
-  </register>
-  <register code="IBNR">
-    <name>IBNR</name>
-    <organization xml:lang="de">Europäisches Fahrplanzentrum</organization>
-  </register>
-  <register code="RL100">
-    <name>Betriebsstellenkürzel</name>
-    <organization xml:lang="de">DB</organization>
-    <remarks xml:lang="en">was DS100 or DV100 or Ril100</remarks>
-  </register>
-</registers>
diff --git a/schema/TrainProtectionSystems.xml b/schema/TrainProtectionSystems.xml
deleted file mode 100644
index e5e3998..0000000
--- a/schema/TrainProtectionSystems.xml
+++ /dev/null
@@ -1,420 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!-- $Id$ -->
-<!-- Copyright (c) railML.org; All Rights Reserved.
-     This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html
-     For further information see: https://www.railml.org/
-     Content of this file: XML Code List for railML(R) 2.2 Definition of train protection system codes, used by infrastructure sub schema (IS), rollingstock sub schema (RS) and timetable sub schema (TT) -->
-<trainProtectionSystems xmlns="https://www.railml.org/schemas/lists" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="https://www.railml.org/schemas/lists ../codelist-schema/TrainProtectionSystem.xsd">
-  <trainProtectionSystemsAtTrack>
-    <trainProtectionSystem code="ALSN">
-      <name>Continuous Automatic Train Signalling</name>
-      <validFor>
-        <vehicleSystem>ALSN</vehicleSystem>
-        <vehicleSystem>ALSEN</vehicleSystem>
-        <vehicleSystem>KLUBU</vehicleSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ASFA">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ATB">
-      <name />
-      <validFor>
-        <vehicleSystem>ATB</vehicleSystem>
-        <vehicleSystem>ATBEG</vehicleSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ATBNG">
-      <name />
-    </trainProtectionSystem>
-    <!-- This name is used for various systems with heterogeneous devices
-    <trainProtectionSystem code="ATC">
-      <name></name>
-      <validFor>
-        <vehicleSystem></vehicleSystem>
-      </validFor>
-    </trainProtectionSystem>
--->
-    <trainProtectionSystem code="ATSP">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ATSS">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="AWS">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="BACC">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="Crocodile">
-      <name />
-      <validFor>
-        <vehicleSystem>Crocodile</vehicleSystem>
-        <vehicleSystem>Memor</vehicleSystem>
-        <vehicleSystem>Memor2</vehicleSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="CIR-ELKE">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="CIR-ELKE2">
-      <name />
-      <validFor>
-        <vehicleSystem>CIR-ELKE</vehicleSystem>
-        <vehicleSystem>CIR-ELKE2</vehicleSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="CSS">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="DATC">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="EBICAB">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ETCS">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="EVM">
-      <name />
-      <validFor>
-        <vehicleSystem>EVM120</vehicleSystem>
-        <vehicleSystem>EVM160</vehicleSystem>
-        <vehicleSystem>Mirel</vehicleSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="Fahrsp">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="GWATP">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="Indusi">
-      <name />
-      <validFor>
-        <vehicleSystem>Indusi54</vehicleSystem>
-        <vehicleSystem>Indusi60</vehicleSystem>
-        <vehicleSystem>Indusi60R</vehicleSystem>
-        <vehicleSystem>PZ80</vehicleSystem>
-        <vehicleSystem>PZB90</vehicleSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="Integra-Signum">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="KHP">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="KVB">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="LS">
-      <name />
-      <validFor>
-        <vehicleSystem>LS</vehicleSystem>
-        <vehicleSystem>LS90</vehicleSystem>
-        <vehicleSystem>Mirel</vehicleSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="LZB">
-      <name />
-      <validFor>
-        <vehicleSystem>LZB-L72</vehicleSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="RS4c">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="SAUTC">
-      <name />
-      <validFor>
-        <vehicleSystem>SAUTC</vehicleSystem>
-        <vehicleSystem>SAUTCM</vehicleSystem>
-        <vehicleSystem>SAUTU</vehicleSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="SCMT">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="SELCAB">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="SHP">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="SSC">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="TBL">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="TPWS">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="TVM300">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="TVM430">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZSI127">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZSI90">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZSL90">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZST90">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZUB121">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZUB122">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZUB123">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZUB262">
-      <name />
-    </trainProtectionSystem>
-  </trainProtectionSystemsAtTrack>
-  <trainProtectionSystemsOnVehicle>
-    <trainProtectionSystem code="ALSEN">
-      <name />
-      <validFor>
-        <trackSystem>ALSN</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ALSN">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ASFA">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ATB">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ATBEG">
-      <name />
-      <validFor>
-        <trackSystem>ATB</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ATBNG">
-      <name />
-    </trainProtectionSystem>
-    <!-- This name is used for various systems with heterogeneous devices
-    <trainProtectionSystem code="ATC">
-      <name></name>
-      <validFor>
-        <trackSystem></trackSystem>
-      </validFor>
-    </trainProtectionSystem>
--->
-    <trainProtectionSystem code="ATSP">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ATSS">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="AWS">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="BACC">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="CIR-ELKE">
-      <name />
-      <validFor>
-        <trackSystem>LZB</trackSystem>
-        <trackSystem>CIR-ELKE</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="CIR-ELKE2">
-      <name />
-      <validFor>
-        <trackSystem>LZB</trackSystem>
-        <trackSystem>CIR-ELKE</trackSystem>
-        <trackSystem>CIR-ELKE2</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="Crocodile">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="CSS">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="DATC">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="EBICAB">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ETCS">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="EVM120">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="EVM160">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="Fahrsp">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="GWATP">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="Indusi54">
-      <name />
-      <validFor>
-        <trackSystem>Indusi</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="Indusi60">
-      <name />
-      <validFor>
-        <trackSystem>Indusi</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="Indusi60R">
-      <name />
-      <validFor>
-        <trackSystem>Indusi</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="Integra-Signum">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="KHP">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="KLUBU">
-      <name />
-      <validFor>
-        <trackSystem>ALSN</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="KVB">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="LS">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="LS90">
-      <name />
-      <validFor>
-        <trackSystem>LS</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="LZB-L72">
-      <name />
-      <validFor>
-        <trackSystem>LZB</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="Memor">
-      <name />
-      <validFor>
-        <trackSystem>Crocodile</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="Memor2">
-      <name />
-      <validFor>
-        <trackSystem>Crocodile</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="Mirel">
-      <name />
-      <validFor>
-        <trackSystem>EVM</trackSystem>
-        <trackSystem>LS</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="PZ80">
-      <name />
-      <validFor>
-        <trackSystem>Indusi</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="PZB90">
-      <name />
-      <validFor>
-        <trackSystem>Indusi</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="RS4c">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="SAUTC">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="SAUTCM">
-      <name />
-      <validFor>
-        <trackSystem>SAUTC</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="SAUTU">
-      <name />
-      <validFor>
-        <trackSystem>SAUTC</trackSystem>
-      </validFor>
-    </trainProtectionSystem>
-    <trainProtectionSystem code="SCMT">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="SELCAB">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="SHP">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="SSC">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="TBL">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="TPWS">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="TVM300">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="TVM430">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZSI127">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZSI90">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZSL90">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZST90">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZUB121">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZUB122">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZUB123">
-      <name />
-    </trainProtectionSystem>
-    <trainProtectionSystem code="ZUB262">
-      <name />
-    </trainProtectionSystem>
-  </trainProtectionSystemsOnVehicle>
-</trainProtectionSystems>
diff --git a/schema/genericRailML.xsd b/schema/genericRailML.xsd
index 7c08d2d..007e6cb 100644
--- a/schema/genericRailML.xsd
+++ b/schema/genericRailML.xsd
@@ -1,12 +1,18 @@
 <?xml version="1.0" encoding="UTF-8"?>
-  <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2013" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:xml="https://www.w3.org/XML/1998/namespace" xmlns:dc="https://purl.org/dc/elements/1.1/" targetNamespace="https://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2016" 
+           xmlns:xs="https://www.w3.org/2001/XMLSchema" 
+           xmlns:xml="https://www.w3.org/XML/1998/namespace" 
+           xmlns:dc="https://purl.org/dc/elements/1.1/" 
+           targetNamespace="https://www.railml.org/schemas/2016" 
+           elementFormDefault="qualified" 
+           version="2.3">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
-    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.2 Definition of generic simple types, used by all sub schemas</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/en/user/licence.html</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.3 Definition of generic simple types, used by all sub schemas</xs:documentation>
   </xs:annotation>
 
   <xs:import namespace="https://purl.org/dc/elements/1.1/" schemaLocation="https://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd">
@@ -162,11 +168,7 @@
         <xs:documentation>natural language identification according to https://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attributeGroup ref="rail:anyAttribute">
-      <xs:annotation>
-        <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation>
-      </xs:annotation>
-    </xs:attributeGroup>
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:complexType name="tAdditionalName">
@@ -182,14 +184,10 @@
     </xs:attribute>
     <xs:attribute ref="xml:lang">
       <xs:annotation>
-        <xs:documentation>natural language identification according to https://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation>
+        <xs: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">
-      <xs:annotation>
-        <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation>
-      </xs:annotation>
-    </xs:attributeGroup>
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:complexType name="tElementWithIDAndNameWithoutAny">
@@ -221,11 +219,7 @@
         <xs:documentation>reference is required because it's the purpose of the element</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attributeGroup ref="rail:anyAttribute">
-      <xs:annotation>
-        <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation>
-      </xs:annotation>
-    </xs:attributeGroup>
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:complexType name="tGlobalElementWithMetadata">
@@ -293,6 +287,18 @@
       <xs:fractionDigits value="6" />
     </xs:restriction>
   </xs:simpleType>
+  
+  <xs:simpleType name="tThreeLetterString">
+  	<xs:restriction base="xs:string">
+  		<xs:pattern value="\w{1,3}" />
+  	</xs:restriction>
+  </xs:simpleType>
+
+  <xs:simpleType name="tFiveLetterString">
+  	<xs:restriction base="xs:string">
+  		<xs:pattern value="\w{1,5}" />
+  	</xs:restriction>
+  </xs:simpleType>
 
   <xs:simpleType name="tDigitString">
     <xs:annotation>
@@ -348,6 +354,15 @@
     </xs:restriction>
   </xs:simpleType>
 
+  <xs:simpleType name="tTwelveDigits">
+    <xs:annotation>
+      <xs:documentation>an identification string consisting of exactly twelve digits, e.g. UIC ident numbers</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="rail:tDigitString">
+      <xs:length value="12" />
+    </xs:restriction>
+  </xs:simpleType>
+
   <xs:simpleType name="tDoubleList">
     <xs:annotation>
       <xs:documentation>an arbitrary list consisting of xs:double values separated by white space; no length restriction</xs:documentation>
@@ -377,7 +392,7 @@
   <xs:attributeGroup name="anyAttribute">
     <xs:anyAttribute namespace="##other">
       <xs:annotation>
-        <xs:documentation>'any attributes' should be deployed in a foreign namespace</xs:documentation>
+        <xs:documentation>provide an extension point for non-railML 'any attribute' in a foreign namespace</xs:documentation>
       </xs:annotation>
     </xs:anyAttribute>
   </xs:attributeGroup>
diff --git a/schema/infrastructure.xsd b/schema/infrastructure.xsd
index 04d3a32..58e4762 100644
--- a/schema/infrastructure.xsd
+++ b/schema/infrastructure.xsd
@@ -1,12 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
   <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2013" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:xml="https://www.w3.org/XML/1998/namespace" targetNamespace="https://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
-
-    <xs:annotation>
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2016" 
+           xmlns:xs="https://www.w3.org/2001/XMLSchema" 
+           xmlns:xml="https://www.w3.org/XML/1998/namespace" 
+           targetNamespace="https://www.railml.org/schemas/2016" 
+           elementFormDefault="qualified" 
+           version="2.3">
+
+  <xs:annotation>
     <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
-    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.2 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>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/en/user/licence.html</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.3 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" />
@@ -238,6 +243,7 @@
           </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="https://wiki2.railml.org/wiki/IS:tsi" />
             </xs:annotation>
           </xs:element>
@@ -670,6 +676,11 @@
           <xs:documentation source="https://wiki2.railml.org/wiki/IS:gaugeChanges" />
         </xs:annotation>
       </xs:element>
+      <xs:element name="clearanceGaugeChanges" type="rail:eClearanceGaugeChanges" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation source="https://wiki2.railml.org/wiki/IS:clearanceGaugeChanges" />
+        </xs:annotation>
+      </xs:element>
       <xs:element name="geoMappings" type="rail:eGeoMappings" minOccurs="0">
         <xs:annotation>
           <xs:documentation source="https://wiki2.railml.org/wiki/IS:geoMappings" />
@@ -727,30 +738,82 @@
       </xs:element>
     </xs:sequence>
   </xs:complexType>
+  
+  <xs:complexType name="eCrossedElements">
+    <xs:sequence>
+      <xs:element name="crossedElement" type="rail:tCrossedElement" minOccurs="1" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation source="https://wiki2.railml.org/wiki/IS:crossedElement" />
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  
+  <xs:complexType name="eTunnel">
+    <xs:complexContent>
+      <xs:extension base="rail:tTunnel">
+        <xs:sequence>
+          <xs:element name="crossedElements" type="rail:eCrossedElements" minOccurs="0" maxOccurs="1">
+            <xs:annotation>
+              <xs:documentation>list the elements that are crossed by this element</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
   <xs:complexType name="eTunnels">
     <xs:sequence>
-      <xs:element name="tunnel" type="rail:tTunnel" minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="tunnel" type="rail:eTunnel" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation source="https://wiki2.railml.org/wiki/IS:tunnel" />
         </xs:annotation>
       </xs:element>
     </xs:sequence>
   </xs:complexType>
+  
+  <xs:complexType name="eBridge">
+    <xs:complexContent>
+      <xs:extension base="rail:tBridge">
+        <xs:sequence>
+          <xs:element name="crossedElements" type="rail:eCrossedElements" minOccurs="0" maxOccurs="1">
+            <xs:annotation>
+              <xs:documentation>list the elements that are crossed by this element</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
   <xs:complexType name="eBridges">
     <xs:sequence>
-      <xs:element name="brigde" type="rail:tBridge" minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="brigde" type="rail:eBridge" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation source="https://wiki2.railml.org/wiki/IS:brigde" />
         </xs:annotation>
       </xs:element>
     </xs:sequence>
   </xs:complexType>
+  
+  <xs:complexType name="eLevelCrossing">
+    <xs:complexContent>
+      <xs:extension base="rail:tLevelCrossing">
+        <xs:sequence>
+          <xs:element name="crossedElements" type="rail:eCrossedElements" minOccurs="0" maxOccurs="1">
+            <xs:annotation>
+              <xs:documentation>list the elements that are crossed by this element</xs:documentation>
+            </xs:annotation>
+          </xs:element>
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
   <xs:complexType name="eLevelCrossings">
     <xs:sequence>
-      <xs:element name="levelCrossing" type="rail:tLevelCrossing" minOccurs="0" maxOccurs="unbounded">
+      <xs:element name="levelCrossing" type="rail:eLevelCrossing" minOccurs="0" maxOccurs="unbounded">
         <xs:annotation>
           <xs:documentation source="https://wiki2.railml.org/wiki/IS:levelCrossing" />
         </xs:annotation>
@@ -827,6 +890,16 @@
       </xs:element>
     </xs:sequence>
   </xs:complexType>
+  
+  <xs:complexType name="eClearanceGaugeChanges">
+    <xs:sequence>
+      <xs:element name="clearanceGaugeChange" type="rail:tClearanceGaugeChange" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation source="https://wiki2.railml.org/wiki/IS:clearanceGaugeChange" />
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
 
   <xs:complexType name="eGeoMappings">
     <xs:sequence>
@@ -900,6 +973,11 @@
           <xs:documentation source="https://wiki2.railml.org/wiki/IS:derailers" />
         </xs:annotation>
       </xs:element>
+      <xs:element name="trainRadioChanges" type="rail:eTrainRadioChanges" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation source="https://wiki2.railml.org/wiki/IS:trainRadios" />
+        </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>
@@ -1012,6 +1090,16 @@
     </xs:sequence>
   </xs:complexType>
   
+  <xs:complexType name="eTrainRadioChanges">
+    <xs:sequence>
+      <xs:element name="trainRadioChange" type="rail:tTrainRadioChange" minOccurs="1" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>start of section with certain train radio system installed at the infrastructure</xs:documentation>
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+  
   <xs:complexType name="eInfraAttrGroupRefs">
     <xs:sequence>
       <xs:element name="infraAttrGroupRef" type="rail:tElementWithReference" minOccurs="0" maxOccurs="unbounded">
@@ -1062,6 +1150,11 @@
               <xs:documentation source="https://wiki2.railml.org/wiki/IS:gauge" />
             </xs:annotation>
           </xs:element>
+          <xs:element name="clearanceGauge" type="rail:tClearanceGaugeType" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation source="https://wiki2.railml.org/wiki/IS:clearanceGauge" />
+            </xs:annotation>
+          </xs:element>
           <xs:element name="speeds" type="rail:eSpeeds" minOccurs="0">
             <xs:annotation>
               <xs:documentation source="https://wiki2.railml.org/wiki/IS:speeds" />
@@ -1072,6 +1165,11 @@
               <xs:documentation source="https://wiki2.railml.org/wiki/IS:epsgCode" />
             </xs:annotation>
           </xs:element>
+          <xs:element name="trainRadio" type="rail:tTrainRadioAttributes" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation source="https://wiki2.railml.org/wiki/IS:trainRadio" />
+            </xs:annotation>
+          </xs:element>
           <xs:element name="generalInfraAttributes" type="rail:eGeneralInfraAttributes" minOccurs="0">
             <xs:annotation>
               <xs:documentation source="https://wiki2.railml.org/wiki/IS:generalInfraAttributes" />
diff --git a/schema/infrastructureTypes.xsd b/schema/infrastructureTypes.xsd
index 3cf8177..ec81ab1 100644
--- a/schema/infrastructureTypes.xsd
+++ b/schema/infrastructureTypes.xsd
@@ -1,12 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
   <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2013" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:xml="https://www.w3.org/XML/1998/namespace" targetNamespace="https://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2016" 
+           xmlns:xs="https://www.w3.org/2001/XMLSchema" 
+           xmlns:xml="https://www.w3.org/XML/1998/namespace" 
+           targetNamespace="https://www.railml.org/schemas/2016" 
+           elementFormDefault="qualified" 
+           version="2.3">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
-    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.2 Definition of attribute groups, simple and complex types, used by infrastructure sub schema (IS)</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/en/user/licence.html</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.3 Definition of attribute groups, simple and complex types, used by infrastructure sub schema (IS)</xs:documentation>
   </xs:annotation>
 
   <xs:include schemaLocation="railwayUnits.xsd" />
@@ -374,6 +379,9 @@
   </xs:complexType>
 
   <xs:complexType name="tOcpTsi">
+    <xs:annotation>
+      <xs:documentation>DEPRECATED. Use register entry "PrimaryLocationCode" instead.</xs:documentation>
+    </xs:annotation>
     <xs:attribute name="country" type="rail:tTwoDigits" />
     <xs:attribute name="location" type="rail:tFiveDigits" />
     <xs:attribute name="check" type="rail:tOneDigit" />
@@ -522,7 +530,7 @@
     </xs:attribute>
     <xs:attribute ref="xml:lang">
       <xs:annotation>
-        <xs:documentation>natural language identification according to https://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation>
+        <xs: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">
@@ -773,8 +781,8 @@
 
   <xs:attributeGroup name="aElectrification">
     <xs:attribute name="type" type="rail:tElectrificationType" default="none" />
-    <xs:attribute name="voltage" type="rail:tVoltageVolt" default="15000" />
-    <xs:attribute name="frequency" type="rail:tFrequencyHertz" default="16.667" />
+    <xs:attribute name="voltage" type="rail:tVoltageVolt" default="0" />
+    <xs:attribute name="frequency" type="rail:tFrequencyHertz" default="0" />
   </xs:attributeGroup>
 
   <xs:complexType name="tElectrificationChange">
@@ -803,6 +811,10 @@
   <xs:attributeGroup name="aGauge">
     <xs:attribute name="value" type="rail:tLengthMM" default="1435" />
   </xs:attributeGroup>
+  
+  <xs:complexType name="tTrainRadioAttributes">
+    <xs:attributeGroup ref="rail:aTrainRadioInfrastructure" />
+  </xs:complexType>
 
   <xs:complexType name="tGaugeChange">
     <xs:complexContent>
@@ -812,6 +824,16 @@
     </xs:complexContent>
   </xs:complexType>
 
+  <xs:complexType name="tClearanceGaugeChange">
+    <xs:complexContent>
+      <xs:extension base="rail:tStrictOrientedElement">
+        <xs:sequence>
+          <xs:element name="clearanceGauge" type="rail:tClearanceGaugeType" />
+        </xs:sequence>
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
   <xs:complexType name="tPowerTransmission">
     <xs:attributeGroup ref="rail:aPowerTransmission" />
   </xs:complexType>
@@ -1039,6 +1061,24 @@
       </xs:simpleType>
     </xs:union>
   </xs:simpleType>
+  
+  <xs:attributeGroup name="aLine">
+    <xs:attribute name="type" type="rail:tLineType">
+      <xs:annotation>
+        <xs:documentation>distinguish between different line type: main line, secondary line...</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="infrastructureManagerRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>reference to the infrastructure manager entry</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="lineCategory" type="rail:tLineClassificationType">
+      <xs:annotation>
+        <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:attributeGroup>
 
   <xs:complexType name="tLine">
     <xs:complexContent>
@@ -1051,12 +1091,7 @@
             </xs:annotation>
           </xs:element>
         </xs:sequence>
-        <xs:attribute name="type" type="rail:tLineType" />
-        <xs:attribute name="infrastructureManagerRef" type="rail:tGenericRef">
-          <xs:annotation>
-            <xs:documentation>reference to the infrastructure manager entry</xs:documentation>
-          </xs:annotation>
-        </xs:attribute>
+        <xs:attributeGroup ref="rail:aLine" />
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -1241,12 +1276,29 @@
       </xs:annotation>
     </xs:attribute>
     <xs:attribute name="status" type="xs:string" />
-    <xs:attribute name="vMax" type="rail:tSpeedKmPerHour" use="required">
+    <xs:attribute name="vMax" type="rail:tVMax" use="required">
       <xs:annotation>
         <xs:documentation>maximum allowed speed in km/h</xs:documentation>
       </xs:annotation>
     </xs:attribute>
   </xs:attributeGroup>
+  
+  <xs:simpleType name="tVMax">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="rail:tSpeedKmPerHour" />
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="end" >
+            <xs:annotation>
+              <xs:documentation>The value 'end' should be used for marking the end of temporary speed restrictions, otherwise define the next speed aspect.</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
 
   <xs:complexType name="tSpeedInfo">
     <xs:attributeGroup ref="rail:aSpeed" />
@@ -1392,6 +1444,85 @@
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
+  
+  <xs:simpleType name="tCrossedElementType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="highway:cycleway">
+            <xs:annotation>
+              <xs:documentation source="https://wiki.openstreetmap.org/wiki/Tag:highway%3Dcycleway" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="highway:footway">
+            <xs:annotation>
+              <xs:documentation source="https://wiki.openstreetmap.org/wiki/Tag:highway%3Dfootway" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="highway:motorway">
+            <xs:annotation>
+              <xs:documentation source="https://wiki.openstreetmap.org/wiki/Tag:highway%3Dmotorway" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="highway:road">
+            <xs:annotation>
+              <xs:documentation source="https://wiki.openstreetmap.org/wiki/Tag:highway%3Droad" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="natural:peak">
+            <xs:annotation>
+              <xs:documentation source="https://wiki.openstreetmap.org/wiki/Tag:natural%3Dpeak" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="natural:ridge">
+            <xs:annotation>
+              <xs:documentation source="https://wiki.openstreetmap.org/wiki/Tag:natural%3Dridge" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="natural:valley">
+            <xs:annotation>
+              <xs:documentation source="https://wiki.openstreetmap.org/wiki/Tag:natural%3Dvalley" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="natural:water">
+            <xs:annotation>
+              <xs:documentation source="https://wiki.openstreetmap.org/wiki/Tag:natural%3Dwater" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="waterway:river">
+            <xs:annotation>
+              <xs:documentation source="https://wiki.openstreetmap.org/wiki/Tag:waterway%3Driver" />
+            </xs:annotation>
+          </xs:enumeration>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+  
+  <xs:attributeGroup name="aCrossedElement">
+    <xs:attribute name="type" type="rail:tCrossedElementType" use="required">
+      <xs:annotation>
+        <xs:documentation>the type of element crossed by this element</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="pos" type="rail:tLengthM">
+      <xs:annotation>
+        <xs:documentation>the relative position of the center of the crossed element as distance from begin of track</xs:documentation>
+        <xs:documentation>this value must be within the position range of the parent element</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+  
+  <xs:complexType name="tCrossedElement">
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aCrossedElement" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
 
   <xs:complexType name="tLevelCrossing">
     <xs:complexContent>
@@ -1428,12 +1559,81 @@
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
+  
+  <xs:simpleType name="tHorizontalCurveType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="TS_cubicParabola">
+            <xs:annotation>
+              <xs:documentation>begin of transition curve of type cubic parabola</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="TS_parabola4">
+            <xs:annotation>
+              <xs:documentation>begin of transition curve of type 4th degree parabola</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="TS_clothoide">
+            <xs:annotation>
+              <xs:documentation>begin of transition curve of type clothoide</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="TS_WienerBogen">
+            <xs:annotation>
+              <xs:documentation>begin of transition curve of type Wiener Bogen</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="TS_BlossBogen">
+            <xs:annotation>
+              <xs:documentation>begin of transition curve of type Bloss Bogen</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="TS_Sinusoide">
+            <xs:annotation>
+              <xs:documentation>begin of transition curve of type Sinusoide</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="TS_Cosinusoide">
+            <xs:annotation>
+              <xs:documentation>begin of transition curve of type Cosinusoide</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="SC">
+            <xs:annotation>
+              <xs:documentation>end of transition curve (spiral - curve)</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+  
+  <xs:attributeGroup name="aRadiusChange">
+    <xs:attribute name="radius" type="rail:tRadiusM" use="required">
+      <xs:annotation>
+        <xs:documentation>The radius of the track in [m], which is either valid exactly at this point or from here until the next radiusChange element.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="superelevation" type="rail:tLengthMM">
+      <xs:annotation>
+        <xs:documentation>The superelevation of the track in [mm], which is either valid exactly at this point of from here until the next radiusChange element.</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="geometryElementDescription" type="rail:tHorizontalCurveType">
+      <xs:annotation>
+        <xs:documentation>Specific geometric description either of this point or of the curve between this and the next radiusChange element (shall be used in particular for transition curves).</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
 
   <xs:complexType name="tRadiusChange">
     <xs:complexContent>
       <xs:extension base="rail:tStrictOrientedElement">
-        <xs:attribute name="radius" type="rail:tRadiusM" use="required" />
-        <xs:attribute name="superelevation" type="rail:tLengthMM" />
+        <xs:attributeGroup ref="rail:aRadiusChange" />
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
@@ -2139,6 +2339,19 @@
     </xs:complexContent>
   </xs:complexType>
   
+  <xs:complexType name="tTrainRadioChange">
+    <xs:complexContent>
+      <xs:extension base="rail:tOrientedElement">
+        <xs:attributeGroup ref="rail:aTrainRadioInfrastructure" />
+        <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:simpleType name="tDerailKind">
     <xs:restriction base="xs:string">
       <xs:enumeration value="blockDerail">
@@ -2259,5 +2472,78 @@
     <xs:attribute name="name" type="xs:string" use="required" />
     <xs:attribute name="value" type="xs:string" use="required" />
   </xs:complexType>
+  
+  <!-- simple types -->
+  
+  <xs:simpleType name="tTrainRadioNetworkSelection">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="manually" />
+          <xs:enumeration value="byBalise" />
+          <xs:enumeration value="automatic" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+  
+  <xs:simpleType name="tTrainRadioSystem">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="GSM-R" />
+          <xs:enumeration value="otherDigitalRadio" />
+          <xs:enumeration value="analogLocalRadio" />
+          <xs:enumeration value="analogDistantRadio" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
+  
+  <!-- attribute groups -->
+  
+  <xs:attributeGroup name="aTrainRadioInfrastructure">
+    <xs:attribute name="radioSystem" type="rail:tTrainRadioSystem" use="required">
+      <xs:annotation>
+        <xs:documentation>the train radio system, e.g. 'GSM-R'</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="networkSelection" type="rail:tTrainRadioNetworkSelection">
+      <xs:annotation>
+        <xs:documentation>defines the procedure of train radio network selection</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="publicEmergency" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>defines whether public emergency calls are available</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="broadcastCalls" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>defines whether broadcast call functionality is available</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="textMessageService" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>defines whether text message service (SMS) is available</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="directMode" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>defines whether direct mode train radio is available</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="publicNetworkRoaming" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>defines whether roaming via public networks is available</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
 
 </xs:schema>
diff --git a/schema/physicalUnits.xsd b/schema/physicalUnits.xsd
index 5faf186..858e259 100644
--- a/schema/physicalUnits.xsd
+++ b/schema/physicalUnits.xsd
@@ -1,12 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
   <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2013" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="https://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2016" 
+           xmlns:xs="https://www.w3.org/2001/XMLSchema" 
+           targetNamespace="https://www.railml.org/schemas/2016" 
+           elementFormDefault="qualified" 
+           version="2.3">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
-    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: https://www.railml.org</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.2 Definition of simple types, which represent general units of measure, used by all sub schemas</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/en/user/licence.html</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.3 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 94cc257..03a324f 100644
--- a/schema/railML.xsd
+++ b/schema/railML.xsd
@@ -1,12 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
   <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2013" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:dc="https://purl.org/dc/elements/1.1/" targetNamespace="https://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2016" 
+           xmlns:xs="https://www.w3.org/2001/XMLSchema" 
+           xmlns:dc="https://purl.org/dc/elements/1.1/" 
+           targetNamespace="https://www.railml.org/schemas/2016" 
+           elementFormDefault="qualified" 
+           version="2.3">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
-    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.2 Definition of root element "railml", refers to elements of all sub schemas from "xs:include" paths</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/en/user/licence.html</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.3 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" />
diff --git a/schema/railwayBaseTypes.xsd b/schema/railwayBaseTypes.xsd
index 5ed0fb5..a3285c4 100644
--- a/schema/railwayBaseTypes.xsd
+++ b/schema/railwayBaseTypes.xsd
@@ -1,12 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
-  <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2013" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:dc="https://purl.org/dc/elements/1.1/" targetNamespace="https://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2016" 
+           xmlns:xs="https://www.w3.org/2001/XMLSchema" 
+           xmlns:dc="https://purl.org/dc/elements/1.1/" 
+           targetNamespace="https://www.railml.org/schemas/2016" 
+           elementFormDefault="qualified" 
+           version="2.3">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
-    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.2 Definition of attribute groups, simple and complex types, used by more than one sub schema</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/en/user/licence.html</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.3 Definition of attribute groups, simple and complex types, used by more than one sub schema</xs:documentation>
   </xs:annotation>
 
   <xs:include schemaLocation="genericRailML.xsd" />
@@ -65,6 +70,7 @@
         </xs:annotation>
         <xs:complexType>
           <xs:attributeGroup ref="rail:aAuxiliaryBrakes" />
+          <xs:attributeGroup ref="rail:anyAttribute" />
         </xs:complexType>
       </xs:element>
     </xs:sequence>
@@ -289,6 +295,18 @@
 
   <xs:attributeGroup name="aPlaces">
     <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 (https://www.era.europa.eu/Document-Register/Documents/ERA_TAP_Passenger_Code_List_1.3.1.xsd)</xs:documentation>
+        <xs:documentation source="https://www.era.europa.eu/Document-Register/Pages/TAP-TSI.aspx" />
+      </xs:annotation>
+      <xs:simpleType>
+        <xs:restriction base="rail:tDigitString">
+          <xs:maxLength value="3"/>
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
     <xs:attribute name="count" type="rail:tCounter" use="required">
       <xs:annotation>
         <xs:documentation>count="0" means: there is no place of this category</xs:documentation>
@@ -336,6 +354,18 @@
 
   <xs:attributeGroup name="aService">
     <xs:attribute name="name" type="rail:tGenericName" use="required" />
+    <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 (https://www.era.europa.eu/Document-Register/Documents/ERA_TAP_Passenger_Code_List_1.3.1.xsd)</xs:documentation>
+        <xs:documentation source="https://www.era.europa.eu/Document-Register/Pages/TAP-TSI.aspx" />
+      </xs:annotation>
+      <xs:simpleType>
+        <xs:restriction base="rail:tDigitString">
+          <xs:maxLength value="3" />
+        </xs:restriction>
+      </xs:simpleType>
+    </xs:attribute>
     <xs:attribute name="count" type="rail:tCounter" use="required">
       <xs:annotation>
         <xs:documentation>count="0" means: there is not such a service</xs:documentation>
@@ -370,27 +400,73 @@
 
   <xs:simpleType name="tLineClassificationType">
     <xs:annotation>
-      <xs:documentation>according RIV</xs:documentation>
+      <xs:documentation>according EN 15528 (other national values also possible)</xs:documentation>
     </xs:annotation>
     <xs:union>
       <xs:simpleType>
         <xs:restriction base="xs:string">
-          <xs:enumeration value="A" />
-          <xs:enumeration value="B1" />
-          <xs:enumeration value="B2" />
-          <xs:enumeration value="B3" />
-          <xs:enumeration value="B4" />
-          <xs:enumeration value="C1" />
-          <xs:enumeration value="C2" />
-          <xs:enumeration value="C3" />
-          <xs:enumeration value="C4" />
-          <xs:enumeration value="CM2" />
-          <xs:enumeration value="CM3" />
-          <xs:enumeration value="CM4" />
-          <xs:enumeration value="D2" />
-          <xs:enumeration value="D3" />
-          <xs:enumeration value="D4" />
-          <xs:enumeration value="E" />
+          <xs:enumeration value="A">
+            <xs:annotation>
+              <xs:documentation>axle load: 16.0 t, meter load: 5.0 t/m</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="B1">
+            <xs:annotation>
+              <xs:documentation>axle load: 18.0 t, meter load: 5.0 t/m</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="B2">
+            <xs:annotation>
+              <xs:documentation>axle load: 18.0 t, meter load: 6.4 t/m</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="C2">
+            <xs:annotation>
+              <xs:documentation>axle load: 20.0 t, meter load: 6.4 t/m</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="C3">
+            <xs:annotation>
+              <xs:documentation>axle load: 20.0 t, meter load: 7.2 t/m</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="C4">
+            <xs:annotation>
+              <xs:documentation>axle load: 20.0 t, meter load: 8.0 t/m</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="D2">
+            <xs:annotation>
+              <xs:documentation>axle load: 22.5 t, meter load: 6.4 t/m</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="D3">
+            <xs:annotation>
+              <xs:documentation>axle load: 22.5 t, meter load: 7.2 t/m</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="D4">
+            <xs:annotation>
+              <xs:documentation>axle load: 22.5 t, meter load: 8.0 t/m</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="D4xL">
+            <xs:annotation>
+              <xs:documentation>only valid for locomotives</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="E4">
+            <xs:annotation>
+              <xs:documentation>axle load: 25.0 t, meter load: 8.0 t/m</xs:documentation>
+              <xs:documentation>only valid for freight cars</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="E5">
+            <xs:annotation>
+              <xs:documentation>axle load: 25.0 t, meter load: 8.8 t/m</xs:documentation>
+              <xs:documentation>only valid for freight cars</xs:documentation>
+            </xs:annotation>
+          </xs:enumeration>
         </xs:restriction>
       </xs:simpleType>
       <xs:simpleType>
@@ -399,6 +475,22 @@
     </xs:union>
   </xs:simpleType>
 
+  <xs:complexType name="tClearanceGaugeType">
+    <xs:annotation>
+      <xs:documentation>data about all compatible clearance gauges of the vehicle</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aClearanceGauge" />
+  </xs:complexType>
+
+  <xs:attributeGroup name="aClearanceGauge">
+    <xs:attribute name="code" type="xs:string" use="required">
+      <xs:annotation>
+        <xs:documentation>code name of the train clearance gauge</xs:documentation>
+        <xs:documentation>use value from the separate code definition file 'TrainClearanceGauges.xml'/trainClearanceGauge</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
   <xs:complexType name="tTilting">
     <xs:annotation>
       <xs:documentation>data for tilting mechanism of passenger cars</xs:documentation>
@@ -594,5 +686,4 @@
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
-
 </xs:schema>
diff --git a/schema/railwayUnits.xsd b/schema/railwayUnits.xsd
index 4918f7b..3c08f58 100644
--- a/schema/railwayUnits.xsd
+++ b/schema/railwayUnits.xsd
@@ -1,12 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
   <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2013" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="https://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2016" 
+           xmlns:xs="https://www.w3.org/2001/XMLSchema" 
+           targetNamespace="https://www.railml.org/schemas/2016" 
+           elementFormDefault="qualified" 
+           version="2.3">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
-    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.2 Definition of simple types, which represent railway specific units of measure and enumeration lists, used by all sub schemas</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/en/user/licence.html</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.3 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" />
diff --git a/schema/rollingstock.xsd b/schema/rollingstock.xsd
index 40d7368..84f83cc 100644
--- a/schema/rollingstock.xsd
+++ b/schema/rollingstock.xsd
@@ -1,11 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
   <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2013" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:xml="https://www.w3.org/XML/1998/namespace" targetNamespace="https://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2016" 
+           xmlns:xs="https://www.w3.org/2001/XMLSchema" 
+           xmlns:xml="https://www.w3.org/XML/1998/namespace" 
+           targetNamespace="https://www.railml.org/schemas/2016" 
+           elementFormDefault="qualified" 
+           version="2.3">
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
-    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.2 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>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/en/user/licence.html</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.3 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" />
@@ -128,6 +133,8 @@
               <xs:documentation source="https://wiki2.railml.org/wiki/RS:curvingLimitation" />
             </xs:annotation>
           </xs:element>
+          <xs:element name="maintenanceIntervals" type="rail:eMaintenanceIntervals" minOccurs="0">
+          </xs:element>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -141,7 +148,7 @@
           <xs:documentation source="https://wiki2.railml.org/wiki/RS:manufacturer" />
         </xs:annotation>
       </xs:element>
-      <xs:element name="operator" type="rail:tOperator" minOccurs="0" maxOccurs="unbounded">
+      <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="https://wiki2.railml.org/wiki/RS:operator" />
@@ -149,6 +156,21 @@
       </xs:element>
     </xs:sequence>
   </xs:complexType>
+  
+  <xs:complexType name="eOperator">
+  	<xs:complexContent>
+  	  <xs:extension base="rail:tOperator">
+  		<xs:sequence>
+  		  <xs:element name="vehicleIdentification" type="rail:tVehicleIdentification" minOccurs="0" maxOccurs="1">
+  		    <xs:annotation>
+  		      <xs:documentation>vehicle identification as described by EU paper DV51EN01 annex P or UIC 438</xs:documentation>
+  		      <xs:documentation source="https://wiki2.railml.org/wiki/RS:vehicleIdentification" />
+  		    </xs:annotation>
+  		  </xs:element>
+  		</xs:sequence>	
+  	  </xs:extension>
+  	</xs:complexContent>
+  </xs:complexType>
 
   <xs:complexType name="eEngine">
     <xs:annotation>
@@ -581,6 +603,12 @@
               <xs:documentation source="https://wiki2.railml.org/wiki/RS:couplers" />
             </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="https://wiki2.railml.org/wiki/RS:trainClearanceGauge" />
+            </xs:annotation>
+          </xs:element>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -728,6 +756,13 @@
       </xs:extension>
     </xs:complexContent>
   </xs:complexType>
+  
+  <xs:complexType name="eMaintenanceIntervals">
+    <xs:sequence>
+      <xs:element name="maintenanceInterval" type="rail:tMaintenanceInterval" minOccurs="0">
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
 
   <xs:complexType name="eLoadLimitMatrix">
     <xs:complexContent>
diff --git a/schema/rollingstockTypes.xsd b/schema/rollingstockTypes.xsd
index 678af0e..9ed79ae 100644
--- a/schema/rollingstockTypes.xsd
+++ b/schema/rollingstockTypes.xsd
@@ -1,11 +1,15 @@
 <?xml version="1.0" encoding="UTF-8"?>
   <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2013" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="https://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2016" 
+           xmlns:xs="https://www.w3.org/2001/XMLSchema" 
+           targetNamespace="https://www.railml.org/schemas/2016" 
+           elementFormDefault="qualified" 
+           version="2.3">
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
-    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.2 Definition of attribute groups, simple and complex types, used by rollingstock sub schema (RS)</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/en/user/licence.html</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.3 Definition of attribute groups, simple and complex types, used by rollingstock sub schema (RS)</xs:documentation>
   </xs:annotation>
 
   <xs:include schemaLocation="railwayUnits.xsd" />
@@ -52,6 +56,11 @@
         <xs:documentation>reference to 'id' in vehicle data in order to obtain all data common for the vehicle family not explicitly specified in this element of an individual vehicle</xs:documentation>
       </xs:annotation>
     </xs:attribute>
+    <xs:attribute name="vehicleCategory" type="rail:tVehicleCategoryType">
+      <xs:annotation>
+        <xs:documentation>basic vehicle category used for train formation planning</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
     <xs:attribute name="axleSequence" type="xs:string">
       <xs:annotation>
         <xs:documentation>description of axle sequence</xs:documentation>
@@ -148,6 +157,23 @@
       </xs:annotation>
     </xs:attribute>
   </xs:attributeGroup>
+  
+  <xs:simpleType name="tVehicleCategoryType">
+    <xs:union>
+      <xs:simpleType>
+        <xs:restriction base="xs:string">
+          <xs:enumeration value="coach" />
+          <xs:enumeration value="motorCoach" />
+          <xs:enumeration value="controlCabCoach" />
+          <xs:enumeration value="motorVehicles" />
+          <xs:enumeration value="freightWagon" />
+        </xs:restriction>
+      </xs:simpleType>
+      <xs:simpleType>
+        <xs:restriction base="rail:tOtherEnumerationValue" />
+      </xs:simpleType>
+    </xs:union>
+  </xs:simpleType>
 
   <xs:complexType name="tManufacturer">
     <xs:annotation>
@@ -205,6 +231,31 @@
     </xs:attribute>
   </xs:attributeGroup>
 
+  <xs:complexType name="tVehicleIdentification">
+    <xs:annotation>
+      <xs:documentation>container for the vehicle identification described by EU paper DV51EN01 annex P or UIC 438</xs:documentation>
+    </xs:annotation>
+    <xs:attributeGroup ref="rail:aVehicleIdentification" />
+  </xs:complexType>
+  
+  <xs:attributeGroup name="aVehicleIdentification">
+  	<xs:attribute name="uicIdentNumber" type="rail:tTwelveDigits" use="required">
+  	  <xs:annotation>
+  	    <xs:documentation>the UIC identification number with 12 digits</xs:documentation>
+  	  </xs:annotation>
+  	</xs:attribute>
+    <xs:attribute name="countryCode" type="rail:tThreeLetterString">
+  	  <xs:annotation>
+  	    <xs:documentation>code for the registered country (one to three letters)</xs:documentation>
+  	  </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="vehicleKeeperMarking" type="rail:tFiveLetterString">
+  	  <xs:annotation>
+  	    <xs:documentation>code for the vehicle ownwer (one to five letters)</xs:documentation>
+  	  </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
+
   <xs:complexType name="tEngine">
     <xs:annotation>
       <xs:documentation>engine data about a motor car or locomotive</xs:documentation>
@@ -1924,6 +1975,30 @@
       </xs:annotation>
     </xs:attribute>
   </xs:attributeGroup>
+  
+  <xs:complexType name="tMaintenanceInterval">
+    <xs:annotation>
+      <xs:documentation>description of a regular maintenance task</xs:documentation>
+    </xs:annotation>
+    <xs:complexContent>
+      <xs:extension base="rail:tElementWithIDAndName">
+        <xs:attributeGroup ref="rail:aMaintenanceInterval" />
+      </xs:extension>
+    </xs:complexContent>
+  </xs:complexType>
+
+  <xs:attributeGroup name="aMaintenanceInterval">
+    <xs:attribute name="maximumIntervalDays" type="rail:tCounter">
+      <xs:annotation>
+        <xs:documentation>maximum number of days for the interval until the task is due</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+    <xs:attribute name="maximumIntervalDistance" type="rail:tLengthKM">
+      <xs:annotation>
+        <xs:documentation>maximum number of mileage in km for the interval until the task is due</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
+  </xs:attributeGroup>
 
   <xs:simpleType name="tPropulsionControlType">
     <xs:union>
diff --git a/schema/timetable.xsd b/schema/timetable.xsd
index 2a6c84d..30d721b 100644
--- a/schema/timetable.xsd
+++ b/schema/timetable.xsd
@@ -1,12 +1,16 @@
 <?xml version="1.0" encoding="UTF-8"?>
-  <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2013" xmlns:xs="https://www.w3.org/2001/XMLSchema" targetNamespace="https://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2016" 
+           xmlns:xs="https://www.w3.org/2001/XMLSchema" 
+           targetNamespace="https://www.railml.org/schemas/2016" 
+           elementFormDefault="qualified" 
+           version="2.3">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
-    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.2 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>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/en/user/licence.html</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.3 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" />
@@ -282,6 +286,11 @@
 
   <xs:complexType name="ePassengerFacilityTT">
     <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: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>
@@ -337,7 +346,7 @@
     <xs:complexContent>
       <xs:extension base="rail:tAnnotation">
         <xs:sequence>
-          <xs:element name="text" type="rail:eAnnotationText" maxOccurs="unbounded">
+          <xs:element name="text" type="rail:tAnnotationText" maxOccurs="unbounded">
             <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="https://wiki2.railml.org/wiki/TT:text_annotation" />
@@ -348,12 +357,6 @@
     </xs:complexContent>
   </xs:complexType>
 
-  <xs:complexType name="eAnnotationText">
-    <xs:complexContent>
-      <xs:extension base="rail:tAnnotationText" />
-    </xs:complexContent>
-  </xs:complexType>
-
   <xs:complexType name="eTrainParts">
     <xs:sequence>
       <xs:element name="trainPart" type="rail:eTrainPart" maxOccurs="unbounded">
@@ -484,6 +487,7 @@
     <xs:complexContent>
       <xs:extension base="rail:tConnectionTT">
         <xs:sequence>
+          <xs:element name="externalReference" type="rail:eExternalReference" minOccurs="0"/>
           <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>
@@ -495,6 +499,38 @@
     </xs:complexContent>
   </xs:complexType>
 
+  <xs:complexType name="eExternalReference">
+    <xs:sequence>
+      <xs:element name="tafTapTsiTrainID" type="rail:eTapTsiTransportOperationalIdentifier" minOccurs="0" />
+      <xs:element name="trainNumber" minOccurs="0">
+        <xs:complexType>
+          <xs:sequence>
+            <xs:element name="organizationalUnitBinding" type="rail:eOrganizationalUnitBinding" minOccurs="0">
+              <xs:annotation>
+                <xs:documentation source="https://wiki2.railml.org/wiki/TT:organizationalUnitBinding"/>
+              </xs:annotation>
+            </xs:element>
+          </xs:sequence>
+          <xs:attribute name="trainNumber" type="xs:string"/>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="lineNumber" minOccurs="0">
+        <xs:complexType>
+          <xs:attribute name="lineNumber" type="xs:string"/>
+        </xs:complexType>
+      </xs:element>
+      <xs:element name="information" minOccurs="0">
+        <xs:complexType>
+          <xs:attribute name="description" type="xs:string">
+            <xs:annotation>
+              <xs:documentation>Enter the description of the connection - e.g. 'Connection to Berlin via Wolfsburg'</xs:documentation>
+            </xs:annotation>
+          </xs:attribute>
+        </xs:complexType>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
+
   <xs:complexType name="eStatistics">
     <xs:sequence>
       <xs:element name="statistic" type="rail:eStatistic" minOccurs="0" maxOccurs="unbounded">
@@ -640,6 +676,12 @@
               <xs:documentation source="https://wiki2.railml.org/wiki/TT:trainPartSequence" />
             </xs:annotation>
           </xs:element>
+          <xs:element name="tafTapTsiTrainID" type="rail:eTapTsiTransportOperationalIdentifier" minOccurs="0" maxOccurs="1">
+            <xs:annotation>
+              <xs:documentation>Optional information corresponding to the TAF/TAP TSI train ID.</xs:documentation>
+              <xs:documentation source="https://wiki2.railml.org/wiki/TT:tafTapTsiTrainID" />
+            </xs:annotation>
+          </xs:element>
         </xs:sequence>
       </xs:extension>
     </xs:complexContent>
@@ -678,6 +720,13 @@
   <xs:complexType name="eBrakeUsage">
     <xs:complexContent>
       <xs:extension base="rail:tBasicBrakeType">
+        <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:aBrakeUsage" />
       </xs:extension>
     </xs:complexContent>
@@ -787,7 +836,11 @@
           <xs:documentation source="https://wiki2.railml.org/wiki/TT:blockPart" />
         </xs:annotation>
       </xs:element>
-      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded" />
+      <xs:any namespace="##other" processContents="strict" minOccurs="0" maxOccurs="unbounded">
+        <xs:annotation>
+          <xs:documentation>DEPRECATED: The blockParts element is only the container for blockPart and shall not be extended.</xs:documentation>
+        </xs:annotation>
+      </xs:any>
     </xs:sequence>
   </xs:complexType>
 
@@ -801,4 +854,11 @@
     </xs:sequence>
   </xs:complexType>
 
+  <!-- TAP TSI elements for the unique train ID -->
+  <xs:complexType name="eTapTsiTransportOperationalIdentifier">
+    <xs:complexContent>
+      <xs:extension base="rail:tTapTsiCompositIdentifierOperationalType"/>
+    </xs:complexContent>
+  </xs:complexType>
+
 </xs:schema>
diff --git a/schema/timetableTypes.xsd b/schema/timetableTypes.xsd
index a5781b0..986c8aa 100644
--- a/schema/timetableTypes.xsd
+++ b/schema/timetableTypes.xsd
@@ -1,12 +1,17 @@
 <?xml version="1.0" encoding="UTF-8"?>
-  <!-- $Id$ -->
-<xs:schema xmlns:rail="https://www.railml.org/schemas/2013" xmlns:xs="https://www.w3.org/2001/XMLSchema" xmlns:xml="https://www.w3.org/XML/1998/namespace" targetNamespace="https://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<!-- $Id$ -->
+<xs:schema xmlns:rail="https://www.railml.org/schemas/2016" 
+           xmlns:xs="https://www.w3.org/2001/XMLSchema" 
+           xmlns:xml="https://www.w3.org/XML/1998/namespace" 
+           targetNamespace="https://www.railml.org/schemas/2016" 
+           elementFormDefault="qualified" 
+           version="2.3">
 
   <xs:annotation>
     <xs:documentation>Copyright (c) railML.org; All Rights Reserved.</xs:documentation>
-    <xs:documentation>This work is licensed under a Creative Commons Attribution 2.0 License. https://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: https://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.2 Definition of attribute groups, simple and complex types, used by timetable sub schema (TT)</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/en/user/licence.html</xs:documentation>
+    <xs:documentation>Content of this file: XML Schema for railML(R) 2.3 Definition of attribute groups, simple and complex types, used by timetable sub schema (TT)</xs:documentation>
   </xs:annotation>
 
   <xs:include schemaLocation="railwayUnits.xsd" />
@@ -51,6 +56,7 @@
 
   <xs:complexType name="tSpecialService">
     <xs:attributeGroup ref="rail:aSpecialService" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aSpecialService">
@@ -61,8 +67,16 @@
   </xs:attributeGroup>
 
   <xs:complexType name="tOperatingDay">
+    <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:aOperatingCode" />
     <xs:attributeGroup ref="rail:aTimePeriod" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aOperatingCode">
@@ -77,6 +91,7 @@
   <xs:complexType name="tOperatingDayDeviance">
     <xs:attributeGroup ref="rail:aOperatingCode" />
     <xs:attributeGroup ref="rail:aOperatingDayDeviance" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aOperatingDayDeviance">
@@ -86,6 +101,7 @@
 
   <xs:complexType name="tHoliday">
     <xs:attributeGroup ref="rail:aHoliday" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aHoliday">
@@ -107,7 +123,15 @@
   </xs:attributeGroup>
 
   <xs:complexType name="tFormationTT">
+    <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:aFormationTT" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aFormationTT">
@@ -146,7 +170,6 @@
         <xs:documentation>indicates, that the formation is not as referenced but in the reversed order</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:attributeGroup>
 
   <xs:complexType name="tPlacesTT">
@@ -159,10 +182,19 @@
         <xs:documentation>is needed to define a mandatory reservation for "places" in general and for bicycles in special</xs:documentation>
       </xs:annotation>
     </xs:attribute>
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:complexType name="tEquipment">
+    <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:aEquipment" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aEquipment">
@@ -173,11 +205,11 @@
     </xs:attribute>
     <xs:attribute name="uses" type="xs:boolean" />
     <xs:attribute name="description" type="xs:string" />
-    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:attributeGroup>
 
   <xs:complexType name="tEtcsTT">
     <xs:attributeGroup ref="rail:aETCS" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aBrakeUsage">
@@ -201,6 +233,7 @@
 
   <xs:complexType name="tBooking">
     <xs:attributeGroup ref="rail:aBooking" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aBooking">
@@ -263,7 +296,16 @@
     <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:attribute name="operator" type="xs:string" >
+      <xs:annotation>
+        <xs:documentation>DEPRECATED: the "organizationalUnitBinding" should be used instead</xs:documentation>
+      </xs:annotation>
+    </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:annotation>
+    </xs:attribute>
   </xs:attributeGroup>
 
   <xs:complexType name="tTrain">
@@ -285,6 +327,11 @@
         <xs:documentation>a free attribute for further descriptions</xs:documentation>
       </xs:annotation>
     </xs:attribute>
+    <xs:attribute name="cancellation" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>indicates, that this train is no longer valid and should be canceled out of a previously delivered set</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>
   </xs:attributeGroup>
 
   <xs:complexType name="tTrainGroup">
@@ -302,7 +349,15 @@
   </xs:attributeGroup>
 
   <xs:complexType name="tTrainPartSequence">
+    <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:aTrainPartSequence" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aTrainPartSequence">
@@ -313,7 +368,6 @@
         <xs:documentation>the category of a train which could differ (by its meaning) from a train part category</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:attributeGroup>
 
   <xs:complexType name="tTrainPartRef">
@@ -355,6 +409,7 @@
 
   <xs:complexType name="tOcpTT">
     <xs:attributeGroup ref="rail:aOcpTT" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aOcpTT">
@@ -408,17 +463,12 @@
         <xs:documentation>is the driving time used inside a station</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:attributeGroup>
 
   <xs:complexType name="tArrivalDepartureTimes">
     <xs:attributeGroup ref="rail:aTimesScope" />
     <xs:attributeGroup ref="rail:aArrivalDepartureTimes" />
-    <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:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aArrivalDepartureTimes">
@@ -434,6 +484,7 @@
 
   <xs:complexType name="tStopTimes">
     <xs:attributeGroup ref="rail:aStopTimes" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aStopTimes">
@@ -445,11 +496,19 @@
   </xs:attributeGroup>
 
   <xs:complexType name="tConnectionTT">
+    <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:aConnectionTT" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aConnectionTT">
-    <xs:attribute name="trainRef" type="rail:tGenericRef" use="required" />
+    <xs:attribute name="trainRef" type="rail:tGenericRef" />
     <xs:attribute name="minConnTime" type="xs:duration" />
     <xs:attribute name="maxConnTime" type="xs:duration" />
     <xs:attribute name="connOperation" type="rail:tConnOperation" />
@@ -468,7 +527,26 @@
         <xs:documentation>refers to a trainPart element, which is more specific than the trainRef</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attributeGroup ref="rail:anyAttribute" />
+    <xs:attribute name="operatingPeriodRef" type="rail:tGenericRef">
+      <xs:annotation>
+        <xs:documentation>references a reduction of the operating days of the connection compared to the operating days of the train part</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>    
+    <xs:attribute name="notGuaranteed" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>indicates if the connection could not be guaranteed</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>    
+    <xs:attribute name="nonConnection" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>indicates that no such connection should be generated or communicated, in order to lead passengers to the appropriate connection</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>    
+    <xs:attribute name="samePlatform" type="xs:boolean">
+      <xs:annotation>
+        <xs:documentation>indicates if the connection is on the same platform</xs:documentation>
+      </xs:annotation>
+    </xs:attribute>    
   </xs:attributeGroup>
 
   <xs:complexType name="tAnnotationText">
@@ -479,27 +557,26 @@
             <xs:documentation>natural language identification according to https://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attributeGroup ref="rail:anyAttribute">
-          <xs:annotation>
-            <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation>
-          </xs:annotation>
-        </xs:attributeGroup>
+        <xs:attributeGroup ref="rail:anyAttribute" />
       </xs:extension>
     </xs:simpleContent>
   </xs:complexType>
   
   <xs:complexType name="tStatistic">
-    <xs:attributeGroup ref="rail:aStatistic" />
-  </xs:complexType>
-
-  <xs:attributeGroup name="aStatistic">
+    <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:anyAttribute" />
-  </xs:attributeGroup>
-
+  </xs:complexType>
   <xs:complexType name="tStatisticTimes">
     <xs:attributeGroup ref="rail:aArrivalDepartureTimes" />
     <xs:attributeGroup ref="rail:aArrivalDepartureDelay" />
     <xs:attribute name="stopTime" type="xs:duration" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aArrivalDepartureDelay">
@@ -509,10 +586,12 @@
 
   <xs:complexType name="tStandardDeviationTimes">
     <xs:attributeGroup ref="rail:aArrivalDepartureDelay" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:complexType name="tStatisticAnalyses">
     <xs:attributeGroup ref="rail:aStatisticAnalyses" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aStatisticAnalyses">
@@ -523,7 +602,15 @@
   </xs:attributeGroup>
 
   <xs:complexType name="tSectionTT">
+    <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:aSectionTT" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aSectionTT">
@@ -534,7 +621,6 @@
     <xs:attribute name="remarks" type="xs:string" />
     <xs:attribute name="percentageSupplement" type="xs:decimal" />
     <xs:attribute name="distance" type="rail:tLengthM" />
-    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:attributeGroup>
 
   <xs:complexType name="tTrackRef">
@@ -579,6 +665,7 @@
 
   <xs:complexType name="tRunTimes">
     <xs:attributeGroup ref="rail:aRunTimes" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aRunTimes">
@@ -588,6 +675,13 @@
   </xs:attributeGroup>
 
   <xs:complexType name="tStopDescription">
+    <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:aStopDescription" />
     <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
@@ -690,7 +784,15 @@
   </xs:attributeGroup>
 
   <xs:complexType name="tBlockPartSequence">
+    <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:aBlockPartSequence" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aBlockPartSequence">
@@ -711,7 +813,6 @@
       </xs:annotation>
     </xs:attribute>
     <xs:attribute name="basicBlockRef" type="rail:tGenericRef" />
-    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:attributeGroup>
 
   <xs:complexType name="tBlockPartRef">
@@ -746,6 +847,7 @@
 
   <xs:complexType name="tCirculation">
     <xs:attributeGroup ref="rail:aCirculation" />
+    <xs:attributeGroup ref="rail:anyAttribute" />
   </xs:complexType>
 
   <xs:attributeGroup name="aCirculation">
@@ -1055,4 +1157,89 @@
     </xs:union>
   </xs:simpleType>
 
+  <!-- TAP TSI elements for the unique train ID -->
+  <xs:complexType name="tTapTsiCompositIdentifierOperationalType">
+    <xs:attributeGroup ref="rail:aTapTsiCompositIdentifierOperationalType"/>
+  </xs:complexType>
+
+  <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:annotation>
+    <xs:attribute name="objectType" type="rail:tTapTsiObjectType" use="required"/>
+    <xs:attribute name="companyCode" type="rail:tCompanyCode" use="required"/>
+    <xs:attribute name="core" type="rail:tTapTsiCore" use="required"/>
+    <xs:attribute name="variant" type="rail:tTapTsiVariant" use="required"/>
+    <xs:attribute name="timetableYear" type="rail:tTapTsiTimetableYear" use="required"/>
+    <xs:attribute name="startDate" type="rail:tTapTsiStartDate"/>
+  </xs:attributeGroup>
+
+  <xs:simpleType name="tTapTsiObjectType">
+    <xs:annotation>
+      <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"/>
+      <xs:enumeration value="PR"/>
+    </xs:restriction>
+  </xs:simpleType>
+  
+  <xs:simpleType name="tCompanyCode">
+    <xs:annotation>
+      <xs:documentation>Company code according TAP TSI B.8 and UIC IRS/leaflet 920-1:2006</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:integer">
+      <xs:minInclusive value="0001"/>
+      <xs:maxInclusive value="9999"/>
+    </xs:restriction>
+  </xs:simpleType>
+  
+  <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: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>
+  
+  <xs:simpleType name="tTapTsiVariant">
+    <xs:annotation>
+      <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>
+  
+  <xs:simpleType name="tTapTsiTimetableYear">
+    <xs:annotation>
+      <xs:documentation>Refers to the timetable period in which the business will be carried out</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:integer">
+      <xs:minInclusive value="2012"/>
+      <xs:maxInclusive value="2097"/>
+    </xs:restriction>
+  </xs:simpleType>
+  
+  <xs:simpleType name="tTapTsiStartDate">
+    <xs:annotation>
+      <xs:documentation>The start of the date/time in effect</xs:documentation>
+    </xs:annotation>
+    <xs:restriction base="xs:date">
+      <xs:minInclusive value="2012-01-01"/>
+      <xs:maxInclusive value="2097-12-31"/>
+    </xs:restriction>
+  </xs:simpleType>
+
 </xs:schema>