Dev:changes/2.3/diff

From railML 2 Wiki
Revision as of 13:33, 13 June 2017 by RailML Coord Documentation (talk | contribs) (Created page with "'''Schema differences between {{rml}} 2.2 and {{rml}} 2.3''' This page shows schema differences between {{rml}} 2.2 and {{rml}} 2.3. It is intended to support advanced {{rml}...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

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

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

diff --git a/schema/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. http://www.railml.org/index.php/license.html
-     For further information see: http://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="http://www.railml.org/schemas/lists" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://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. http://www.railml.org/index.php/license.html
-     For further information see: http://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="http://www.railml.org/schemas/lists" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://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. http://www.railml.org/index.php/license.html
-     For further information see: http://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="http://www.railml.org/schemas/lists" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://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="http://www.railml.org/schemas/2013" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" xmlns:dc="http://purl.org/dc/elements/1.1/" targetNamespace="http://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<!-- $Id$ -->
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2016" 
+           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+           xmlns:xml="http://www.w3.org/XML/1998/namespace" 
+           xmlns:dc="http://purl.org/dc/elements/1.1/" 
+           targetNamespace="http://www.railml.org/schemas/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. http://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: http://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.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="http://purl.org/dc/elements/1.1/" schemaLocation="http://dublincore.org/schemas/xmls/qdc/2008/02/11/dc.xsd">
@@ -162,11 +168,7 @@
         <xs:documentation>natural language identification according to http://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation>
       </xs:annotation>
     </xs:attribute>
-    <xs:attributeGroup ref="rail:anyAttribute">
-      <xs:annotation>
-        <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation>
-      </xs:annotation>
-    </xs:attributeGroup>
+    <xs: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 http://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation>
+        <xs:documentation>natural language identification according to http://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="http://www.railml.org/schemas/2013" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
-
-    <xs:annotation>
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2016" 
+           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+           xmlns:xml="http://www.w3.org/XML/1998/namespace" 
+           targetNamespace="http://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. http://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: http://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.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="http://wiki.railml.org/index.php?title=IS:tsi" />
             </xs:annotation>
           </xs:element>
@@ -670,6 +676,11 @@
           <xs:documentation source="http://wiki.railml.org/index.php?title=IS:gaugeChanges" />
         </xs:annotation>
       </xs:element>
+      <xs:element name="clearanceGaugeChanges" type="rail:eClearanceGaugeChanges" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:clearanceGaugeChanges" />
+        </xs:annotation>
+      </xs:element>
       <xs:element name="geoMappings" type="rail:eGeoMappings" minOccurs="0">
         <xs:annotation>
           <xs:documentation source="http://wiki.railml.org/index.php?title=IS:geoMappings" />
@@ -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="http://wiki.railml.org/index.php?title=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="http://wiki.railml.org/index.php?title=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="http://wiki.railml.org/index.php?title=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="http://wiki.railml.org/index.php?title=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="http://wiki.railml.org/index.php?title=IS:clearanceGaugeChange" />
+        </xs:annotation>
+      </xs:element>
+    </xs:sequence>
+  </xs:complexType>
 
   <xs:complexType name="eGeoMappings">
     <xs:sequence>
@@ -900,6 +973,11 @@
           <xs:documentation source="http://wiki.railml.org/index.php?title=IS:derailers" />
         </xs:annotation>
       </xs:element>
+      <xs:element name="trainRadioChanges" type="rail:eTrainRadioChanges" minOccurs="0">
+        <xs:annotation>
+          <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainRadios" />
+        </xs: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="http://wiki.railml.org/index.php?title=IS:gauge" />
             </xs:annotation>
           </xs:element>
+          <xs:element name="clearanceGauge" type="rail:tClearanceGaugeType" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:clearanceGauge" />
+            </xs:annotation>
+          </xs:element>
           <xs:element name="speeds" type="rail:eSpeeds" minOccurs="0">
             <xs:annotation>
               <xs:documentation source="http://wiki.railml.org/index.php?title=IS:speeds" />
@@ -1072,6 +1165,11 @@
               <xs:documentation source="http://wiki.railml.org/index.php?title=IS:epsgCode" />
             </xs:annotation>
           </xs:element>
+          <xs:element name="trainRadio" type="rail:tTrainRadioAttributes" minOccurs="0">
+            <xs:annotation>
+              <xs:documentation source="http://wiki.railml.org/index.php?title=IS:trainRadio" />
+            </xs:annotation>
+          </xs:element>
           <xs:element name="generalInfraAttributes" type="rail:eGeneralInfraAttributes" minOccurs="0">
             <xs:annotation>
               <xs:documentation source="http://wiki.railml.org/index.php?title=IS:generalInfraAttributes" />
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="http://www.railml.org/schemas/2013" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2016" 
+           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+           xmlns:xml="http://www.w3.org/XML/1998/namespace" 
+           targetNamespace="http://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. http://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: http://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.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 http://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation>
+        <xs:documentation>natural language identification according to http://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="http://wiki.openstreetmap.org/wiki/Tag:highway%3Dcycleway" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="highway:footway">
+            <xs:annotation>
+              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:highway%3Dfootway" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="highway:motorway">
+            <xs:annotation>
+              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:highway%3Dmotorway" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="highway:road">
+            <xs:annotation>
+              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:highway%3Droad" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="natural:peak">
+            <xs:annotation>
+              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:natural%3Dpeak" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="natural:ridge">
+            <xs:annotation>
+              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:natural%3Dridge" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="natural:valley">
+            <xs:annotation>
+              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:natural%3Dvalley" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="natural:water">
+            <xs:annotation>
+              <xs:documentation source="http://wiki.openstreetmap.org/wiki/Tag:natural%3Dwater" />
+            </xs:annotation>
+          </xs:enumeration>
+          <xs:enumeration value="waterway:river">
+            <xs:annotation>
+              <xs:documentation source="http://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="http://www.railml.org/schemas/2013" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2016" 
+           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+           targetNamespace="http://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. http://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: http://www.railml.org</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.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="http://www.railml.org/schemas/2013" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://purl.org/dc/elements/1.1/" targetNamespace="http://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2016" 
+           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+           xmlns:dc="http://purl.org/dc/elements/1.1/" 
+           targetNamespace="http://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. http://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: http://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.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="http://www.railml.org/schemas/2013" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:dc="http://purl.org/dc/elements/1.1/" targetNamespace="http://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- $Id$ -->
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2016" 
+           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+           xmlns:dc="http://purl.org/dc/elements/1.1/" 
+           targetNamespace="http://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. http://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: http://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.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 (http://www.era.europa.eu/Document-Register/Documents/ERA_TAP_Passenger_Code_List_1.3.1.xsd)</xs:documentation>
+        <xs:documentation source="http://www.era.europa.eu/Document-Register/Pages/TAP-TSI.aspx" />
+      </xs: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 (http://www.era.europa.eu/Document-Register/Documents/ERA_TAP_Passenger_Code_List_1.3.1.xsd)</xs:documentation>
+        <xs:documentation source="http://www.era.europa.eu/Document-Register/Pages/TAP-TSI.aspx" />
+      </xs: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="http://www.railml.org/schemas/2013" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2016" 
+           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+           targetNamespace="http://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. http://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: http://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.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="http://www.railml.org/schemas/2013" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2016" 
+           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+           xmlns:xml="http://www.w3.org/XML/1998/namespace" 
+           targetNamespace="http://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. http://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: http://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.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="http://wiki.railml.org/index.php?title=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="http://wiki.railml.org/index.php?title=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="http://wiki.railml.org/index.php?title=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="http://wiki.railml.org/index.php?title=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="http://wiki.railml.org/index.php?title=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="http://wiki.railml.org/index.php?title=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="http://www.railml.org/schemas/2013" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2016" 
+           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+           targetNamespace="http://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. http://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: http://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.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="http://www.railml.org/schemas/2013" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<!-- $Id$ -->
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2016" 
+           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+           targetNamespace="http://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. http://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: http://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.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="http://wiki.railml.org/index.php?title=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="http://wiki.railml.org/index.php?title=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="http://wiki.railml.org/index.php?title=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://wiki.railml.org/index.php?title=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="http://wiki.railml.org/index.php?title=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="http://www.railml.org/schemas/2013" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://www.railml.org/schemas/2013" elementFormDefault="qualified" version="2.2">
+<!-- $Id$ -->
+<xs:schema xmlns:rail="http://www.railml.org/schemas/2016" 
+           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
+           xmlns:xml="http://www.w3.org/XML/1998/namespace" 
+           targetNamespace="http://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. http://www.railml.org/index.php/license.html</xs:documentation>
-    <xs:documentation>For further information see: http://www.railml.org/</xs:documentation>
-    <xs:documentation>Content of this file: XML Schema for railML(R) 2.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 http://www.w3.org/TR/xml/#sec-lang-tag</xs:documentation>
           </xs:annotation>
         </xs:attribute>
-        <xs:attributeGroup ref="rail:anyAttribute">
-          <xs:annotation>
-            <xs:documentation>provide an extension point for non-railML attributes in foreign namespace</xs:documentation>
-          </xs:annotation>
-        </xs:attributeGroup>
+        <xs: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>