<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2012 sp1 (http://www.altova.com) by D Barnard (Thales Information Systems) -->
<xs:schema xmlns:status="http://thalesgroup.com/RTTI/PushPortStatus/root_1" 
           xmlns:ct="http://www.thalesgroup.com/rtti/PushPort/CommonTypes/v1" 
           xmlns:sch2="http://www.thalesgroup.com/rtti/PushPort/Schedules/v2" 
           xmlns:sch5="http://www.thalesgroup.com/rtti/PushPort/Schedules/v5" 
           xmlns:for="http://www.thalesgroup.com/rtti/PushPort/Forecasts/v4" 
           xmlns:tor="http://www.thalesgroup.com/rtti/PushPort/TrainOrder/v1" 
           xmlns:sm1="http://www.thalesgroup.com/rtti/PushPort/StationMessages/v1" 
           xmlns:sm2="http://www.hitachirail.com/rtti/PushPort/StationMessages/v2" 
           xmlns:si="http://www.hitachirail.com/rtti/PushPort/StationInformation/v1" 
           xmlns:ta="http://www.thalesgroup.com/rtti/PushPort/TrainAlerts/v1" 
           xmlns:td="http://www.thalesgroup.com/rtti/PushPort/TDData/v1" 
           xmlns:alm="http://www.thalesgroup.com/rtti/PushPort/Alarms/v1" 
           xmlns:fm="http://www.thalesgroup.com/rtti/PushPort/Formations/v1" 
           xmlns:fm2="http://www.thalesgroup.com/rtti/PushPort/Formations/v2" 
           xmlns:fm3="http://www.thalesgroup.com/rtti/PushPort/Formations/v3" 
           xmlns:xs="http://www.w3.org/2001/XMLSchema" 
           xmlns:tns="http://www.hitachirail.com/rtti/PushPort/v19" 
           targetNamespace="http://www.hitachirail.com/rtti/PushPort/v19" elementFormDefault="qualified" attributeFormDefault="unqualified" version="19.0">
	<!--  Copyright (c) 2026 RDG & Hitachi -->
	<!--  Project 753 ATOC REAL TIME TRAIN INFORMATION -->
	<!--  Project WA063A0 ATOC DARWIN -->
	<!--  PUSH PORTS SCHEMA -->
	<!--  
	14/01/2026  	Version 19: Add new message StationInformation and SubCategory to StationMessages.
	-->
	<xs:import namespace="http://thalesgroup.com/RTTI/PushPortStatus/root_1" schemaLocation="rttiPPTStatus_v1.xsd"/>
	<xs:import namespace="http://www.thalesgroup.com/rtti/PushPort/CommonTypes/v1" schemaLocation="rttiPPTCommonTypes_v1.xsd"/>
	<xs:import namespace="http://www.thalesgroup.com/rtti/PushPort/Schedules/v2" schemaLocation="rttiPPTSchedules_v2.xsd"/>
	<xs:import namespace="http://www.thalesgroup.com/rtti/PushPort/Schedules/v5" schemaLocation="rttiPPTSchedules_v5.xsd"/>
	<xs:import namespace="http://www.thalesgroup.com/rtti/PushPort/Forecasts/v4" schemaLocation="rttiPPTForecasts_v4.xsd"/>
	<xs:import namespace="http://www.thalesgroup.com/rtti/PushPort/TrainOrder/v1" schemaLocation="rttiPPTTrainOrder_v1.xsd"/>
	<xs:import namespace="http://www.thalesgroup.com/rtti/PushPort/StationMessages/v1" schemaLocation="rttiPPTStationMessages_v1.xsd"/>
  <xs:import namespace="http://www.hitachirail.com/rtti/PushPort/StationMessages/v2" schemaLocation="rttiPPTStationMessages_v2.xsd"/>
  <xs:import namespace="http://www.hitachirail.com/rtti/PushPort/StationInformation/v1" schemaLocation="rttiPPTStationInformation_v1.xsd"/>
	<xs:import namespace="http://www.thalesgroup.com/rtti/PushPort/TrainAlerts/v1" schemaLocation="rttiPPTTrainAlerts_v1.xsd"/>
	<xs:import namespace="http://www.thalesgroup.com/rtti/PushPort/TDData/v1" schemaLocation="rttiPPTTDData_v1.xsd"/>
	<xs:import namespace="http://www.thalesgroup.com/rtti/PushPort/Alarms/v1" schemaLocation="rttiPPTAlarms_v1.xsd"/>
	<xs:import namespace="http://www.thalesgroup.com/rtti/PushPort/Formations/v1" schemaLocation="rttiPPTFormations_v1.xsd"/>
	<xs:import namespace="http://www.thalesgroup.com/rtti/PushPort/Formations/v2" schemaLocation="rttiPPTFormations_v2.xsd"/>
	<xs:import namespace="http://www.thalesgroup.com/rtti/PushPort/Formations/v3" schemaLocation="rttiPPTFormations_v3.xsd"/>
	<!-- Complex Types -->
	<xs:complexType name="DataResponse">
		<xs:sequence>
			<xs:element name="schedule" type="sch5:Schedule" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Train Schedule</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="deactivated" type="sch2:DeactivatedSchedule" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Notification that a Train Schedule is now deactivated in Darwin.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="association" type="sch2:Association" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Association between schedules</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="scheduleFormations" type="fm2:ScheduleFormations" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Train Formation</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="TS" type="for:TS" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Train Status</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="serviceLoading" type="fm3:LoadingData" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Service-level Train Loading data. This loading data applies to the whole service at the specified locations. Note that loading data may also be provided at the coach-level using the formationLoading element. Consumers should favour the coach-level data, as this is more granular, but both may be provided. Also note that the loadingPercentage value here is the same data as the avgLoading element on schedule elements. The avgLoading element will be removed in a future release, so consumers must migrate to use this data instead.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="formationLoading" type="fm:Loading" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Formation-level Train Loading data. This loading data applies to the individual coaches in a formation at the specified locations. Note that loading data may also be provided at the service-level using the serviceLoading element. Consumers should favour the coach-level data, as this is more granular, but both may be provided. </xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="OW" type="sm2:StationMessage" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Darwin Workstation Station Message</xs:documentation>
				</xs:annotation>
			</xs:element>
      <xs:element name="stationInformation" type="si:StationInformation" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Station information</xs:documentation>
        </xs:annotation>
      </xs:element>
			<xs:element name="trainAlert" type="ta:TrainAlert" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Train Alert</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="trainOrder" type="tor:TrainOrder" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>The order that trains are expected to call/pass a particular station platform</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="trackingID" type="td:TrackingID" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>Indicate a corrected Tracking ID (headcode) for a service in a TD berth.</xs:documentation>
				</xs:annotation>
			</xs:element>
			<xs:element name="alarm" type="alm:RTTIAlarm" minOccurs="0" maxOccurs="unbounded">
				<xs:annotation>
					<xs:documentation>A Darwin alarm</xs:documentation>
				</xs:annotation>
			</xs:element>
		</xs:sequence>
	</xs:complexType>
	<!-- Elements -->
	<xs:element name="Pport">
		<xs:annotation>
			<xs:documentation>Push Ports Schema</xs:documentation>
		</xs:annotation>
		<xs:complexType>
			<xs:choice>
				<xs:element name="QueryTimetable">
					<xs:annotation>
						<xs:documentation>Query for the current timetable ID</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="TimeTableId">
					<xs:annotation>
						<xs:documentation>Response for the current timetable ID</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:simpleContent>
							<xs:extension base="ct:TimetableIDType">
								<xs:attribute name="ttfile" type="ct:TimetableFilenameType" use="optional"/>
								<xs:attribute name="ttreffile" type="ct:TimetableFilenameType" use="optional"/>
							</xs:extension>
						</xs:simpleContent>
					</xs:complexType>
				</xs:element>
				<xs:element name="GetSnapshotReq">
					<xs:annotation>
						<xs:documentation>Request a standard snapshot of current database</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:attribute name="viaftp" type="xs:boolean" use="optional" default="false">
							<xs:annotation>
								<xs:documentation>If true, then resulting snapshot data is fetched by the client via FTP</xs:documentation>
							</xs:annotation>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
				<xs:element name="GetFullSnapshotReq">
					<xs:annotation>
						<xs:documentation>Request a full snapshot of current database</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:attribute name="viaftp" type="xs:boolean" use="optional" default="false">
							<xs:annotation>
								<xs:documentation>If true, then resulting snapshot data is fetched by the client via FTP</xs:documentation>
							</xs:annotation>
						</xs:attribute>
					</xs:complexType>
				</xs:element>
				<xs:element name="SnapshotId" type="ct:SnapshotIDType">
					<xs:annotation>
						<xs:documentation>Defines an ID for recovering snapshot data via FTP</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="StartUpdateReq">
					<xs:annotation>
						<xs:documentation>Start sending available updates.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="StopUpdateReq">
					<xs:annotation>
						<xs:documentation>Stop sending available updates.</xs:documentation>
					</xs:annotation>
				</xs:element>
				<xs:element name="FailureResp">
					<xs:annotation>
						<xs:documentation>Failure Response</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:simpleContent>
							<xs:extension base="status:StatusType">
								<xs:attribute name="requestSource" type="ct:SourceTypeInst" use="optional">
									<xs:annotation>
										<xs:documentation>The DCIS source that generated this update</xs:documentation>
									</xs:annotation>
								</xs:attribute>
								<xs:attribute name="requestID" type="ct:DCISRequestID" use="optional">
									<xs:annotation>
										<xs:documentation>The DCISRequestID value provided by the originator of this update. Used in conjunction with the updateSource attribute to ensure uniqueness</xs:documentation>
									</xs:annotation>
								</xs:attribute>
							</xs:extension>
						</xs:simpleContent>
					</xs:complexType>
				</xs:element>
				<xs:element name="uR">
					<xs:annotation>
						<xs:documentation>Update Response</xs:documentation>
					</xs:annotation>
					<xs:complexType>
						<xs:complexContent>
							<xs:extension base="tns:DataResponse">
								<xs:attribute name="updateOrigin" type="xs:string" use="optional">
									<xs:annotation>
										<xs:documentation>A string describing the type of system that originated this update, e.g. "CIS" or "Darwin".</xs:documentation>
									</xs:annotation>
								</xs:attribute>
								<xs:attribute name="requestSource" type="ct:SourceTypeInst" use="optional">
									<xs:annotation>
										<xs:documentation>The source instance that generated this update, usually a CIS instance.</xs:documentation>
									</xs:annotation>
								</xs:attribute>
								<xs:attribute name="requestID" type="ct:DCISRequestID" use="optional">
									<xs:annotation>
										<xs:documentation>The DCISRequestID value provided by the originator of this update. Used in conjunction with the requestSource attribute to ensure uniqueness</xs:documentation>
									</xs:annotation>
								</xs:attribute>
							</xs:extension>
						</xs:complexContent>
					</xs:complexType>
				</xs:element>
				<xs:element name="sR" type="tns:DataResponse">
					<xs:annotation>
						<xs:documentation>Snapshot Response</xs:documentation>
					</xs:annotation>
				</xs:element>
			</xs:choice>
			<xs:attribute name="ts" type="ct:RTTIDateTimeType" use="required">
				<xs:annotation>
					<xs:documentation>Local Timestamp</xs:documentation>
				</xs:annotation>
			</xs:attribute>
			<xs:attribute name="version" type="xs:string" use="required"/>
		</xs:complexType>
	</xs:element>
</xs:schema>
