You are on page 1of 92

CRS2

Software Architecture Description

Responsible Division: Responsible Unit: Document Type: Distribution Status: Document State:

Worki
RCS EAPD Technical description INTERNAL ng

Prepared:
Paolo Perticaroli 2014.03.17
Staer Sistemi

Verified:
(if only one responsible, use full name) 2014.03.17
<insert title and group>

Approved:
2014.03.17
<insert title and group>

Name / Title, Group Signature Date


Identity Number:
This document and its contents are the property of Bombardier Inc. or its subsidiaries.

3NCNFMC850Z0003
This document contains confidential proprietary information. The reproduction,
distribution, utilization or the communication of this document or any part thereof,
without express authorisation is strictly prohibited. Offenders will be held liable for the
payment of damages.
Effective Date: Revision: Language:
03/05/17, Bombardier Inc. or its subsidiaries. All rights reserved.
2014.03.17 EN
Filename:353684635 Confidential and proprietary
1.0.6 Template ID-Number: 000108
Software Architecture Description Page 1 of 92
Filename:353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 2 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6

Revision Log

Revision Date Description of Changes


1.0.1 2013.08.26 First issue
1.0.2 2013.09.09 Changes following BT Review
1.0.3 2013.09.16 Changes following BT Review
1.0.4 2013.11.04 Changes to par. 4.1, Configuration Configuration Data
Added Appendix 5.1 Configuration Data XSD
1.0.5 2014.01.24 Changes following BT Review
1.0.6 2014.03.17 Changes to chapter 5.2 and 5.3 after BT review

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 3 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
Table of Contents
1 INTRODUCTION 8
1.1 Identification 8
1.2 Overview and objective 8
1.3 Position in the Life-Cycle 8
1.4 Document structure 8
1.5 Terminology 8
1.6 References 9
1.6.1 Input documents 9
1.6.2 Output documents 9
1.6.3 Other references 9
2 ABSTRACT 10
3 SOFTWARE COMPONENTS 10
3.1 Components Overview 10
3.2 Components Startup 12
3.3 CRS State Manager 13
3.3.1 Timetable Data 13
3.3.2 Operator Decisions 13
3.3.3 Surrounding Systems Data 14
3.3.4 Infrastructural Data 14
3.3.5 Train Compositions 14
3.3.6 Interlocking State 15
3.4 CRS Orchestrator 15
3.5 CRS Processor 18
3.6 CRS-SSA Train Position Tracker 19
3.7 CRS-SSA Data Logger 20
4 MESSAGES 21
4.1 Events Produced 21
4.2 Events Consumed 22
4.3 Request/Response API Exposed 23
4.4 Request/Response API Called 24
5 CONFIGURATION 24
5.1 Configuration Data 24
5.1.1 Infrastructure and Signaling 25
5.1.2 Network Model 25
5.1.3 Circulation Rules 25
5.1.4 Assumptions and objectives 25
5.1.5 Data Format 25
5.1.5.1 Common Railway 27
5.1.5.1.1 Stations Element 27
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 4 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
5.1.5.1.1.1 Station Element 27
5.1.5.1.1.1.1 LinePoints Element 28
5.1.5.1.1.1.1.1 LinePoint Element 28
5.1.5.1.1.1.2 StoppingPoints Element 28
5.1.5.1.1.1.2.1 StoppingPoint Element 28
5.1.5.1.1.1.3 IntermediatePoints Element 28
5.1.5.1.1.1.3.1 IntermediatePoint Element 28
5.1.5.1.1.1.4 Routes Element 29
5.1.5.1.1.1.4.1 Route Element 29
5.1.5.1.1.1.5 StoppingPointsDetails Element 29
5.1.5.1.1.1.5.1 StoppingPointDetails Element 29
5.1.5.1.1.1.5.1.1 LenByInputRoute Element 29
5.1.5.1.1.1.6 CorrectPaths Element 30
5.1.5.1.1.1.6.1 CorrectPath Element 30
5.1.5.1.2 Example of Stations Element 30
5.1.5.1.3 Tracks Element 32
5.1.5.1.3.1 Track Element 32
5.1.5.1.3.1.1 BAs Element 32
5.1.5.1.3.1.1.1 BA Element 32
5.1.5.1.3.1.2 SectionsAToB Element 33
5.1.5.1.3.1.2.1 Section Element 33
5.1.5.1.3.1.3 SectionsBToA Element 33
5.1.5.1.4 Example of Tracks Element 33
5.1.5.1.5 RailwayStops Element 34
5.1.5.1.5.1 RailwayStops Element 34
5.1.5.1.5.1.1 RailwayStopPosition Element 35
5.1.5.1.6 Example of RailwayStops Element 35
5.1.5.1.7 InActivationPoints Element 35
5.1.5.1.7.1 InActivationPoint Element 35
5.1.5.2 GA-Specific Railway 35
5.1.5.2.1 CRS_Latvia_Railway Element 35
5.1.5.2.1.1 CRS_Latvia_StationsDetails Element 36
5.1.5.2.1.1.1 CRS_Latvia_StationsDetails Element 36
5.1.5.2.1.1.1.1 IncompatibleRoutes Element 36
5.1.5.2.1.2 OutActivationPoints Element 36
5.1.5.2.1.2.1 OutActivationPoint Element 36

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 5 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
5.1.5.2.2 SSA_Italy_Railway Element 36
5.1.5.2.2.1 SSA_Italy_StationsDetails Element 36
5.1.5.2.2.1.1 SSA_Italy_StationsDetails Element 37
5.1.5.2.2.1.1.1 TrackCircuits Element 37
5.1.5.2.2.1.1.1.1 TrackCircuit Element 37
5.1.5.2.2.1.1.2 Switches Element 37
5.1.5.2.2.1.1.2.1 Switch Element 37
5.1.5.2.2.1.2 Signals Element 37
5.1.5.2.2.1.2.1 Signal Element 37
5.1.5.2.2.1.3 ConditionTable Element 37
5.1.5.2.2.1.3.1 ConditionsForRoute Element 37
5.1.5.2.2.1.3.1.1 ConditionsForBlocking Element 38
5.1.5.2.2.1.3.1.2 TrackCircuitsInPath Element 38
5.1.5.2.2.1.3.1.3 TrackCircuitInPath Element 38
5.1.5.2.2.1.3.1.4 ProtectionTrackCircuits Element 38
5.1.5.2.2.1.3.1.5 ProtectionTrackCircuit Element 38
5.1.5.2.2.1.3.1.6 SwitchesInPath Element 39
5.1.5.2.2.1.3.1.7 SwitchInPath Element 39
5.1.5.2.2.1.3.1.8 ProtectionSwitches Element 39
5.1.5.2.2.1.3.1.9 ProtectionSwitch Element 39
5.1.5.2.2.1.3.1.10 SignalsToCheck Element 39
5.1.5.2.2.1.3.1.11 SignalToCheck Element 39
5.1.5.2.2.1.4 ConditionsForLiberation Element 39
5.1.5.2.2.1.4.1 InitialPoint Element 40
5.1.5.2.2.1.4.1.1 FreeTrackCircuit Element 40
5.1.5.2.2.1.4.1.2 SwitchesAlongPath Element 40
5.1.5.2.2.1.4.1.3 SwitchAlongPath Element 40
5.1.5.2.2.1.4.1.4 ProtectionSwitches Element 40
5.1.5.2.2.1.4.1.5 ProtectionSwitch Element 40
5.1.5.2.2.1.4.2 FinalPoint Element 41
5.1.5.2.2.1.4.2.1 FreeStationTrackCircuit Element 41
5.1.5.2.2.1.5 OtherIncompatibleRoutes Element 41
5.1.5.2.2.1.5.1 OtherIncompatibleRoute Element 41
5.1.5.2.3 Example of SSA_Italy_Railway Element 41
5.1.5.3 Network Model 54
5.1.5.3.1 TimetablePoints Element 54
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 6 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
5.1.5.3.1.1 TimetablePoint Element 54
5.1.5.3.2 ElementaryRoutes Element 54
5.1.5.3.2.1 ElementaryRoute Element 54
5.1.5.4 Example of Network Model 55
5.1.5.5 GA-Specific Circulation Rules 55
5.1.5.5.1 CRS-Latvia Circulation Rules 55
5.1.5.5.1.1 PriorityInfo Element 55
5.1.5.5.1.1.1 LinesDefinition Element 56
5.1.5.5.1.1.1.1 LineDefinition Element 56
5.1.5.5.1.1.1.1.1 OrderedStation Element 56
5.1.5.5.1.1.2 StationsDefinition Element 56
5.1.5.5.1.1.2.1 StationDefinition Element 56
5.1.5.5.1.2 StoppingPointsRankings Element 56
5.1.5.5.1.2.1 StoppingPointsRanking Element 56
5.1.5.5.1.2.1.1 PreferredStoppingPoints Element 57
5.1.5.5.1.2.1.1.1 PreferredStoppingPoint Element 57
5.1.5.5.1.2.1.1.2 RankedStoppingPoint Element 57
5.1.5.5.1.2.2 ForbiddenStoppingPoints Element 57
5.1.5.5.1.2.2.1 ForbiddenStoppingPoint Element 57
5.1.5.5.1.2.2.1.1 Forbidden Element 57
5.1.5.5.1.3 CategoriesInfo Element 57
5.1.5.5.1.3.1 CategoryInfo Element 57
5.1.5.5.2 SSA-Italy Circulation Rules 58
5.1.5.5.2.1 ServiceTypesInfo Element 58
5.1.5.5.2.1.1 ServiceTypeInfo Element 58
5.1.5.5.3 Example of SSA-Italy Circulation Rules 58
5.2 Components configuration 59
5.2.1 CRS-Orchestrator configuration 59
5.2.2 CRS-Processor configuration 61
5.3 Logging System 62
5.3.1 CRS-Orchestrator Logger configuration 62
5.3.2 CRS-Processor Logger configuration 63
6 APPENDIX 64
6.1 Configuration Data XSD 64
6.1.1 Main Configuration File Data Format 65
6.1.2 Common Basic Types 65
6.1.3 Common Railway 66
6.1.4 Network Model 71

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 7 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
6.1.5 CRS-Latvia Railway 72
6.1.6 SSA-Italy Railway 74
6.1.7 CRS-Latvia Circulation Rules 82
6.1.8 SSA-Italy Circulation Rules 86

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 8 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6

1 INTRODUCTION

1.1 IDENTIFICATION
This document is the software requirements specification of the CRS2 product
(identification number 3NCN FMC 850S 0000).

1.2 OVERVIEW AND OBJECTIVE


The goal of this document is to define the software architecture of the CRS2 sub-
system to fulfill the software requirements described in ref. [1].

1.3 POSITION IN THE LIFE-CYCLE


This document is located in the Software Requirements Specification based on
CENELEC 50128 normative.

1.4 DOCUMENT STRUCTURE


The document describes the architecture of the Generic Product CRS2 which applies
to the generic application CRS-Latvia and the generic application CRS-SSA. Whenever
a specific component or message is peculiar to only one of the two generic
applications, a note is reported to highlight the differences.

1.5 TERMINOLOGY

Acronym Description

CRS-Latvia Conflict Resolution System according to Latvian railways rules

CRS-SSA Conflict Resolution System for SSA

TPT Train Position Tracking

SSA Sistema Supervisione per ACC

ACC Apparato Centrale Computerizzato

SSDC Sistema di Supporto al Dirigente Centrale

ARS Automatic Route Setting

PIC Piattaforma Integrata Circolazione

VCO Variazione in Corso dOrario

HMI Human-Machine Interface

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 9 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6

Acronym Description

CRS-Latvia Conflict Resolution System according to Latvian railways rules

CRS-SSA Conflict Resolution System for SSA

TPT Train Position Tracking

SSA Sistema Supervisione per ACC

ACC Apparato Centrale Computerizzato

SSDC Sistema di Supporto al Dirigente Centrale

ARS Automatic Route Setting

TG Train-Graph

GP Generic Product

GA Generic Application

SA Specific Application

1.6 REFERENCES

1.1.1 INPUT DOCUMENTS


[1] 3NCNFMC850Z0002 - "CRS2 - Software requirements
specification"
[2] 3NCNFMC000Z0037- "SSDC Data Model"

1.1.2 OUTPUT DOCUMENTS


[3] 3NCNFMC850Z0006, CRS2 - Record format of the IN/OUT
files
[4] 3NCNFMC000Z0033, Function_SSDC - Interface Control
Document for MOM

1.1.3 OTHER REFERENCES


[5] 3NCHT010001Y683, Tabelle delle Condizioni RONCHI DEI
LEGIONARI SUD
[6] 3NCHP010001Y683, Piano Schematico RONCHI DEI
LEGIONARI SUD

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 10 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6

2 ABSTRACT

In this document we provide the software architecture of the CRS2 software system, part of the
TMS generic product. In the rest of the document we refer to the CRS2 system as CRS for
simplicity.

The CRS is a component-based software system designed to operate on a bus-oriented software


architecture where each component is connected to a communication bus which allows the
exchange of asynchronous messages through delivery guaranteed queues.

The CRS software system provides its output data in two ways:

1. push-mode, by a publish-subscribe model

2. pull-mode, by a client-server model

In the first case, the CRS publishes its data in a channel through the communication bus and any
other software interested in such data subscribes to the channel. Its the CRS that pushes data to
clients.

In the second case, the CRS software exposes a client API and any software can interrogate the
CRS and ask for data using the functions provided by the API. Its up to the client to initiate the
communication, the CRS responds to clients requests. Its the client that pulls data from the CRS.

The Generic Product has two Generic Applications, one named CRS-Latvia, a specialization of the
CRS for Latvian railways, and the other named CRS-SSA, a specialization of the CRS for an SSA
system for Italian railways. In the rest of the document, when needed, we refer to the two Generic
Applications to highlight differences in components and messages, to avoid any possible ambiguity.

3 SOFTWARE COMPONENTS

3.1 COMPONENTS OVERVIEW

The CRS software module is organized in the following separate software components:
CRS State Manager

CRS Orchestrator

CRS Processor

CRS-SSA Train Position Tracker (TPT, in short)

CRS-SSA Data Logger

The last two components are present only on the CRS-SSA Generic Application.

We briefly describe the tasks each component carries on, refer to next paragraphs for more details.

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 11 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
The CRS State Manager components tasks are:

to aggregate and keep constantly updated the data it receives from SSDC-Core and
SSDC/ISACC Core systems on the bus, such as timetable data, operator decisions,
status data representing the interlocking state and others

to notify the orchestrator about changes of such data via messages on the bus

to prepare xml fragments of data saved as files on the local file system. Such xml
fragments contain the variable parts of input data, related to the current status of
infrastructure and rolling stock

The CRS Orchestrator components tasks are:

to decide when its time to execute the CRS Processor

to prepare the input data for the CRS Processor which is formed linking the xml
fragments produced by the State Manager

to read the output data produced by the CRS Processor

to publish relevant results on the bus for external systems

The CRS Processor is the core component of the whole subsystem that computes the forecasts,
finds and solves conflicts and implements the ARS.

The TPT components task is to keep constantly updated the relation between trains and occupied
track circuits inside the multi-station processing messages coming from the interlocking (via the
appropriate interface component that publishes them on the MoM). It publishes trains positions on
the bus for the State Manager and any other interested external component.

The CRS-SSA Data Logger component takes care of computing and storing on the file system the
travelling times of trains in track circuits and routes.

The State Manager and Orchestrator (and the TPT, when present) components communicate via a
message broker which allows them to exchange messages on a communication bus based on
publish-subscribe queues. Public data produced by the Orchestrator (and the TPT, when present)
are published on the bus either as events when a change occurs or as a request/response client
API.

The CRS Processor is different from the other components because it isnt linked to the bus and it
doesnt produce/consume events. Instead it is exclusively used by the orchestrator which, when
needed, generates a snapshot of the current state of the system and executes the Processor. Also
from a programming point of view the CRS Processor is different from other components, because it
is implemented using the C++ language, while other components are all Java based.

The following diagram depicts the components and the data flow:

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 12 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6

Figure 1

3.2 COMPONENTS STARTUP

When the system starts-up for the first time, the CRS subsystem performs the following actions:

1. reads specific application data from its configuration file

2. requests to the SSDC-Core component a snapshot of the current timetable and status
data

3. requests to the SSDC/ISACC Core component a total refresh of the interlocking state

Upon receipt of responses to the requests of point 2 and 3, the start-up phase is terminated, all
trains currently present inside the multi-station are detected and marked as unknown trains and

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 13 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
the CRS subsystem is fully operational. At this point the operator can start renaming the unknown
trains with the actual trains identifiers.

3.3 CRS STATE MANAGER

The CRS State Manager aggregates, keeps in memory and publishes all input data for the CRS
Processor.

The State Manager acquires its data in two distinct ways: by explicit request to the owner of the data
or as a consequence of receiving a change event. For instance, at startup it asks all the trains in
timetable for a specific lapse of time (e.g. from now up to the next 24 hours) and later on, after an
operator intervention, a train may be added or deleted.

The State Manager keeps an in-memory representation of its data and no persistence on permanent
memory exists. In fact all data kept by the State Manager are owned by other components. At start-
up the State Manager asks all necessary data to the components owner of the data. From there on
it updates its internal in-memory representation on receiving the relevant events. Such policy allows
the State Manager to quickly response to events and requests coming from other components.

In particular the types of data managed by the State Manager can be logically divided in the
following macro categories:

Timetable data

Operator decisions

Data coming from surrounding systems

Infrastructural data

Trains compositions

Interlocking state

For each of these category we provide a brief description of the type and nature of information. Bear
in mind that details may vary for the Generic Applications CRS-Latvia and CRS-SSA. For details
about data types and format refer to document [4].

1.1.4 TIMETABLE DATA

The timetable data includes information about all trains scheduled to enter the controlled area in a
fixed amount of time. It also contains data about bindings and train number changes.

1.1.5 OPERATOR DECISIONS

The operator decisions include all the input data the operator can enter by the HMI components, like
the TG, the Train List, the M53 Graph components and others. The data include the following, not
complete, list:
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 14 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
Conflict solutions

Change of the stopping point of a train in a station

Deferring of the departure time of a train from a station

Enabling or disabling of ARS in a station

Enabling or disabling of ARS for a train in all stations

Train, line and station priorities

Consensus requests for a train to enter the controlled area from a gate station

1.1.6 SURROUNDING SYSTEMS DATA

The State Manager receives from the surrounding systems two kind of information:

Train arrival forecasts

Effective arrival at boundaries

The first information contains, for every train in the timetable, the forecast of arrival at boundary
limits. This information is optional and if missing for a particular train, then such train is considered to
be in time. When the scheduled arrival time of a train is passed and there is no forecast from
boundary systems, the train is considered to be arriving as soon as possible.

The second information is relative to the arrival of a train at the boundaries of the controlled area.
The State Manager receives the information coming from the surrounding system containing the
train number and the identifier of the line-point where the train is about to arrive.

1.1.7 INFRASTRUCTURAL DATA

The State Manager receives two kind of information about infrastructural data:

Failures

Slowdowns

Both kind of data are usually acquired by external systems but they can also be inserted by the
dispatcher. Either way, the State Manager receives such data from the communication bus and
keeps a live representation.

1.1.8 TRAIN COMPOSITIONS

The composition of a train describes some specific characteristics of the train that may be unknown
by the timetable. Such data include:

Train length

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 15 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
Maximum allowed speed

Like for infrastructural data, also the train composition data are received by the State Manager from
the communication bus and then it keeps a live representation of them.

1.1.9 INTERLOCKING STATE

In the case of the interlocking state, the differences between the two Generic Applications are more
remarkable because in the case of CRS-SSA it is responsibility of the CRS system to keep an
internal representation of the entities that compose the interlocking system (the ACC which is
supervised by the SSA), while in the case of the CRS-Latvia it receives the information from the
SSDC Core component.

So in the case of the CRS-SSA Generic Application, the interlocking state includes:

Switch state (In Control / Out of Control)

Switch position (Normal / Reverse)

Switch blocking (Blocked / Unblocked)

Track circuit occupation (Free / Occupied)

Time when track circuits passes from occupied to free or vice versa.

Track circuit blocking (Blocked / Unblocked)

Signal state (In Control / Out of Control)

Signal value (Clear / Stop)

Block orientation (for departure / for arrival)

Route blocking state (Free, Registered, Blocked)

Excluded Entities (Entity Id, switch, track circuit or signal). An excluded entity forbids the
command of all routes that include such entity.

While in the case of the CRS-Latvia Generic Application, the interlocking state includes only the
Route blocking state (Free, Blocked)

3.4 CRS ORCHESTRATOR

The CRS Orchestrators main tasks are:

To decide when to execute, and eventually to stop, the CRS Processor

To prepare the input data for the CRS Processor

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 16 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
To read and publish on the bus the output data received from the CRS Processor

The Orchestrator registers itself as a consumer of the events produced by the State Manager so that
it is able to determine when its time to execute again the CRS Processor. For instance, when the
position of a train changes, the Orchestrator knows that its time to calculate a new forecast and, as
a consequence, to find if there is a change in conflicts and their solutions.

In some cases an event which should cause a recalculation of the CRS Processor may occur while
the CRS Processor is already in execution. For instance, the Orchestrator may receive an event of a
train moving inside the controlled area and execute the CRS Processor. Immediately later it receives
also an event of a train approaching the station from a surrounding system, before the CRS
Processor has completed its execution. In such a situation the Orchestrator uses a decision
algorithm to decide if the current execution of the CRS Processor should be interrupted or let
terminate. Such algorithm takes its decisions on the basis of the following information:

Timestamp of last complete execution of the CRS Processor

Timestamp of start of current execution of the CRS Processor

CRS Processor Timeout

Number and nature of the events in queue coming from the State Manager

Request coming from the client API

The policy followed by the algorithm is summarized by the following rules:

If the current execution is due to a client request, it is never interrupted

If the current execution is due to a state change, it is always interrupted except when:

o The CRS Processor timeout is close to expire

o The last complete execution of the CRS Processor is older than a configurable
threshold value

Such policy has two advantages:

1. It responds to requests coming from the client API based on a snapshot of the state at
the moment of reception of the request

2. It favors the aggregation of close events without putting a penalty on quick response to
isolated events.

Every time the Orchestrator decides to execute the CRS Processor it must make sure that the
relative input data is prepared. In order to do so, it asks the State Manager to write on the file
system the xml fragments containing status data that is changed since the last execution of the CRS
Processor and then updates the links to them in the final xml file that goes as input to the Processor.

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 17 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
The xml fragments to write depend on the nature of events received since last execution of the CRS
Processor. Suppose, for instance, that since the last execution of the Processor, the only event in
the event queue is the notification that the operator has fixed a conflict. In such a case, the
Orchestrator asks the State Manager to write on file system the xml fragment that contains the
operator-solved conflicts and then updates the final xml file with a link to the just-produced xml
fragment and invokes the Processor passing the name of the final xml file as input parameter. For a
complete description of the CRS Processor xml input/output file format refer to document [3].

When the CRS Processor terminates its execution the Orchestrator reads the produced output and
generates the relevant events on the MoM for interested subscribers to consume.

The following sequence diagram depicts the whole process:

Figure 2

The messages produced by the Orchestrator are divided in the following categories:

Forecasts

Conflicts, identified and solved

ARS

Suffering Trains and Warnings messages

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 18 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
For each of the preceding category the Orchestrator publishes a message on a topic in the MoM to
which the interested consumers may subscribe. It is to note that not every time the CRS Processor
terminates its execution all types of events are generated. For instance it could happen that there
are no changes in conflict identification and solution respect to the last execution, so no events on
such queue are generated.

Besides publishing events, the Orchestrator also responds to requests. When it receives one such
request, the Orchestrator first checks to see if the last complete execution is updated or not. If so,
the response is already available and hence immediately provided, otherwise the Orchestrator
executes the CRS Processor and fulfills the request as soon as the output from the Processor is
available.

3.5 CRS PROCESSOR

The CRS Processor is the main component of the subsystem because its the one containing the
business logic which controls and regulates the train movements inside the controlled area. It is
implemented using the C++ language, multi-platform (linux and windows), stateless and exchanges
data by xml files. Differently from other components, it is not connected to the communication bus,
but it is executed only when the input data change.

The choice of implementing the CRS Processor as a stateless executable which elaborates a single
xml file at every execution is motivated by three major reasons:

bug-fixing

test case

management of memory

Bug fixing is greatly eased by the possibility of reproducing exactly and effortlessly the situation that
caused the bug to appear, which is a very useful facility in the traceability and identification of bugs
during the development and testing stages.

Test cases can be conceived and implemented in an easy and separate manner from the activity
and behavior of other components, thus decoupling the tasks of testing each component.

The management of memory is also greatly simplified because possible memory-leaks, which
represent one of the major risks associated to C++ programming, become negligible and loose
importance.

The input data to the CRS Processor contains the static railway infrastructure and a snapshot of the
data provided by the State Manager which represent the following entities:

The timetable

The operator choices

The current position of trains in the controlled area

The current status of railway infrastructure


File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 19 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
The forecasts of trains arrival from surrounding systems

The output produced by the CRS Processor is represented by the following data:

A forecast of trains position inside the controlled area

The possible conflicts between trains

The solutions to the found conflicts

The commands to send to the interlocking for ARS

Warnings and alarms about critical conditions

To obtain such result, the CRS Processor elaborates the input data and builds a mathematical
model where the choices to do are represented by decisional variables, the physical and operational
constraints and the railway rules to apply are translated into linear disequations and quality
constraints into an objective function to optimize. The solution of such model determines the values
of decisional variables which, in turn, are immediately associated to operational choices expressed
in railway terms.

The solution of the mathematical model is computed by a heuristic algorithm. Such an algorithm is
guaranteed to find a feasible solution with a short execution time.

The CRS Processor must make sure to provide a response in a configurable maximum time. In
order to do so, the CRS Processor is subject to a time-out and at the expire of the time-out the CRS
Processor terminates with one of the following results:

1) No feasible solution found

2) A feasible solution found

When no feasible solution is found, it means that, given the current situation, either the time-out is
too short for the heuristic solver to terminate or it isnt possible to move all the trains respecting the
railway rules. As a simple example of the second possibility, consider a train that is longer than any
stopping position and is not in free transit. By the rules it cannot be assigned to any stopping point.
In such cases the CRS Processor returns an alarm to the system and it is responsibility of the
operator to manually place the trains.

3.6 CRS-SSA TRAIN POSITION TRACKER

The TPT software component keeps a constantly updated snapshot of the trains currently inside the
controlled area. It holds the relation between trains and occupied track circuits and also between
trains and blocked/formed routes.

It is both a consumer and a producer of events, it consumes events coming from:

The interlocking, via the appropriate interface component

The operators

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 20 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
The surrounding systems

Any client component querying the TPT state

All these kind of events may come from different message queues (topics) of the MoM, but they are
inserted into a single queue before being processed respecting the time ordering. The TPT main
loop checks for events on the queue and processes them. If the event is a client request, it gets
processed and a response event is generated, otherwise if its an event that causes a state
modification, a state-change event is generated.

Most frequent events are the track circuit occupation events. A track circuit can operate a transition
from free to occupied or vice-versa. When a track circuit passes from free to occupied, the TPT
identifies the only blocked route which includes it, if there is one, and associates the track circuit to
the train. If there is no blocked route including it, then this means that the track circuit is either
occupied by something else than a train, maybe a draisine or maintenance vehicle, or its a false
occupancy. Either way its of no interest for the TPT subsystem. When the track circuit passes from
occupied to free, it is considered no more belonging to the train which occupied it before.

The TPT generates messages on the MoM when:

A train advances along its route inside a station

A train arrives to its designated stopping position

A train leaves its designated stopping position

A train arrives to its designated output line-point toward a surrounding system

The requests exposed by the TPT includes the following:

List of track circuits occupied by a train

List of train(s) that occupy a specified track circuit

List of all train in the controlled area

List of all train in the controlled area and for each of them the list of occupied track
circuits

This last request provides a complete snapshot of the current state of the TPT.

3.7 CRS-SSA DATA LOGGER

For the CRS-SSA Processor to accurately compute the forecasts of trains inside the multi-station, it
is necessary to have the travelling times of routes and of single track circuits. In order to obtain such
data a dedicated component is developed, the CRS-SSA Data Logger.

It registers itself as a consumer of events coming from the TPT component and when a train passes
from one track circuit to another, it calculates and stores on the file system the travelling time of the
train.
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 21 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
Such data shall be processed externally to compute the mean travelling times of track circuits,
possibly divided by train category and type of transit (stop or free transit). This will allow a fine-tuning
of the CRS-SSA Processor to improve the precision of computed forecasts, as time goes by and the
quantity of logged data increases.

4 MESSAGES

4.1 EVENTS PRODUCED

The following table summarizes the asynchronous messages produced by the components of the
CRS software sub-system to be consumed either internally by other components of the same sub-
system or externally by other components of the whole system, like the SSDC Core sub-system. For
details about the data format of the messages refer to document [4].
Pr Co Message ID Descripti
od ns on
uc um
er ers
Or Ext Forecast_All The
ch ern forecast of
est al all trains
rat
or
Or Ext Forecast_Single The
ch ern forecast of
est al a single
rat train
or
Or Ext FoundConflicts_All All the
ch ern found
est al conflicts
rat
or
Or Ext FoundConflict_Single A new or
ch ern modified
est al found
rat conflict
or
Or Ext FoundConflict_Single_ A found
ch ern Remove conflict no
est al more
rat present
or
Or Ext SolvedConflicts_All All the
ch ern solved
est al conflicts
rat
or
Or Ext SolvedConflicts_Singl A new or
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 22 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
ch ern e modified
est al solved
rat conflict
or
Or Ext SolvedConflicts_Singl A solved
ch ern e_Remove conflict no
est al more
rat present
or
Or Ext ARS_All All route
ch ern command
est al s to send
rat
or
Or Ext ARS_Single A new
ch ern route
est al command
rat to send
or
Or Ext SufferingTrains_All All
ch ern suffering
est al trains
rat
or
Or Ext SufferingTrains_Single A new or
ch ern modified
est al suffering
rat train
or
Or Ext SufferingTrains_Single A train no
ch ern _Remove more
est al suffering
rat
or
Or Ext Warnings_All All
ch ern warnings
est al
rat
or
Or Ext Warnings_Single A new
ch ern warning
est al
rat
or
Or Ext Warnings_Single_Re A warning
ch ern move no more
est al active
rat
or

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 23 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
TP Sta TrainMovement_Singl A single
T te e train
Ma movement
na
ger
TP Sta TrainAtStoppingPoint_ A single
T te Single train arrive
Ma at
na stopping-
ger point
,
Ext
ern
al
TP Sta TrainDepartureFromSt A single
T te oppingPoint_Single train
Ma departure
na from
ger stopping-
, point
Ext
ern
al
TP Sta TrainAtOutputLinePoi A single
T te nt_Single train arrive
Ma at output
na line-point
ger
,
Ext
ern
al
St Or Timetable_Changed Timetable
at ch data
e est changed
M rat
an or
ag
er
St Or OperatorDecisions_C Operator
at ch hanged decisions
e est changed
M rat
an or
ag
er
St Or InterlockingState_Cha Interlockin
at ch nged g state
e est changed
M rat
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 24 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
an or
ag
er
St Or SurroundingSystems surroundin
at ch _Changed g systems
e est data
M rat changed
an or
ag
er
St Or InfrastructuralData_Ch Infrastruct
at ch anged ural data
e est changed
M rat
an or
ag
er
St Or TrainsPositions_Chan Trains
at ch ged positions
e est changed
M rat
an or
ag
er

Table 1

The events produced by the TPT component are present only in case of the CRS-SSA Generic
Application.

4.2 EVENTS CONSUMED

The following table summarizes the asynchronous messages consumed by the components of the
CRS software sub-system received by other external components of the whole system, like the
SSDC Core and the SSDC ISACC sub-systems.
Co Message ID Description Ap
ns pli
u ca
m bili
er ty
St Timetable_All The timetable of all G.
ate trains P.
Ma CR
na S
ge
r
St Timetable_Sin The timetable of a G.
ate gle single train P.
Ma CR
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 25 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
na S
ge
r
St Timetable_Sin A single train to G.
ate gle_Remove remove from P.
Ma timetable CR
na S
ge
r
St Failure_Single A single Failure Data G.
ate P.
Ma CR
na S
ge
r
St Failure_Single A single Failure to G.
ate _Remove remove P.
Ma CR
na S
ge
r
St Slowdown_Sin A single Slowdown G.
ate gle Data P.
Ma CR
na S
ge
r
St Slowdown_Sin A single Slowdown G.
ate gle_Remove to remove P.
Ma CR
na S
ge
r
St StationPriority A single Station G.
ate _Single Priority Data A.
Ma CR
na S-
ge Lat
r via
St StationPriority A single Station G.
ate _Single_Remo Priority to remove A.
Ma ve CR
na S-
ge Lat
r via
St LinePriority_Si A single Line Priority G.
ate ngle Data A.
Ma CR
na S-
ge Lat
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 26 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
r via
St LinePriority_Si A single Line Priority G.
ate ngle_Remove to remove A.
Ma CR
na S-
ge Lat
r via
St ARSEnabling_ A single station G.
ate SingleStation ARSEnabling Data P.
Ma CR
na S
ge
r
St ARSEnabling_ A single train G.
ate SingleTrain ARSEnabling Data P.
Ma CR
na S
ge
r
St TrainPosition_ A single train G.
ate Single position Data P.
Ma CR
na S
ge
r
St ARSActivation A single train G.
ate _SingleTrain ARSActivation Data P.
Ma CR
na S
ge
r
St BlockedRoute A single blocked G.
ate _Single route Data A.
Ma CR
na S-
ge Lat
r via
St BlockedRoute A single unblocked G.
ate _Single_Remo route Data A.
Ma ve CR
na S-
ge Lat
r via
St ConsensusRe A single consensus G.
ate quest_Single request Data A.
Ma CR
na S-
ge SS
r A

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 27 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
St VariedTime_Si A single varied time G.
ate ngle Data P.
Ma CR
na S
ge
r
St TrainPriority_S A single train priority G.
ate ingle Data P.
Ma CR
na S
ge
r
St OperatorSolve A single conflict G.
ate dConflict_Singl solved by operator P.
Ma e Data CR
na S
ge
r
St OperatorSolve A single conflict G.
ate dConflict_Singl removed by operator P.
Ma e_Remove Data CR
na S
ge
r
St OperatorSche A single G.
ate duledMeeting_ scheduledMeeting P.
Ma Single fixed by operator CR
na Data S
ge
r
St OperatorSche A single G.
ate duledMeeting_ scheduledMeeting P.
Ma Single_Remov removed by operator CR
na e Data S
ge
r
TP TrackCircuit_S A single track circuit G.
T ingle occupation state A.
CR
S-
SS
A
TP TrackCircuit_S A single track circuit G.
T ingle blocking state A.
CR
S-
SS
A
TP Switch_Single A single switch G.
T control state A.
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 28 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
CR
S-
SS
A
TP Switch_Single A single switch G.
T position state A.
CR
S-
SS
A
TP Switch_Single A single switch G.
T blocking state A.
CR
S-
SS
A
TP Signal_Single A single signal G.
T control state A.
CR
S-
SS
A
TP Signal_Single A single signal way G.
T state A.
CR
S-
SS
A
TP BlockOrientati A single block G.
T on_Single orientation A.
CR
S-
SS
A
TP ExcludedEntity A single entity G.
T _Single excluded state A.
CR
S-
SS
A
Table 2

4.3 REQUEST/RESPONSE API EXPOSED

The following table summarizes the request/response API exposed by the components of the CRS
software sub-system to be used either internally by other components of the same sub-system or
externally by other components of the whole system, like the SSDC sub-system, the HMI
components or others.

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 29 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
Exp Called Messa Description
ose By ge ID
d
By
Stat Orchest Timeta The timetable of all
eMa rator ble_All trains
nag
er
Stat Orchest TrainsP The position of all
eMa rator osition_ trains
nag All
er
Stat Orchest Status_ All status
eMa rator All information
nag
er
Orc Externa Foreca Forecast of all trains
hest l st_All
rato
r
Orc Externa Found All the found
hest l Conflict conflicts
rato s_All
r
Orc Externa Solved All the solved
hest l Conflict conflicts
rato s_All
r
Orc Externa ARS_Al All route commands
hest l l to send
rato
r
Orc Externa Sufferin All suffering trains
hest l gTrains
rato _All
r
Orc Externa Warnin All warnings
hest l gs_All
rato
r
Table 3

4.4 REQUEST/RESPONSE API CALLED

The following table summarizes the request/response API called by the State Manager and TPT
components of the CRS software sub-system which should be available from external components
of the whole system (SSDC Core and SSDC ISACC).
Called Message ID Description
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 30 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
By
StateM Timetable_All The timetable of all trains
anager
StateM Failures_All All Failures Data
anager
StateM Slowdowns_All All Slowdowns Data
anager
StateM ARSEnabling_All All stations ARSEnabling
anager Station Data
StateM ARSEnabling_All All trains ARSEnabling
anager Train Data
StateM TrainsPosition_All The position of all trains
anager
StateM ARSActivation_Al The ARS Activation of all
anager l trains
StateM BlockedRoutes_A All status information
anager ll
StateM ConsensusReque All Consensus Request
anager sts_All information
StateM VariedTimes_All All varied times Data
anager
StateM TrainPriorities_All All train priorities Data
anager
StateM OperatorSolvedC All Operator-Solved
anager onflicts_All Conflicts Data
StateM ScheduledMeetin All ScheduledMeetings
anager gs_All Data
TPT RefreshInterlocki A total refresh of the
ng_All interlocking state
Table 4

5 CONFIGURATION

5.1 CONFIGURATION DATA

When a new Specific Application, i. e. a particular line or multi-station plant, is deployed, it is


necessary to provide a set of infrastructural data that is characteristic of the plant.

This kind of information is static and its read by the interested components only at start-up and it
cannot change for the lifetime of the application. Should this information change, a restart of the
application is necessary.

The configuration file containing the information about the infrastructure of the controlled area is
composed by an xml file whose grammar is defined by the xsd schema in appendix.

In the case of the CRS-SSA Generic Application, such data can be derived from the scheme plan
and the table of conditions of the ACC.
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 31 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
In particular these data are of interest for the TPT component which must know the sequence of
track circuits that compose the routes (CRS-SSA Generic Application only) and for the Orchestrator
that, only at first invocation, prepares and stores on the file system the data structures representing
the railway infrastructure needed by the CRS Processor.

The configuration data is composed of three elements that contain the Railway Infrastructure, the
network model and the circulation rules specific data. The adopted format dictates a strict separation
for the infrastructure and signaling entities from the network model used by the timetable.

1.1.10 INFRASTRUCTURE AND SIGNALING

The controlled area is described by the stations, the railway stops, the open line tracks, the block
sections, the BAs and their mutual interrelations.

1.1.11 NETWORK MODEL

The controlled area is described, from the timetable point of view, by the elementary routes, the
timetable-points and their mutual interrelations.

1.1.12 CIRCULATION RULES

Each railway administration applies a set of rules to manage the train circulation that are peculiar to
that specific administration. In order to cope with such rules, the configuration file shall provide this
kind of data.

1.1.13 ASSUMPTIONS AND OBJECTIVES

The following assumptions are considered to hold:

Stations and Railway Stops have a unique identifier in all the controlled area.

The BAs have a unique identifier in all the controlled area, such identifiers are obtained
from plant data

Given an open-line track connecting station A with station B, the block sections can be
present in both directions (A to B and B to A) and they are identified by a progressive
number

The following goals are obtained:

To avoid to introduce any fictitious identifier which has no correspondence with an entity
of the railway infrastructure or signaling system or the network model

To make sure that the timetable data contains only data coming from the network model

To make sure that the status data representing trains positions contains only data
coming from the signaling system.

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 32 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
1.1.14 DATA FORMAT

The data format is compliant with the data model described in document [2] and is explained by way
of an example. The formal definition is given by the xml schema in appendix.

Consider the example given in the following figure:

Figure 3

Where the black colored lines represent the BAs, the red colored lines represent the block sections,
the blue boxes represent stations and the orange colored box is a railway stop.

The red colored labels represent station or railway stop identifiers, the green colored labels
represent elementary route identifiers and the black colored labels are BA identifiers.

Furthermore, suppose that stations A, C and Z are gateway stations which form the boundary of the
controlled area.

The station B is fully controlled by the system and its representation is given by the following figure.

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 33 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6

Figure 4

Note that the layout and detailed data of this station are not fictitious but they closely match the
scheme plan and condition table of the Ronchi dei Legionari Sud station, see ref. [5] and [6].

The configuration file is composed by the following nodes:

Common Railway, which describes the railway infrastructure configuration data common
to the Generic Product and hence shared by the two Generic Applications.

GA-Specific Railway, which contains the Generic Application specific information about
the railway infrastructure configuration data and is a choice of either a CRS-Latvia
Railway node or a SSA-Italy Railway node.

Network Model, which describes the network model configuration data common to the
Generic Product and hence shared by the two Generic Applications.

GA-Specific Circulation Rules, which contains the Generic Application specific


information about configuration data used by the circulation rules. It is a choice of either
a CRS-Latvia Circulation Rules node or a SSA_Italy Circulation Rules node.

The following chapter describe the format of each element showing what the configuration file
content would be in the example of the previous figures.

1.1.14.1 COMMON RAILWAY


The Railway element contains is composed of the following mandatory child elements:

Stations

Tracks
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 34 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
RailwayStops

InActivationPoints

1.1.14.1.1 STATIONS ELEMENT


This element includes the GP-related information for all the railway stations in the controlled
area. It is composed of a sequence of one or more Station elements.

5.1.1.1.1.1 Station Element


This element represents a single station in the controlled area. It is composed of some
attributes that identify it and a sequence of elements that define its physical characteristics.
The attributes are:

Id: string mandatory. Unique identifier.

Name: string - mandatory

Type: StationType (Regular, Gate or Communication Point)


The child elements are:

LinePoints

StoppingPoints

IntermediatePoints

Routes

StoppingPointDetails

CorrectPaths
They are all mandatory.

5.1.1.1.1.1.1 LinePoints Element


This element includes all the line-points of the station. It is composed of a sequence of one or
more LinePoint elements.

5.1.1.1.1.1.1.1 LinePoint Element


This element represent an input/output line-point for the station. It is composed of the following
attributes:

Id: string mandatory. Unique identifier.

AdjacentBA: string mandatory, identifier of the BA to which the line-point is


connected to.
Note that no two line-points inside a station can have the same value for Id attribute.

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 35 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
5.1.1.1.1.1.2 StoppingPoints Element
This element includes all the stopping-points of the station. It is composed of a sequence of one
or more StoppingPoint elements.

5.1.1.1.1.1.2.1 StoppingPoint Element


This element represent a stopping-point for the station, i.e. a place where a train can stop for
embarking/disembarking passengers and/or goods. It is composed of the following attributes:

Id: string mandatory. Unique identifier.

TimePointId: string mandatory, Unique identifier of the stopping-point used in the


timetable.
Note that no two stopping-points inside a station can have the same value for Id attribute.

5.1.1.1.1.1.3 IntermediatePoints Element


This element includes all the intermediate-points of the station. It is composed of a sequence of
zero or more IntermediatePoint elements.

5.1.1.1.1.1.3.1 IntermediatePoint Element


This element represent an intermediate-point for the station, i.e. a place where a train can stop
but not for embarking/disembarking passengers and/or goods. It is composed of the following
attributes:

Id: string mandatory. Unique identifier.


Note that no two intermediate-points inside a station can have the same value for Id attribute.

5.1.1.1.1.1.4 Routes Element


This element includes all the routes of the station. It is composed of a sequence of one or more
Route elements.

5.1.1.1.1.1.4.1 Route Element


This element represent a route inside the station. Routes are either input routes or output
routes. Input routes connect a line-point to a stopping-point while output routes connect a
stopping-point to a line-point. If the station supports multiple signaling then there may be
intermediate-points and in such cases a train that enters a station can go through two routes,
one from a line-point to an intermediate-point and one from an intermediate-point to a stopping-
point. Similarly for exiting a station there may be two routes, one connecting a stopping-point to
an intermediate-point and one from the intermediate-point to the line-point.
Route are composed of the following attributes:

Id: string mandatory. Unique identifier.

OriginPointId string mandatory, identifier of a stopping-point or a line-point or an


intermediate-point.

EndingPointId: string mandatory, identifier of a stopping-point or a line-point or an


intermediate-point.
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 36 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
Note that no two routes inside a station can have the same value for Id attribute.

5.1.1.1.1.1.5 StoppingPointsDetails Element


This element includes details about the stopping points of the station. It is composed of a
sequence of zero or more StoppingPointDetailsPoint elements.

5.1.1.1.1.1.5.1 StoppingPointDetails Element


This element represents the details about a single stopping point. It is composed of a sequence
of zero or more LenByInputRoute and the following attributes:

TimePointId: string mandatory. Identifier of a stopping-point.

FromBuildingOrder: positive integer optional. Distance from the travellers building.

UnderPass: ZeroOne optional. Presence of the underpass.

RAR: ZeroOne optional. Presence of the RAR device.

5.1.1.1.1.1.5.1.1 LenByInputRoute Element

This element represents details about a single stopping point for trains coming from a single
input route. It is composed of the following attributes:

RouteId: string mandatory. Identifier of a line-point.

TrackCircuitLength: positive integer optional. Track circuit (BA) length, in meters

PlatformLength: positive integer optional. Platform length, in meters

5.1.1.1.1.1.6 CorrectPaths Element


This element includes details about the Correct Path stopping points of the station. It is
composed of a sequence of zero or more CorrectPath elements.

5.1.1.1.1.1.6.1 CorrectPath Element


This element represents the details about a single Correct Path stopping point. It is composed
the following attributes:

InputLinePointId: string mandatory. Identifier of the input line-point.

OutputLinePointId: string mandatory. Identifier of the output line-point.

TimePointId: string mandatory. Identifier of the stopping-point.

1.1.14.1.2 EXAMPLE OF STATIONS ELEMENT


The Stations element for the controlled area of the previous figures would be:
<Stations>
<Station Id="A" Name="Station_A" Type="Gate">
<LinePoints>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 37 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<LinePoint Id="01" AdjacentBA="BA1"/>
<LinePoint Id="02" AdjacentBA="BA8"/>
</LinePoints>
<StoppingPoints/>
<IntermediatePoints/>
<Routes/>
<StoppingPointsDetails/>
<CorrectPaths/>
</Station>
<Station Id="B" Name="Station_B" Type="Regular">
<LinePoints>
<LinePoint Id="01" AdjacentBA="BA4"/>
<LinePoint Id="06" AdjacentBA="BA12"/>
<LinePoint Id="41" AdjacentBA="BA5"/>
<LinePoint Id="05" AdjacentBA="BA13"/>
<LinePoint Id="02" AdjacentBA="BA16"/>
</LinePoints>
<StoppingPoints>
<StoppingPoint Id="03" TimePointId="I"/>
<StoppingPoint Id="04" TimePointId="II"/>
</StoppingPoints>
<IntermediatePoints/>
<Routes>
<Route Id="01-03" OriginPointId="01" EndingPointId ="03"/>
<Route Id="01-04" OriginPointId ="01" EndingPointId ="04"/>
<Route Id="02-04" OriginPointId ="02" EndingPointId ="04"/>
<Route Id="05-03" OriginPointId ="05" EndingPointId ="03"/>
<Route Id="05-04" OriginPointId ="05" EndingPointId ="04"/>
<Route Id="06-04" OriginPointId ="06" EndingPointId ="04"/>
<Route Id="41-03" OriginPointId ="41" EndingPointId ="03"/>
<Route Id="41-04" OriginPointId ="41" EndingPointId ="04"/>
<Route Id="03-01" OriginPointId ="03" EndingPointId ="01"/>
<Route Id="03-05" OriginPointId ="03" EndingPointId ="05"/>
<Route Id="03-41" OriginPointId ="03" EndingPointId ="41"/>
<Route Id="04-01" OriginPointId ="04" EndingPointId ="01"/>
<Route Id="04-06" OriginPointId ="04" EndingPointId ="06"/>
<Route Id="04-02" OriginPointId ="04" EndingPointId ="02"/>
<Route Id="04-05" OriginPointId ="04" EndingPointId ="05"/>
<Route Id="04-41" OriginPointId ="04" EndingPointId ="41"/>
</Routes>
<StoppingPointsDetails>
<StoppingPointDetails TimePointId="I" FromBuildingOrder="1" UnderPass="1" RAR="0" >
<LenByInputRoute RouteId="01-03" TrackCircuitLen="110" PlatformLen="100" />
</StoppingPointDetails>
<StoppingPointDetails TimePointId="II" FromBuildingOrder="2" UnderPass="1" RAR="0" >
<LenByInputRoute RouteId="01-04" TrackCircuitLen="80" PlatformLen="70" />
</StoppingPointDetails>
</StoppingPointsDetails>
<CorrectPaths>
<CorrectPath InputLinePointId="01" OutputLinePointId="05" TimePointId="I"/>
<CorrectPath InputLinePointId="05" OutputLinePointId="01" TimePointId="I"/>
<CorrectPath InputLinePointId="06" OutputLinePointId="02" TimePointId="II"/>
<CorrectPath InputLinePointId="02" OutputLinePointId="06" TimePointId="II"/>
<CorrectPath InputLinePointId="41" OutputLinePointId="01" TimePointId="I"/>
<CorrectPath InputLinePointId="41" OutputLinePointId="02" TimePointId="II"/>
</CorrectPaths>
</Station>
<Station Id="C" Name="Station_C" Type="Gate">
<LinePoints>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 38 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<LinePoint Id="01" AdjacentBA="BA7"/>
</LinePoints>
<StoppingPoints/>
<IntermediatePoints/>
<Routes/>
<StoppingPointsDetails/>
<CorrectPaths/>
</Station>
<Station Id="Z" Name="Station_Z" Type="Gate">
<LinePoints>
<LinePoint Id="01" AdjacentBA="BA15"/>
<LinePoint Id="02" AdjacentBA="BA20"/>
</LinePoints>
<StoppingPoints/>
<IntermediatePoints/>
<Routes/>
<StoppingPointsDetails/>
<CorrectPaths/>
</Station>
</Stations>

1.1.14.1.3 TRACKS ELEMENT


This element includes all the open-line tracks in the controlled area. It is composed of a sequence of
one or more Track elements.

5.1.1.1.1.2 Track Element


This element represents a single open-line track in the controlled area. It is composed of some
attributes that identify it and some child elements.
The attributes are:

StationA: string mandatory. Identifier of the starting station

StationB: string mandatory. Identifier of the final station

The child elements are:

BAs: the ordered (in the direction from station A to station B) set of BA that compose the
track

SectionsAToB: Block sections in the direction from station A to station B

SectionsBToA: Block sections in the direction from station B to station A

BAs and SectionsAToB are mandatory, SectionsBToA is optional and present only if the trains are
allowed to travel in the direction from B to A.

5.1.1.1.1.2.1 BAs Element

The BAs element represent the BA (open line track circuit) that compose the track in the order from
station A to station B, and is composed by a sequence of one or more BA Element.
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 39 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
5.1.1.1.1.2.1.1 BA Element

The BAs element represent a singl BA (open line track circuit) in the track, and is composed by the
following attributes:

Id: string mandatory. Identifier of the BA

Length: positive integer mandatory. The length in meters of the BA

The sum of the lengths of the BAs yield the total length of the track.

Both elements are composed by the attribute:

SafetyDistance: positive integer mandatory: number of block sections that must be left
clear between two follower trains.

And a sequence of one or more Section Element.

5.1.1.1.1.2.2 SectionsAToB Element

This element represent the ordered sequence of block sections in the direction from station A to
station B. It is composed by the attribute:

SafetyDistance: positive integer mandatory: number of block sections that must be left
clear between two follower trains.

And a sequence of one or more Section Element.

5.1.1.1.1.2.2.1 Section Element

This element represent a single block section. It is composed by the following attributes:

Progressive: positive integer mandatory. Progressive number of the block section in the
direction from station A to station B

Length: integer mandatory. The length in meters of the block section

The sum of the lengths of the block sections must be equal to the sum of the lengths of BAs.

5.1.1.1.1.2.3 SectionsBToA Element

This element represent the ordered sequence of block sections in the direction from station B to
station A. It is composed by the attribute:

SafetyDistance: positive integer mandatory: number of block sections that must be left
clear between two follower trains.

And a sequence of one or more Section Element.

1.1.14.1.4 EXAMPLE OF TRACKS ELEMENT


The Tracks element for the controlled area of the previous figures would be:
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 40 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<Tracks>
<Track StationA="A" StationB="B">
<BAs>
<BA Id="1" Length="1000"/>
<BA Id="2" Length="1000"/>
<BA Id="3" Length="1000"/>
<BA Id="4" Length="1000"/>
</BAs>
<SectionsAToB SafetyDistance="1">
<Sections Progressive="1" Length="1500"/>
<Sections Progressive="2" Length="1000"/>
<Sections Progressive="3" Length="1500"/>
</SectionsAToB>
</Track>
<Track StationA="B" StationB="A">
<BAs>
<BA Id="12" Length="500"/>
<BA Id="11" Length="1000"/>
<BA Id="10" Length="1000"/>
<BA Id="9" Length="1000"/>
<BA Id="8" Length="500"/>
</BAs>
<SectionsAToB SafetyDistance="1">
<Sections Progressive="1" Length="1500"/>
<Sections Progressive="2" Length="1000"/>
<Sections Progressive="3" Length="1500"/>
</SectionsAToB>
</Track>
<Track StationA="B" StationB="C">
<BAs>
<BA Id="5" Length="2000"/>
<BA Id="6" Length="2000"/>
<BA Id="7" Length="2000"/>
</BAs>
<SectionsAToB SafetyDistance="1">
<Sections Progressive="1" Length="6000"/>
</SectionsAToB>
<SectionsBToA SafetyDistance="1">
<Sections Progressive="1" Length="6000"/>
</SectionsBToA>
</Track>
<Track StationA="B" StationB="Z">
<BAs>
<BA Id="13" Length="1500"/>
<BA Id="14" Length="1500"/>
<BA Id="15" Length="2000"/>
</BAs>
<SectionsAToB SafetyDistance="1">
<Sections Progressive="1" Length="2500"/>
<Sections Progressive="2" Length="2500"/>
</SectionsAToB>
</Track>
<Track StationA="Z" StationB="B">
<BAs>
<BA Id="20" Length="1000"/>
<BA Id="19" Length="1000"/>
<BA Id="18" Length="1000"/>
<BA Id="17" Length="1000"/>
<BA Id="16" Length="1000"/>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 41 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</BAs>
<SectionsAToB SafetyDistance="1">
<Sections Progressive="1" Length="1500"/>
<Sections Progressive="2" Length="2000"/>
<Sections Progressive="3" Length="1500"/>
</SectionsAToB>
</Track>
</Tracks>

1.1.14.1.5 RAILWAYSTOPS ELEMENT


This element includes all the railway stops in the controlled area. It is composed of a sequence of
one or more RailwayStop elements.

5.1.1.1.1.3 RailwayStops Element


This element represents a single railway stop in the controlled area. It is composed of some
attributes that identify it and one or two RailwayStopPosition elements that define its position.
The attributes are:

Id: string mandatory. Unique identifier.

Name: string mandatory. Name of the railway stop.

5.1.1.1.1.3.1 RailwayStopPosition Element


This element represents the position of a railway stop. It is composed of the following attributes:

StationA: string mandatory. Identifier of one of the A station of the track the stopping
point is placed on.

StationB: string mandatory. Identifier of one of the B station of the track the stopping
point is placed on.

DistanceFromStationA: positive integer mandatory. Distance from the starting station of


the track, in meters.

1.1.14.1.6 EXAMPLE OF RAILWAYSTOPS ELEMENT


The railwayStops element for the controlled area of the previous figures would be:
<RailwayStops>
<RailwayStop Id="K" Name="Stop_K">
<RailwayStopPosition StationA="B" StationB="C" DistanceFromStationA="3500"/>
</RailwayStop>
</RailwayStops>

1.1.14.1.7 INACTIVATIONPOINTS ELEMENT


This element includes all the activation points in the controlled area used for trains entering stations.
It is composed of a sequence of one or more InActivationPoint elements.
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 42 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
5.1.1.1.1.4 InActivationPoint Element
This element represents a single activation point used for trains entering a station. It is composed of
the following attributes:

Id: string mandatory. Unique identifier.

StationId: string mandatory. Identifier of the associated station.

1.1.14.2 GA-SPECIFIC RAILWAY


This element contains further railway infrastructure configuration data that are specific to the
Generic Application. It is a choice of either a CRS-Latvia Railway node or a SSA-Italy Railway node.

1.1.14.2.1 CRS_LATVIA_RAILWAY ELEMENT


This element contains railway infrastructure configuration data that are specific to the CRS-Latvia
Generic Application.
It is composed of the following elements:

CRS_Latvia_StationsDetails

OutActivationPoints

5.1.1.1.1.5 CRS_Latvia_StationsDetails Element


This element contains all station configuration data that are specific to the CRS-Latvia Generic
Application. It is composed by a sequence of CRS_Latvia_StationDetails elements.

5.1.1.1.1.5.1 CRS_Latvia_StationsDetails Element


This element describes a single stations configuration data that are specific to the CRS-Latvia
Generic Application. It is composed by the following attribute:

StationId: string mandatory. Identifier of the station.


And a sequence of IncompatibleRoutes elements.

5.1.1.1.1.5.1.1 IncompatibleRoutes Element


This element describes all incompatible routes of a station. It is composed by the following
attributes:

BlockedRouteId: string mandatory. Identifier of a station route.

UnblockableRouteId: string mandatory. Identifier of a station route.


This means that if BlockedRouteId is blocked then UnblockableRouteId cannot be blocked.

5.1.1.1.1.6 OutActivationPoints Element


This element includes all the activation points in the controlled area used for trains exiting stations
(including trains in free transit). It is composed of a sequence of one or more OutActivationPoint
elements.
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 43 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
5.1.1.1.1.6.1 OutActivationPoint Element
This element represents a single activation point used for trains exiting a station. It is composed of
the following attributes:

Id: string mandatory. Unique identifier.

StationId: string mandatory. Identifier of the associated station.

1.1.14.2.2 SSA_ITALY_RAILWAY ELEMENT


This element contains railway infrastructure configuration data that are specific to the SSA_Italy
Generic Application. It is composed by a SSA_Italy_StationsDetails element.

5.1.1.1.1.7 SSA_Italy_StationsDetails Element


This element contains all station configuration data that are specific to the SSA_Italy Generic
Application. It is composed by a sequence of SSA_Italy_StationDetails elements.

5.1.1.1.1.7.1 SSA_Italy_StationsDetails Element


This element describes a single stations configuration data that are specific to the SSA_Italy
Generic Application. It is composed by the following attributes:

StationId: string mandatory. Identifier of the station.


And a sequence of the following elements:

TrackCircuits

Switches

Signals

ConditionTable

5.1.1.1.1.7.1.1 TrackCircuits Element


This element includes all the track circuits of the station. It is composed of a sequence of zero or
more TrackCircuit elements.

5.1.1.1.1.7.1.1.1 TrackCircuit Element

This element represent a single track circuit of the station. It is composed of the following attributes:

Id: string mandatory. Unique identifier.

5.1.1.1.1.7.1.2 Switches Element


This element includes all the switches of the station. It is composed of a sequence of zero or more
Switch elements.

5.1.1.1.1.7.1.2.1 Switch Element

This element represent a single switch of the station. It is composed of the following attributes:

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 44 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
Id: string mandatory. Unique identifier.

5.1.1.1.1.7.2 Signals Element


This element includes all the protection and start signals of the station. It is composed of a sequence
of zero or more Signal elements.

5.1.1.1.1.7.2.1 Signal Element


This element represent a single signal of the station. It is composed of the following attributes:

Id: string mandatory. Unique identifier.

5.1.1.1.1.7.3 ConditionTable Element


This element includes the conditions for blocking and liberation of all the routes of the station. It is
composed of a sequence of zero or more ConditionsForRoute elements.

5.1.1.1.1.7.3.1 ConditionsForRoute Element


This element includes the conditions for blocking and liberation of a single route. It is composed of
the following mandatory elements:

ConditionsForBlocking

ConditionsForLiberation

OtherIncompatibleRoutes
And the attribute:

RouteId: String Mandatory. The route identifier

5.1.1.1.1.7.3.1.1 ConditionsForBlocking Element

This element includes all entities of the station that must be checked for blocking a route. It is
composed of the following mandatory elements:

TrackCircuitsInPath

ProtectionTrackCircuits

SwitchesInPath

ProtectionSwitches

SignalsToCheck

5.1.1.1.1.7.3.1.2 TrackCircuitsInPath Element

This element includes all track circuits that form a routes path. It is composed of an ordered list of
TrackCircuitInPath elements.

5.1.1.1.1.7.3.1.3 TrackCircuitInPath Element


File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 45 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
This element represent a single track circuit that is part of a routes path. It is composed of the
following attributes:

TrackCircuitId: string mandatory. Identifier of a track circuit.

ProgressiveNumber: positive number mandatory. It should be a progressive number


starting from 1 in the direction from the origin point to the ending point.

PermanentOccupation: ZeroOne optional with default vale 0 (false). Flag that indicates
if the track circuit is of permanent occupation.

5.1.1.1.1.7.3.1.4 ProtectionTrackCircuits Element

This element includes all track circuits that protect a route, either lateral and exit. It is composed of
an ordered list of ProtectionCircuit elements.

5.1.1.1.1.7.3.1.5 ProtectionTrackCircuit Element

This element represent a single protection track circuit for a route. It is composed of the following
attribute:

TrackCircuitId: string mandatory. Identifier of a track circuit.

5.1.1.1.1.7.3.1.6 SwitchesInPath Element

This element includes all switches along a routes path. It is composed of an ordered list of
SwitchInPath elements.

5.1.1.1.1.7.3.1.7 SwitchInPath Element

This element represent a single switch that is part of a routes path. It is composed of the following
attributes:

SwitchId: string mandatory. Identifier of a switch.

ProgressiveNumber: positive number mandatory. It should be a progressive number


starting from 1 in the direction from the origin point to the ending point.

Position: SwitchPosition mandatory. The position of the switch when the route is
blocked.

5.1.1.1.1.7.3.1.8 ProtectionSwitches Element

This element includes all switches that protect a route, either lateral, on exit or on stopping point. It
is composed of a zero or more ProtectionSwitch elements.

5.1.1.1.1.7.3.1.9 ProtectionSwitch Element

This element represent a single protection switch for a route. It is composed of the following
attributes:

SwitchId: string mandatory. Identifier of a switch.

Position: SwitchPosition mandatory. The position of the switch when the route is
blocked.
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 46 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
5.1.1.1.1.7.3.1.10 SignalsToCheck Element

This element includes all the signals that must be checked for blocking a route. It is composed of a
zero or more SignalToCheck elements.

5.1.1.1.1.7.3.1.11 SignalToCheck Element

This element represent a single signal that must be checked. It is composed of the following
attributes:

SignalId: string mandatory. Identifier of a signal.

5.1.1.1.1.7.4 ConditionsForLiberation Element


This element includes all entities of the station that must be checked for the elastic liberation of
entities that compose a route. It is composed of the following mandatory elements:

InitialPoint

SwitchesAlongPath

ProtectionSwitches

FinalPoint

5.1.1.1.1.7.4.1 InitialPoint Element


This element includes all the entities that must be checked for the liberation of a routes initial point.
It is composed of zero or more FreeTrackCircuit elements.

5.1.1.1.1.7.4.1.1 FreeTrackCircuit Element

This element represent a single track circuit that must be checked. It is composed of the following
attributes:

TrackCircuitId: string mandatory. Identifier of a track circuit.

Type: TrackCircuitType mandatory. The type of track circuit.

5.1.1.1.1.7.4.1.2 SwitchesAlongPath Element

This element includes all the switches that get liberated as the train goes through the route and
leaves the track circuits containing the switches. It is composed of zero or more SwitchAlongPath
elements.

5.1.1.1.1.7.4.1.3 SwitchAlongPath Element

This element represent a single switch that gets elastically liberated. It is composed of the following
attributes:

SwitchId: string mandatory. Identifier of the switch.

Position: SwitchPosition mandatory. The position of the switch when the route is
blocked.

TrackCircuitId: string mandatory. Identifier of the track circuit that liberates the switch.
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 47 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
5.1.1.1.1.7.4.1.4 ProtectionSwitches Element

This element includes all the protection (lateral and on exit) switches that get liberated as the train
goes through the route and leaves the track circuits. It is composed of zero or more
ProtectionSwitch elements.

5.1.1.1.1.7.4.1.5 ProtectionSwitch Element

This element represent a single switch that gets elastically liberated. It is composed of the following
attributes:

SwitchId: string mandatory. Identifier of the switch.

Position: SwitchPosition mandatory. The position of the switch when the route is
blocked.

TrackCircuitId: string mandatory. Identifier of the track circuit that liberates the switch.

5.1.1.1.1.7.4.2 FinalPoint Element


This element includes all the entities that must be checked for the liberation of a routes final point. It
is composed of zero or more FreeStationTrackCircuit elements.

5.1.1.1.1.7.4.2.1 FreeStationTrackCircuit Element

This element represent a single station track circuit that must be checked. It is composed of the
following attributes:

TrackCircuitId: string mandatory. Identifier of a station track circuit.

5.1.1.1.1.7.5 OtherIncompatibleRoutes Element


This element includes all the incompatible routes not differentiated by switch. It is composed of a
sequence of zero or more OtherIncompatibleRoute elements.

5.1.1.1.1.7.5.1 OtherIncompatibleRoute Element


This element represent an incompatible route not differentiated by switch, i.e. a route which cannot
be blocked at the same time. It is composed of the following attributes:

RouteId: string mandatory. Identifier of a route.

Reason: IncompatibilityReason mandatory. The reason why it is incompatible.

TrackCircuitId: string mandatory. The track circuit which frees the incompatibility.

Time: positive integer optional. A time which must pass after the liberation of the track
circuit to break the incompatibility, if missing it is assumed equal to zero.

1.1.14.2.3 EXAMPLE OF SSA_ITALY_RAILWAY ELEMENT


The SSA_Italy_Railway element for the controlled area of our example would be:
<SSA_Italy_Railway>
<SSA_Italy_StationsDetails>
<SSA_Italy_StationDetails StationId="B">

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 48 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<TrackCircuits>
<TrackCircuit Id ="10"/>
<TrackCircuit Id ="11"/>
<TrackCircuit Id ="12"/>
<TrackCircuit Id ="20"/>
<TrackCircuit Id ="21"/>
<TrackCircuit Id ="22"/>
<TrackCircuit Id ="50"/>
<TrackCircuit Id ="51"/>
<TrackCircuit Id ="52"/>
<TrackCircuit Id ="53"/>
<TrackCircuit Id ="54"/>
<TrackCircuit Id ="61"/>
<TrackCircuit Id ="62"/>
<TrackCircuit Id ="80"/>
<TrackCircuit Id ="301"/>
<TrackCircuit Id ="302"/>
<TrackCircuit Id ="315"/>
<TrackCircuit Id ="316"/>
</TrackCircuits>
<Switches>
<Switch Id="01"/>
<Switch Id="02"/>
<Switch Id="04"/>
<Switch Id="101"/>
<Switch Id="102"/>
</Switches>
<Signals>
<Signal Id="03TS"/>
<Signal Id="04TS"/>
<Signal Id="03ME"/>
<Signal Id="04ME"/>
</Signals>
<ConditionTable>
<ConditionsForRoute RouteId="01-03">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="10"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="11"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="12"/>
<TrackCircuitInPath ProgressiveNumber="4" PermanentOccupation="0" TrackCircuitId="301"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits>
<ProtectionTrackCircuit TrackCircuitId="54"/>
</ProtectionTrackCircuits>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="01" Position="N"/>
<SwitchInPath ProgressiveNumber="2" SwitchId="101" Position="N"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck>
<SignalToCheck SignalId="03TS"/>
</SignalsToCheck>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="Bca01" Type="L"/>
<FreeTrackCircuit TrackCircuitId="10" Type="S"/>
</InitialPoint>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 49 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="01" Position="N" TrackCircuitId="11" />
<SwitchAlongPath SwitchId="101" Position="N" TrackCircuitId="12" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="12"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="03-01" TrackCircuitId="10" Reason="I" />
<OtherIncompatibleRoute RouteId="05-03" TrackCircuitId="54" Reason="O" />
<OtherIncompatibleRoute RouteId="41-03" TrackCircuitId="54" Reason="O" />
<OtherIncompatibleRoute RouteId="03-05" TrackCircuitId="301" Reason="OFT" />
<OtherIncompatibleRoute RouteId="03-41" TrackCircuitId="301" Reason="OFT" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="01-04">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="10"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="11"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="61"/>
<TrackCircuitInPath ProgressiveNumber="4" PermanentOccupation="0" TrackCircuitId="62"/>
<TrackCircuitInPath ProgressiveNumber="5" PermanentOccupation="0" TrackCircuitId="302"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits>
<ProtectionTrackCircuit TrackCircuitId="22"/>
</ProtectionTrackCircuits>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="01" Position="R"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck>
<SignalToCheck SignalId="04TS"/>
</SignalsToCheck>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="Bca01" Type="L"/>
<FreeTrackCircuit TrackCircuitId="10" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="01" Position="R" TrackCircuitId="61" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="62"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="04-01" TrackCircuitId="10" Reason="I" />
<OtherIncompatibleRoute RouteId="02-04" TrackCircuitId="22" Reason="O" />
<OtherIncompatibleRoute RouteId="05-04" TrackCircuitId="22" Reason="O" />
<OtherIncompatibleRoute RouteId="41-04" TrackCircuitId="22" Reason="O" />
<OtherIncompatibleRoute RouteId="04-05" TrackCircuitId="62" Reason="IFT" />
<OtherIncompatibleRoute RouteId="04-41" TrackCircuitId="62" Reason="IFT" />
<OtherIncompatibleRoute RouteId="04-02" TrackCircuitId="302" Reason="OFT" />
</OtherIncompatibleRoutes>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 50 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</ConditionsForRoute>
<ConditionsForRoute RouteId="02-04">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="20"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="21"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="22"/>
<TrackCircuitInPath ProgressiveNumber="4" PermanentOccupation="0" TrackCircuitId="302"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits>
<ProtectionTrackCircuit TrackCircuitId="62"/>
</ProtectionTrackCircuits>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="02" Position="N"/>
<SwitchInPath ProgressiveNumber="2" SwitchId="102" Position="N"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck>
<SignalToCheck SignalId="04ME"/>
</SignalsToCheck>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="316" Type="L"/>
<FreeTrackCircuit TrackCircuitId="20" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="02" Position="N" TrackCircuitId="22" />
<SwitchAlongPath SwitchId="102" Position="N" TrackCircuitId="22" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="22"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="04-02" TrackCircuitId="20" Reason="I" />
<OtherIncompatibleRoute RouteId="01-04" TrackCircuitId="62" Reason="O" />
<OtherIncompatibleRoute RouteId="06-04" TrackCircuitId="62" Reason="O" />
<OtherIncompatibleRoute RouteId="04-01" TrackCircuitId="302" Reason="OFT" />
<OtherIncompatibleRoute RouteId="04-06" TrackCircuitId="302" Reason="OFT" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="05-03">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="50"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="51"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="52"/>
<TrackCircuitInPath ProgressiveNumber="4" PermanentOccupation="0" TrackCircuitId="53"/>
<TrackCircuitInPath ProgressiveNumber="5" PermanentOccupation="0" TrackCircuitId="54"/>
<TrackCircuitInPath ProgressiveNumber="6" PermanentOccupation="0" TrackCircuitId="301"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits>
<ProtectionTrackCircuit TrackCircuitId="12"/>
</ProtectionTrackCircuits>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="04" Position="N"/>
<SwitchInPath ProgressiveNumber="2" SwitchId="02" Position="N"/>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 51 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck>
<SignalToCheck SignalId="03ME"/>
</SignalsToCheck>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="315" Type="L"/>
<FreeTrackCircuit TrackCircuitId="50" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="04" Position="N" TrackCircuitId="52" />
<SwitchAlongPath SwitchId="02" Position="N" TrackCircuitId="53" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="54"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="03-05" TrackCircuitId="50" Reason="I" />
<OtherIncompatibleRoute RouteId="01-03" TrackCircuitId="12" Reason="O" />
<OtherIncompatibleRoute RouteId="03-01" TrackCircuitId="301" Reason="OFT" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="05-04">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="50"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="51"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="52"/>
<TrackCircuitInPath ProgressiveNumber="4" PermanentOccupation="0" TrackCircuitId="53"/>
<TrackCircuitInPath ProgressiveNumber="5" PermanentOccupation="0" TrackCircuitId="22"/>
<TrackCircuitInPath ProgressiveNumber="6" PermanentOccupation="0" TrackCircuitId="302"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits>
<ProtectionTrackCircuit TrackCircuitId="62"/>
</ProtectionTrackCircuits>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="04" Position="N"/>
<SwitchInPath ProgressiveNumber="2" SwitchId="02" Position="R"/>
<SwitchInPath ProgressiveNumber="3" SwitchId="102" Position="N"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck>
<SignalToCheck SignalId="04ME"/>
</SignalsToCheck>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="315" Type="L"/>
<FreeTrackCircuit TrackCircuitId="50" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="04" Position="N" TrackCircuitId="52" />
<SwitchAlongPath SwitchId="02" Position="R" TrackCircuitId="22" />
<SwitchAlongPath SwitchId="102" Position="N" TrackCircuitId="22" />
</SwitchesAlongPath>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 52 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="22"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="04-05" TrackCircuitId="50" Reason="I" />
<OtherIncompatibleRoute RouteId="01-04" TrackCircuitId="62" Reason="O" />
<OtherIncompatibleRoute RouteId="06-04" TrackCircuitId="62" Reason="O" />
<OtherIncompatibleRoute RouteId="04-01" TrackCircuitId="22" Reason="IFT" />
<OtherIncompatibleRoute RouteId="04-06" TrackCircuitId="302" Reason="OFT" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="06-04">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="60"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="61"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="62"/>
<TrackCircuitInPath ProgressiveNumber="4" PermanentOccupation="0" TrackCircuitId="302"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits>
<ProtectionTrackCircuit TrackCircuitId="22"/>
</ProtectionTrackCircuits>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="01" Position="N"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck>
<SignalToCheck SignalId="04TS"/>
</SignalsToCheck>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="Bca06" Type="L"/>
<FreeTrackCircuit TrackCircuitId="60" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="01" Position="N" TrackCircuitId="61" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="62"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="04-06" TrackCircuitId="60" Reason="I" />
<OtherIncompatibleRoute RouteId="02-04" TrackCircuitId="22" Reason="O" />
<OtherIncompatibleRoute RouteId="05-04" TrackCircuitId="22" Reason="O" />
<OtherIncompatibleRoute RouteId="41-04" TrackCircuitId="22" Reason="O" />
<OtherIncompatibleRoute RouteId="04-02" TrackCircuitId="302" Reason="OFT" />
<OtherIncompatibleRoute RouteId="04-05" TrackCircuitId="302" Reason="OFT" />
<OtherIncompatibleRoute RouteId="04-41" TrackCircuitId="302" Reason="OFT" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="41-03">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="80"/>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 53 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="52"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="53"/>
<TrackCircuitInPath ProgressiveNumber="4" PermanentOccupation="0" TrackCircuitId="54"/>
<TrackCircuitInPath ProgressiveNumber="5" PermanentOccupation="0" TrackCircuitId="301"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits>
<ProtectionTrackCircuit TrackCircuitId="12"/>
</ProtectionTrackCircuits>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="04" Position="R"/>
<SwitchInPath ProgressiveNumber="2" SwitchId="02" Position="N"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck>
<SignalToCheck SignalId="03ME"/>
</SignalsToCheck>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="Bca41" Type="L"/>
<FreeTrackCircuit TrackCircuitId="80" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="04" Position="R" TrackCircuitId="52" />
<SwitchAlongPath SwitchId="02" Position="N" TrackCircuitId="53" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="54"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="03-41" TrackCircuitId="80" Reason="I" />
<OtherIncompatibleRoute RouteId="01-03" TrackCircuitId="12" Reason="O" />
<OtherIncompatibleRoute RouteId="03-01" TrackCircuitId="301" Reason="OFT" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="41-04">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="80"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="52"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="53"/>
<TrackCircuitInPath ProgressiveNumber="4" PermanentOccupation="0" TrackCircuitId="22"/>
<TrackCircuitInPath ProgressiveNumber="5" PermanentOccupation="0" TrackCircuitId="302"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits>
<ProtectionTrackCircuit TrackCircuitId="62"/>
</ProtectionTrackCircuits>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="04" Position="R"/>
<SwitchInPath ProgressiveNumber="2" SwitchId="02" Position="R"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck>
<SignalToCheck SignalId="04ME"/>
</SignalsToCheck>
</ConditionsForBlocking>
<ConditionsForLiberation>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 54 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="Bca41" Type="L"/>
<FreeTrackCircuit TrackCircuitId="80" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="04" Position="R" TrackCircuitId="52" />
<SwitchAlongPath SwitchId="02" Position="R" TrackCircuitId="22" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="22"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="04-41" TrackCircuitId="80" Reason="I" />
<OtherIncompatibleRoute RouteId="06-04" TrackCircuitId="62" Reason="O" />
<OtherIncompatibleRoute RouteId="01-04" TrackCircuitId="62" Reason="O" />
<OtherIncompatibleRoute RouteId="04-01" TrackCircuitId="22" Reason="IFT" />
<OtherIncompatibleRoute RouteId="04-06" TrackCircuitId="302" Reason="OFT" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="03-01">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="12"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="11"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="10"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits/>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="101" Position="N"/>
<SwitchInPath ProgressiveNumber="2" SwitchId="01" Position="N"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck/>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="301" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="101" Position="N" TrackCircuitId="12" />
<SwitchAlongPath SwitchId="01" Position="N" TrackCircuitId="11" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="10"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="01-03" TrackCircuitId="12" Reason="I" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="03-05">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="54"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="53"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="52"/>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 55 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<TrackCircuitInPath ProgressiveNumber="4" PermanentOccupation="0" TrackCircuitId="51"/>
<TrackCircuitInPath ProgressiveNumber="5" PermanentOccupation="0" TrackCircuitId="50"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits/>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="02" Position="N"/>
<SwitchInPath ProgressiveNumber="2" SwitchId="04" Position="N"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck/>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="301" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="02" Position="N" TrackCircuitId="53" />
<SwitchAlongPath SwitchId="04" Position="N" TrackCircuitId="52" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="50"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="05-03" TrackCircuitId="54" Reason="I" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="03-41">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="54"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="53"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="52"/>
<TrackCircuitInPath ProgressiveNumber="4" PermanentOccupation="0" TrackCircuitId="80"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits/>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="02" Position="N"/>
<SwitchInPath ProgressiveNumber="2" SwitchId="04" Position="R"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck/>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="301" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="02" Position="N" TrackCircuitId="53" />
<SwitchAlongPath SwitchId="04" Position="R" TrackCircuitId="52" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="80"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="41-03" TrackCircuitId="54" Reason="I" />
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 56 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="04-01">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="62"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="61"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="11"/>
<TrackCircuitInPath ProgressiveNumber="4" PermanentOccupation="0" TrackCircuitId="10"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits/>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="01" Position="R"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck/>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="302" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="01" Position="R" TrackCircuitId="11" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="10"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="01-04" TrackCircuitId="62" Reason="I" />
<OtherIncompatibleRoute RouteId="05-04" TrackCircuitId="22" Reason="IFT" />
<OtherIncompatibleRoute RouteId="41-04" TrackCircuitId="22" Reason="IFT" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="04-06">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="62"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="61"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="60"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits/>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="01" Position="N"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck/>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="302" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="01" Position="N" TrackCircuitId="61" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="60"/>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 57 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="06-04" TrackCircuitId="62" Reason="I" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="04-02">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="22"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="21"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="20"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits/>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="102" Position="N"/>
<SwitchInPath ProgressiveNumber="2" SwitchId="02" Position="N"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck/>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="302" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="102" Position="N" TrackCircuitId="22" />
<SwitchAlongPath SwitchId="02" Position="N" TrackCircuitId="22" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="20"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="02-04" TrackCircuitId="22" Reason="I" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="04-05">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="22"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="53"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="52"/>
<TrackCircuitInPath ProgressiveNumber="4" PermanentOccupation="0" TrackCircuitId="51"/>
<TrackCircuitInPath ProgressiveNumber="5" PermanentOccupation="0" TrackCircuitId="50"/>
</TrackCircuitsInPath>
<ProtectionTrackCircuits/>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="102" Position="N"/>
<SwitchInPath ProgressiveNumber="2" SwitchId="04" Position="N"/>
<SwitchInPath ProgressiveNumber="3" SwitchId="02" Position="R"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck/>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="302" Type="S"/>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 58 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="102" Position="N" TrackCircuitId="22" />
<SwitchAlongPath SwitchId="04" Position="N" TrackCircuitId="52" />
<SwitchAlongPath SwitchId="02" Position="R" TrackCircuitId="53" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="50"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="05-04" TrackCircuitId="22" Reason="I" />
<OtherIncompatibleRoute RouteId="01-04" TrackCircuitId="62" Reason="IFT" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
<ConditionsForRoute RouteId="04-41">
<ConditionsForBlocking>
<TrackCircuitsInPath>
<TrackCircuitInPath ProgressiveNumber="1" PermanentOccupation="1" TrackCircuitId="22"/>
<TrackCircuitInPath ProgressiveNumber="2" PermanentOccupation="0" TrackCircuitId="53"/>
<TrackCircuitInPath ProgressiveNumber="3" PermanentOccupation="0" TrackCircuitId="52"/>
<TrackCircuitInPath ProgressiveNumber="4" PermanentOccupation="0" TrackCircuitId="80"/>

</TrackCircuitsInPath>
<ProtectionTrackCircuits/>
<SwitchesInPath>
<SwitchInPath ProgressiveNumber="1" SwitchId="102" Position="N"/>
<SwitchInPath ProgressiveNumber="2" SwitchId="04" Position="R"/>
<SwitchInPath ProgressiveNumber="3" SwitchId="02" Position="R"/>
</SwitchesInPath>
<ProtectionSwitches/>
<SignalsToCheck/>
</ConditionsForBlocking>
<ConditionsForLiberation>
<InitialPoint>
<FreeTrackCircuit TrackCircuitId="302" Type="S"/>
</InitialPoint>
<SwitchesAlongPath>
<SwitchAlongPath SwitchId="102" Position="N" TrackCircuitId="22" />
<SwitchAlongPath SwitchId="04" Position="R" TrackCircuitId="52" />
<SwitchAlongPath SwitchId="02" Position="R" TrackCircuitId="53" />
</SwitchesAlongPath>
<ProtectionSwitches/>
<FinalPoint>
<FreeStationTrackCircuit TrackCircuitId="80"/>
</FinalPoint>
</ConditionsForLiberation>
<OtherIncompatibleRoutes>
<OtherIncompatibleRoute RouteId="41-04" TrackCircuitId="22" Reason="I" />
<OtherIncompatibleRoute RouteId="01-04" TrackCircuitId="62" Reason="IFT" />
</OtherIncompatibleRoutes>
</ConditionsForRoute>
</ConditionTable>
</SSA_Italy_StationDetails>
</SSA_Italy_StationsDetails>
</SSA_Italy_Railway>

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 59 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6

1.1.14.3 NETWORK MODEL


This element contains the description of the controlled area from the point of view of the timetable,
expressed in terms of elementary routes and the timetable-points. It is composed of the following
mandatory child elements:

TimetablePoints

ElementaryRoutes

1.1.14.3.1 TIMETABLEPOINTS ELEMENT


This element includes all the timetable points (punti orario in the Italian railways parlance) in the
controlled area. It is composed of a sequence of TimetablePoint elements.

5.1.1.1.1.8 TimetablePoint Element


This element describes a single timetable point in the controlled area. It is composed of the following
attributes:

Id: string mandatory. Identifier of the timetable-point.

Name: string mandatory. Name of the timetable-point.

Type: TimetablePointType mandatory. Type of the timetable-point, enumeration with


possible values Station or RailwayStop.

1.1.14.3.2 ELEMENTARYROUTES ELEMENT


This element includes all the elementary routes (tratte elementari in the Italian railways parlance)
in the controlled area. It is composed of a sequence of ElementaryRoute elements.

5.1.1.1.1.9 ElementaryRoute Element


This element describes a single elementary route in the controlled area. It is composed of the
following attributes:

Id: string mandatory. Identifier of the elementary route.

TimetablePointFrom: string mandatory. Identifier of the timetable-point located at the


first extreme of the elementary route.

TimetablePointTo: string mandatory. Identifier of the timetable-point located at the other


extreme of the elementary route.

AdjacentLinePointFrom: string optional. Identifier of the line-point in


TimetablePointFrom connected to the elementary route. The attribute is present only if
TimetablePointFrom is of type Station.

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 60 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
AdjacentLinePointTo: string optional. Identifier of the line-point in TimetablePointTo
connected to the elementary route. The attribute is present only if TimetablePointFrom is
of type Station.

1.1.14.4 EXAMPLE OF NETWORK MODEL


The NetworkModel element for the controlled area of our example would be:
<NetworkModel>
<TimetablePoints>
<TimetablePoint Id="A" Name="Staz_A" Type="Station"/>
<TimetablePoint Id="B" Name="Staz_B" Type="Station"/>
<TimetablePoint Id="C" Name="Staz_C" Type="Station"/>
<TimetablePoint Id="K" Name="Stop_K" Type="RailwayStop"/>
<TimetablePoint Id="Z" Name="Staz_Z" Type="Station"/>
</TimetablePoints>
<ElementaryRoutes>
<ElementaryRoute Id=2056 TimetablePointFrom="A" AdjacentLinePointFrom="01"
TimetablePointTo="B" AdjacentLinePointTo="01"/>
<ElementaryRoute Id=2057 TimetablePointFrom="B" AdjacentLinePointFrom="06"
TimetablePointTo="A" AdjacentLinePointTo="02"/>
<ElementaryRoute Id=2058 TimetablePointFrom="A" AdjacentLinePointFrom="41"
TimetablePointTo="C" AdjacentLinePointTo="01"/>
<ElementaryRoute Id=2054 TimetablePointFrom="A" AdjacentLinePointFrom="05"
TimetablePointTo="Z" AdjacentLinePointTo="01"/>
<ElementaryRoute Id=2055 TimetablePointFrom="Z" AdjacentLinePointFrom="02"
TimetablePointTo="A" AdjacentLinePointTo="02"/>
</ElementaryRoutes>
</NetworkModel>

1.1.14.5 GA-SPECIFIC CIRCULATION RULES


This element contains configuration data about circulation rules that are specific to the Generic
Application. It is a choice of either a CRS-Latvia Circulation Rules node or a SSA-Italy Circulation
Rules node.

1.1.14.5.1 CRS-LATVIA CIRCULATION RULES


This element contains configuration data about circulation rules that are specific to the CRS-Latvia
Generic Application. It is composed of the following mandatory child elements:

PriorityInfo

StoppingPointsRankings

CategoriesInfo

5.1.1.1.1.10 PriorityInfo Element


This element includes the information needed to allow the user to set priorities, both on a line basis
and on a station basis. It is composed of two elements LinesDefinition and StationsDefinition.

5.1.1.1.1.10.1 LinesDefinition Element

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 61 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
This element includes the information about priorities for all the lines in the controlled area. It is
composed of a sequence of zero or more LinesDefinition elements.

5.1.1.1.1.10.1.1 LineDefinition Element


This element includes the information about a line priority. It is composed of the following attribute
and a sequence of one or more OrderedStation elements.

Id: string mandatory. Unique identifier of the line.

5.1.1.1.1.10.1.1.1 OrderedStation Element

This element includes the information about the ordering of stations and railway stops in a line. It is
composed of the following attributes:

StationId: string mandatory. Identifier of the Station or RailwayStop.

TopOrder: positive integer mandatory. order of the station in the top direction.
The TopOrder attribute should be a progressive integer starting from 1.

5.1.1.1.1.10.2 StationsDefinition Element


This element includes the information about all the station priorities in the controlled area. It is
composed of a sequence of zero or more StationDefinition elements.

5.1.1.1.1.10.2.1 StationDefinition Element


This element includes the information about station priorities. It is composed of the following
attributes:

StationId: string mandatory. Identifier of the Station.

LinePointId: string mandatory. Identifier of the Line-Point.

LineId: string mandatory. Identifier of the Line.

Direction: DirectionType mandatory. Indicates whether the trains entering the station
from the line-point travel in the Up or Down direction respect to the line.

5.1.1.1.1.11StoppingPointsRankings Element
This element includes the information about preferred and forbidden stopping-points for all stations.
It is composed of a sequence of zero or more StoppingPointsRanking elements.

5.1.1.1.1.11.1 StoppingPointsRanking Element


This element includes the information about preferred and forbidden stopping-points for a single
station. It is composed of the following elements:

PreferredStoppingPoints

ForbiddenStoppingPoints

5.1.1.1.1.11.1.1 PreferredStoppingPoints Element


File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 62 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
This element includes all the preferred stopping points divided by category of train. It is composed of
a sequence of zero or more PreferredStoppingPoint elements.

5.1.1.1.1.11.1.1.1 PreferredStoppingPoint Element

This element represent the preferred stopping points for a category of trains in the station. It is
composed of the following attribute and a sequence of one or more RankedStoppingPoint elements:

CategoryNumber: TrainCategoryNumber mandatory. Identifier of a train category.

5.1.1.1.1.11.1.1.2 RankedStoppingPoint Element

This element represent a stopping point for a category of trains with a ranking attribute, given a
station, an input line-point and an output line-point. Stopping-points with a lower value of the
Ranking attribute will be preferred. Ranking should be a progressive number starting from 1 and all
stopping points of the station should be ranked. All missing stopping-points will be automatically
ranked with the highest specified ranking plus 1. It is composed of the following attributes:

TimePointId: string mandatory. Time-Identifier of a stopping point.

InputLinePointId: string mandatory. The identifier of the input line-point.

OutputLinePointId: string mandatory. The identifier of the output line-point.

Ranking: positive integer mandatory. Ranking

5.1.1.1.1.11.2 ForbiddenStoppingPoints Element


This element includes all the forbidden stopping points divided by category of train. It is composed of
a sequence of zero or more ForbiddenStoppingPoint elements.

5.1.1.1.1.11.2.1 ForbiddenStoppingPoint Element


This element represent the forbidden stopping points for a category of trains in the station. It is
composed of the following attribute and a sequence of zero or more Forbidden elements:

CategoryNumber: TrainCategoryNumber mandatory. Identifier of a train category.

5.1.1.1.1.11.2.1.1 Forbidden Element

This element represent a forbidden stopping point for a category of trains in the station. It is
composed of the following attribute:

TimePointId: string mandatory. Identifier of a stopping point.

5.1.1.1.1.12 CategoriesInfo Element


This element includes all default values associated to the train's category. It is composed of a
sequence of zero or more CategoryInfo elements.

5.1.1.1.1.12.1 CategoryInfo Element


This element includes the information about a train's category and the associated default values. It
is composed of the following attributes:
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 63 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
CategoryNumber: TrainCategoryNumber mandatory. Identifier of a train category.

Priority: positive integer mandatory. The default priority associated to the trains
category.

SpeedIncreasingDeltaTime: positive integer mandatory. Default delta time for speed


increasing for the train category, in seconds.

SpeedDecreasingDeltaTime: positive integer mandatory. Default delta time for speed


decreasing for the train category, in seconds.

DefaultTrainLength: positive integer mandatory. Default length for the train category.

DefaultEngineLength: positive integer optional with default value 0. Default length of the
engine for the train category.

1.1.14.5.2 SSA-ITALY CIRCULATION RULES


This element contains configuration data about circulation rules that are specific to the SSA-Italy
Generic Application. It is composed of the following mandatory child elements:

ServiceTypesInfo

5.1.1.1.1.13 ServiceTypesInfo Element


The ServiceTypesInfo element contains the specification of possible train service types. It is
composed of one or more ServiceTypeInfo child elements.

5.1.1.1.1.13.1 ServiceTypeInfo Element


The Train element represents a single train service type and is composed of the following attributes:

Service: ServiceType mandatory. The service performed by the train, enumeration with
possible values T for Travellers, F for Freight, L for Locomotive.

DefaultTrainLength: positive integer mandatory. Default length for trains performing the
service

DefaultEngineLength: positive integer optional with default value 0. Default length of the
engine for trains performing the service

1.1.14.5.3 EXAMPLE OF SSA-ITALY CIRCULATION RULES


The NetworkModel element for the controlled area of our example would be:
<SSA_Italy_CirculationRules>
<ServiceTypesInfo>
<ServiceTypeInfo Service="T" DefaultTrainLength="1" DefaultEngineLength="0"/>
<ServiceTypeInfo Service="F" DefaultTrainLength="1" DefaultEngineLength="0"/>
<ServiceTypeInfo Service="L" DefaultTrainLength="1" DefaultEngineLength="0"/>
</ServiceTypesInfo>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 64 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</SSA_Italy_CirculationRules>

5.2 COMPONENTS CONFIGURATION

Each component has its own configuration file where specific parameters controlling the behavior
and customization of the component are stored.

1.1.15 CRS-ORCHESTRATOR CONFIGURATION

The CRS-Orchestrator can be configured by the jcrs.properties file located in the 1.0.x/conf folder,
where x varies with the release version.

The following items can be configured:

# G.A. specification, allowed values {latvia, ssa}


jcrs.app.type=latvia

# enable or disable debugging mode


jcrs.debug.enable=true

# path of the debugging folder


jcrs.debug.folder=logs/debug/

# debug time in sec


jcrs.debug.time=60

# url of the ActiveMQ broker


jcrs.activemq.url=tcp://127.0.0.1:61616

# flag for use of JGroups for Forecast_All and CRS_All messages. true = use JGroups,
false = use ActiveMQ
jcrs.jgroups.enable=false

# executable path and name of CRS-Processor component


jcrs.crs.exec_path=./CRS

# number of retries for CRS_Processor output


jcrs.crs.trigger.number=10
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 65 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
# wait time in ms for CRS_Processor
jcrs.crs.trigger.waittime=1000

# path and name of Specific-Application configuration data


jcrs.xml.config=conf/CRSConfigData_0.12.2_Beta.xml

# path and name of Specific-Application configuration data xsd file


jcrs.xml.config.xsd=xsd/config/Config_Data_CRS.xsd

# version number of Specific-Application configuration data xsd file


jcrs.xml.config.xsd.version=1.0.1

# true if Specific-Application configuration data must be validated respect to its xsd file
jcrs.xml.config.validate=true

# path and name of CRS-Processor input data xsd file


jcrs.crs.xml.in.xsd=xsd/latvia/CRS_Latvia_Input.xsd

# version number of CRS-Processor input data xsd file


jcrs.crs.xml.in.xsd.version=1.0.1

# true if CRS-Processor input data must be validated respect to its xsd file
jcrs.crs.xml.in.validate=true

# path and name of CRS-Processor input data template file


jcrs.crs.xml.in.template=conf/CRSINLatviaTemplate.xml

# path and name of CRS-Processor output data xsd file


jcrs.crs.xml.out.xsd=xsd/common/CRS_Output.xsd

# version number of CRS-Processor output data xsd file


jcrs.crs.xml.out.xsd.version=1.0.1

# true if CRS-Processor output data must be validated respect to its xsd file
jcrs.crs.xml.out.validate=true
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 66 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6

# path of CRS-Processor input data files


jcrs.crs.xml.folder.in=work/input/

# path of CRS-Processor output data files


jcrs.crs.xml.folder.out=work/output/

1.1.16 CRS-PROCESSOR CONFIGURATION

The CRS-Processor can be configured by the CRS.cfg file located in the 1.0.x folder, where x varies
with the release version.

The following items can be configured:

inputOutput {

# inputDirectory folder where the CRS_Processor reads the input data file

inputDirectory = /opt/jcrs_latvia/1.0.4/work/input

# outputDirectory folder where the CRS_Processor writes the output data file

outputDirectory = /opt/jcrs_latvia/1.0.4/work/output

configurationParameters {

# minimum time for stopping trains, in seconds (default value: 60)

stationMinStopTime = 60

# maximum time for detecting conflicts, in seconds (default value: 900)

maxTimeToIdentifyConflicts = 3600

# maximum time for solving automatically conflicts, in seconds (default value: 900)

maxTimeToSolveConflictsInAutomaticWay = 3600

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 67 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6

# minimum time after which a conflict cannot be untied any more, in seconds (default value: 300)

minTimeToUntieConflictsSolvedInAutomaticWay = 300

# minimum and maximum time when the CRS-Processor can change stopping point to trains, in
seconds (default values: 900 and 36000)

minTimeToChangePlatforms = 900

maxTimeToChangePlatforms = 36000

# minimum time for sending route commands for trains leaving a station, in seconds (default value:
60)

minTimeToAskRouteCommandFromPlatform = 60

5.3 LOGGING SYSTEM

1.1.17 CRS-ORCHESTRATOR LOGGER CONFIGURATION

The CRS-Orchestrator logging system can be customized by the log4j2.xml file located in the
1.0.x/conf folder, where x varies with the release version.

The configuration file has the following structure:


<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<properties>
<property name="logfilepath">logs</property>
<property name="name">jcrs</property>
<property name="pattern">%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} -
%msg%n</property>
</properties>

<appenders>
<FastRollingFile name="LogFile" fileName="${logfilepath}/${name}.log"

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 68 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
filePattern="${logfilepath}/${date:yyyy-MM}/${name}_%d{yyyy-MM-dd}-
%i.log">
<PatternLayout pattern="${pattern}" />
<Policies>
<TimeBasedTriggeringPolicy /><!-- Rotated everyday -->
<SizeBasedTriggeringPolicy size="10 MB"/>
</Policies>
<DefaultRolloverStrategy max="20"/>
</FastRollingFile>
</appenders>
<loggers>
<root level="debug">
<appender-ref ref="LogFile"/>
</root>

</loggers>
</configuration>

1.1.18 CRS-PROCESSOR LOGGER CONFIGURATION

Each component can be configured to log relevant messages, debugging information and
performance indicators, in order to facilitate bug-fixing and analysis of non-compliant behavior.

The logging system can be configured to operate on different logging levels and to store its
messages on file system, specifying the output filename. The configuration level can be specified on a
class or component basis, so as to have a detailed control on the type and quantity of recorded
messages.

Each logger enables/disables the logging of messages relative to its class or functional module.

For every logger, the logging level and output stream is specified.

Allowed logging levels are: "all", "none", "trace", "debug", "info", "warn", "error", "fatal".

Allowed output streams are: "cout", "cerr", "clog", or a string like "file some_file_name".

In the latter case the output messages are logged on the specified file

All messages are issued with logging level "debug".

logger_config {

logging_level = error

output = cout
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 69 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
errorLogger {

logging_level = error

output = file status/error.log

TrainTripLogger {

logging_level = error

output = file status/trainTrip.log

LatviaConfigLogger {

logging_level = error

output = file status/latviaConfigLogger.log

StationLogger {

logging_level = error

output = file status/StationLogger.log

6 APPENDIX

6.1 CONFIGURATION DATA XSD

This appendix contains the xsd schema file which formally describes the content of the configuration
file. The configuration xml file is validated respect to this xsd schema definition.

The schema definition is normative and, in case of disagreement, supersedes what is written in the
previous descriptive sections.

1.1.19 MAIN CONFIGURATION FILE DATA FORMAT

The xml configuration data must be compliant to the following xsd schema:

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 70 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:include schemaLocation="Config_CommonBasicTypes.xsd"/>
<xs:include schemaLocation="Config_CommonRailway.xsd"/>
<xs:include schemaLocation="Config_NetworkModel.xsd"/>
<xs:include schemaLocation="Config_CRS_Latvia_Railway.xsd"/>
<xs:include schemaLocation="Config_SSA_Italy_Railway.xsd"/>
<xs:include schemaLocation="Config_CRS_Latvia_CirculationRules.xsd"/>
<xs:include schemaLocation="Config_SSA_Italy_CirculationRules.xsd"/>
<xs:element name="CRS_Config">
<xs:annotation>
<xs:documentation>
Root element of the CRS configuration file.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element ref="CommonRailway" minOccurs="1" maxOccurs="1"/>
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element ref="CRS_Latvia_Railway" minOccurs="1" maxOccurs="1"/>
<xs:element ref="SSA_Italy_Railway" minOccurs="1" maxOccurs="1"/>
</xs:choice>
<xs:element ref="NetworkModel" minOccurs="1" maxOccurs="1" />
<xs:choice minOccurs="1" maxOccurs="1">
<xs:element ref="CRS_Latvia_CirculationRules" minOccurs="1" maxOccurs="1"/>
<xs:element ref="SSA_Italy_CirculationRules" minOccurs="1" maxOccurs="1"/>
</xs:choice>
</xs:sequence>
<xs:attribute name="SchemaVersion" type="xs:string" use="optional"/>
</xs:complexType>
</xs:element>
</xs:schema>
This specification includes and refers to other schema definitions, some of which are relative to the
Generic Product and some to either the CRS-Latvia Generic Application or to the SSA-Italy Generic
Application.

1.1.20 COMMON BASIC TYPES

The basic types common to all the Generic Product are specified by the following xsd schema:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:simpleType name="ZeroOne">
<xs:annotation>
<xs:documentation>Enumeration. Possible values: 0, 1</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:int">
<xs:minInclusive value="0" />
<xs:maxInclusive value="1" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="StationType">
<xs:annotation>

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 71 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<xs:documentation>Enumeration. Possible values: Regular, Gate,
CommunicationPoint</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Regular" />
<xs:enumeration value="Gate" />
<xs:enumeration value="CommunicationPoint" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name ="Section">
<xs:annotation>
<xs:documentation>
Complex type that represents a block section.
</xs:documentation>
</xs:annotation>
<xs:attribute name="Progressive" type="xs:unsignedInt" use="required" />
<xs:attribute name="Length" type="xs:unsignedInt" use="required" />
</xs:complexType>
</xs:schema>

1.1.21 COMMON RAILWAY

The railway types common to all the Generic Product are specified by the following xsd schema:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:include schemaLocation="Config_CommonBasicTypes.xsd" />

<xs:complexType name="CommonRailwayType">
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="Stations" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element including all the railway stations in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Station" minOccurs="2" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single station in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="LinePoints" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the line-points of the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="LinePoint" minOccurs="1" maxOccurs="unbounded">
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 72 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<xs:annotation>
<xs:documentation>
Element that represents an input/output line-point for the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required" />
<xs:attribute name="AdjacentBA" type="xs:string" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="StoppingPoints" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the stopping-points of the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="StoppingPoint" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a stopping-point for the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required" />
<xs:attribute name="TimePointId" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="IntermediatePoints" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the intermediate-points of the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="IntermediatePoint" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents an intermediate-point for the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Routes" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 73 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
Element that includes all the routes of the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Route" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a route for the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required" />
<xs:attribute name="OriginPointId" type="xs:string" use="required" />
<xs:attribute name="EndingPointId" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="StoppingPointsDetails" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes details about the stopping points of the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="StoppingPointDetails" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents the details about a single stopping point.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="LenByInputRoute" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents the details about a single stopping point for a single input
route.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="RouteId" type="xs:string" use="required" />
<xs:attribute name="TrackCircuitLen" type="xs:unsignedInt" use="optional" />
<xs:attribute name="PlatformLen" type="xs:unsignedInt" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="TimePointId" type="xs:string" use="required" />
<xs:attribute name="FromBuildingOrder" type="xs:unsignedInt" use="optional" />
<xs:attribute name="UnderPass" type="ZeroOne" use="optional" />
<xs:attribute name="RAR" type="ZeroOne" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 74 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<xs:element name="CorrectPaths" minOccurs="1" maxOccurs="1">
<xs:complexType>
<xs:sequence>
<xs:element name="CorrectPath" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="InputLinePointId" type="xs:string" use="required" />
<xs:attribute name="OutputLinePointId" type="xs:string" use="required" />
<xs:attribute name="TimePointId" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required" />
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="Type" type="StationType" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Tracks" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the tracks in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Track" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single track in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="BAs" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that represents all the BAs in the direction from station A to station B.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="BA" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required"/>
<xs:attribute name="Length" type="xs:unsignedInt" use="required"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SectionsAToB" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that represents the block sections in the direction from station A to station B.
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 75 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Sections" type="Section" minOccurs="1"
maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="SafetyDistance" type="xs:unsignedInt" use="required" />
</xs:complexType>
</xs:element>
<xs:element name="SectionsBToA" minOccurs="0" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that represents the block sections in the direction from station B to station A.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Sections" type="Section" minOccurs="1"
maxOccurs="unbounded" />
</xs:sequence>
<xs:attribute name="SafetyDistance" type="xs:unsignedInt" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="StationA" type="xs:string" use="required" />
<xs:attribute name="StationB" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="RailwayStops" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the railway stops in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="RailwayStop" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single RailwayStop.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="RailwayStopPosition" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:documentation>
Element that represents the position of a railway stop.
</xs:documentation>
</xs:annotation>
<xs:attribute name="StationA" type="xs:string" use="required" />
<xs:attribute name="StationB" type="xs:string" use="required" />
<xs:attribute name="DistanceFromStationA" type="xs:unsignedInt" use="required" />
</xs:complexType>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 76 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</xs:element>
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required" />
<xs:attribute name="Name" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>

<xs:element name="CommonRailway" type="CommonRailwayType"/>


</xs:schema>

1.1.22 NETWORK MODEL

The Network Model types common to all the Generic Product are specified by the following xsd
schema:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:simpleType name="TimetablePointType">
<xs:annotation>
<xs:documentation>Enumeration. Possible values: Station, RailwayStop</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Station" />
<xs:enumeration value="RailwayStop" />
</xs:restriction>
</xs:simpleType>

<xs:complexType name="NetworkModelType">
<xs:sequence minOccurs="1" maxOccurs="1">
<xs:element name="TimetablePoints" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element including all the TimetablePoints in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="TimetablePoint" minOccurs="2" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single TimetablePoint in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required" />
<xs:attribute name="Name" type="xs:string" use="required" />
<xs:attribute name="Type" type="TimetablePointType" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 77 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</xs:complexType>
</xs:element>
<xs:element name="ElementaryRoutes" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the elementary routes in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ElementaryRoute" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single elementary route in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="TimetablePointFrom" type="xs:string" use="required" />
<xs:attribute name="TimetablePointTo" type="xs:string" use="required" />
<xs:attribute name="AdjacentLinePointFrom" type="xs:string" use="optional" />
<xs:attribute name="AdjacentLinePointTo" type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>

<xs:element name="NetworkModel" type="NetworkModelType"/>


</xs:schema>

1.1.23 CRS-LATVIA RAILWAY

The railway types specific to the Generic Application CRS-Latvia are specified by the following xsd
schema:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:include schemaLocation="Config_CommonBasicTypes.xsd" />

<xs:complexType name="CRS_Latvia_RailwayType">
<xs:sequence>
<xs:element name="CRS_Latvia_StationsDetails" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that contains the details of all stations in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="CRS_Latvia_StationDetails" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single station in the controlled area.
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 78 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="IncompatibleRoutes" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the incompatible route pairs of the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="IncompatibleRoute" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a route for the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="BlockedRouteId" type="xs:string" use="required" />
<xs:attribute name="UnblockableRouteId" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="StationId" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>

<xs:element name="CRS_Latvia_Railway" type="CRS_Latvia_RailwayType" />


</xs:schema>

1.1.24 SSA-ITALY RAILWAY

The railway types specific to the Generic Application SSA-Italy are specified by the following xsd
schema:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:include schemaLocation="Config_CommonBasicTypes.xsd" />
<xs:simpleType name="SwitchPosition">
<xs:annotation>
<xs:documentation>Enumeration. Possible values: N for Normal, R for Reverse</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="N" />
<xs:enumeration value="R" />
</xs:restriction>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 79 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</xs:simpleType>
<xs:simpleType name="TrackCircuitType">
<xs:annotation>
<xs:documentation>Enumeration. Possible values: S for Station track circuit, L for Line track
circuit</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="S" />
<xs:enumeration value="L" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="IncompatibilityReason">
<xs:annotation>
<xs:documentation>Enumeration. Possible values: I for Inverse, O for Opposite, IFT for
InhibitionFreeTransit., OFT for OrderFreeTransit, C for Convergent, D for Divergent</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="I" />
<xs:enumeration value="O" />
<xs:enumeration value="IFT" />
<xs:enumeration value="OFT" />
<xs:enumeration value="C" />
<xs:enumeration value="D" />
</xs:restriction>
</xs:simpleType>

<xs:complexType name="SSA_Italy_RailwayType">
<xs:sequence>
<xs:element name="SSA_Italy_StationsDetails" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that contains the details of all stations in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="SSA_Italy_StationDetails" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single station in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="TrackCircuits" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the track circuits of the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="TrackCircuit" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single track circuit for the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 80 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<xs:attribute name="Id" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Switches" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the switches of the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Switch" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single switch in the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Signals" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the signals of the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="Signal" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single signal in the station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Id" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ConditionTable" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes the conditions for blocking and liberation of all the routes of the
station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ConditionsForRoute" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 81 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<xs:documentation>
Element that includes the conditions for blocking and liberation of a single route.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ConditionsForBlocking" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all entities of the station that must be checked for blocking a
route.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="TrackCircuitsInPath" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all track circuits that form a routes path.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="TrackCircuitInPath" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single track circuit that's part of a routes path.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="TrackCircuitId" type="xs:string" use="required" />
<xs:attribute name="ProgressiveNumber" type="xs:unsignedInt"
use="required" />
<xs:attribute name="PermanentOccupation" type="ZeroOne"
use="optional" default="0" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ProtectionTrackCircuits" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all track circuits that protect a route, either lateral and
exit.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ProtectionTrackCircuit" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that includes a single track circuit that protects a route.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="TrackCircuitId" type="xs:string" use="required" />
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 82 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SwitchesInPath" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all switches along a routes path.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="SwitchInPath" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that includes a single switch along a routes path.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="SwitchId" type="xs:string" use="required" />
<xs:attribute name="ProgressiveNumber" type="xs:unsignedInt"
use="required" />
<xs:attribute name="Position" type="SwitchPosition" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ProtectionSwitches" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all switches that protect a route, either lateral, on exit or
on stopping point.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ProtectionSwitch" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that includes a single protection switch for a route.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="SwitchId" type="xs:string" use="required" />
<xs:attribute name="Position" type="SwitchPosition" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SignalsToCheck" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the signals that must be checked for blocking a route.
</xs:documentation>
</xs:annotation>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 83 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<xs:complexType>
<xs:sequence>
<xs:element name="SignalToCheck" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single signal that must be checked.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="SignalId" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ConditionsForLiberation" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all entities of the station that must be checked for the elastic
liberation of entities that compose a route.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="InitialPoint" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the entities that must be checked for the liberation of
a routes initial point.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="FreeTrackCircuit" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single track circuit that's part of a routes path.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="TrackCircuitId" type="xs:string" use="required" />
<xs:attribute name="Type" type="TrackCircuitType" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="SwitchesAlongPath" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includesall the switches that get liberated as the train goes
through the route and leaves the track circuits containing the switches.
</xs:documentation>
</xs:annotation>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 84 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<xs:complexType>
<xs:sequence>
<xs:element name="SwitchAlongPath" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single switch that gets elastically liberated.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="SwitchId" type="xs:string" use="required" />
<xs:attribute name="Position" type="SwitchPosition" use="required" />
<xs:attribute name="TrackCircuitId" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ProtectionSwitches" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the protection (lateral and on exit) switches that get
liberated as the train goes through the route and leaves the track circuits.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ProtectionSwitch" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a single switch that gets elastically liberated.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="SwitchId" type="xs:string" use="required" />
<xs:attribute name="Position" type="SwitchPosition" use="required" />
<xs:attribute name="TrackCircuitId" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="FinalPoint" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the entities that must be checked for the liberation of
a routes final point.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="FreeStationTrackCircuit" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that includes a single protection switch for a route.
</xs:documentation>
</xs:annotation>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 85 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<xs:complexType>
<xs:attribute name="TrackCircuitId" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="OtherIncompatibleRoutes" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the incompatible routes not differentiated by switch.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="OtherIncompatibleRoute" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents an incompatible route not differentiated by switch, i.e.
a route which cannot be blocked at the same time.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="RouteId" type="xs:string" use="required" />
<xs:attribute name="Reason" type="IncompatibilityReason" use="required" />
<xs:attribute name="TrackCircuitId" type="xs:string" use="required" />
<xs:attribute name="Time" type="xs:unsignedInt" use="optional" default="0"/>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="RouteId" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="StationId" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="SSA_Italy_Railway" type="SSA_Italy_RailwayType" />
</xs:schema>

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 86 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
1.1.25 CRS-LATVIA CIRCULATION RULES

The Circulation Rules types specific to the Generic Application CRS-Latvia are specified by the
following xsd schema:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:include schemaLocation="Config_CommonBasicTypes.xsd"/>
<xs:simpleType name="DirectionType">
<xs:annotation>
<xs:documentation>Enumeration. Possible values: Up, Down, None</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="Up" />
<xs:enumeration value="Down" />
<xs:enumeration value="None" />
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="TrainCategoryNumber">
<xs:annotation>
<xs:documentation>Enumeration. Possible values: 1 for Repair, 2 for Passenger, 3 for Local, 4 for
Suburban, 5 for FastFreight, 6 for Freight, 7 for Locomotive, 8 for Utility, 9 for Other</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:int">
<xs:minInclusive value="1" />
<xs:maxInclusive value="9" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CRS_Latvia_CirculationRules_Type">
<xs:annotation>
<xs:documentation>
Element that contains CRS_Latvia specific configuration data used by the circulation rules.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="PriorityInfo" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes the information needed to allow the user to set priorities, both on a line
basis and on a station basis.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="LinesDefinition" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes the information about priorities for all the lines in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="LineDefinition" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:documentation>

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 87 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
Element that includes the information about a line priority.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="OrderedStation" minOccurs="1" maxOccurs="unbounded">
<xs:complexType>
<xs:attribute name="StationId" type="xs:string" use="required" />
<xs:attribute name="TopOrder" type="xs:unsignedInt" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="Id" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="StationsDefinition" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes the information about all the station priorities in the controlled area.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="StationDefinition" minOccurs="0" maxOccurs="unbounded">
<xs:complexType>
<xs:annotation>
<xs:documentation>
Element that includes the information about a single station priorities.
</xs:documentation>
</xs:annotation>
<xs:attribute name="StationId" type="xs:string" use="required" />
<xs:attribute name="LinePointId" type="xs:string" use="required" />
<xs:attribute name="LineId" type="xs:string" use="required" />
<xs:attribute name="Direction" type="DirectionType" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="StoppingPointsRankings" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes the information about preferred and forbidden stopping-points for all
stations.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="StoppingPointsRankingsByStation" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that includes the information about preferred and forbidden stopping-points for a
specific station.
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 88 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="PreferredStoppingPoints" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the preferred stopping points divided by category of train.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="PreferredStoppingPoint" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents the preferred stopping points for a category of trains in the
station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="RankedStoppingPoint" minOccurs="0"
maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a stopping point for a category of trains in the station with
a ranking attribute.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="TimePointId" type="xs:string" use="required" />
<xs:attribute name="InputLinePointId" type="xs:string" use="required" />
<xs:attribute name="OutputLinePointId" type="xs:string" use="required" />
<xs:attribute name="Ranking" type="xs:unsignedInt" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="CategoryNumber" type="TrainCategoryNumber"
use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="ForbiddenStoppingPoints" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that includes all the forbidden stopping points divided by category of train.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ForbiddenStoppingPoint" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents the forbidden stopping points for a category of trains in the
station.
</xs:documentation>
</xs:annotation>
File name: 353684635 Confidential and proprietary Template ID-Number: 000108
Software Architecture Description Page 89 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
<xs:complexType>
<xs:sequence>
<xs:element name="Forbidden" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that represents a forbidden stopping point for a category of trains in the
station.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="TimePointId" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="CategoryNumber" type="TrainCategoryNumber"
use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="StationId" type="xs:string" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="CategoriesInfo" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that contains all default values associated to the train's category.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="CategoryInfo" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that contains default values associated to a single trains category.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="CategoryNumber" type="TrainCategoryNumber" use="required" />
<xs:attribute name="Priority" type="xs:unsignedInt" use="required" />
<xs:attribute name="SpeedIncreasingDeltaTime" type="xs:unsignedInt" use="required" />
<xs:attribute name="SpeedDecreasingDeltaTime" type="xs:unsignedInt" use="required" />
<xs:attribute name="DefaultTrainLength" type="xs:unsignedInt" use="required" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="CRS_Latvia_CirculationRules" type="CRS_Latvia_CirculationRules_Type" />
</xs:schema>

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 90 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6
1.1.26 SSA-ITALY CIRCULATION RULES

The Circulation Rules types specific to the Generic Application SSA-Italy are specified by the
following xsd schema:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema
xmlns:xs="http://www.w3.org/2001/XMLSchema"
>
<xs:include schemaLocation="Config_CommonBasicTypes.xsd"/>
<xs:simpleType name="ServiceType">
<xs:annotation>
<xs:documentation>Enumeration. Possible values: T for Travellers, F for Freight, L for
Locomotive</xs:documentation>
</xs:annotation>
<xs:restriction base="xs:string">
<xs:enumeration value="T" />
<xs:enumeration value="F" />
<xs:enumeration value="L" />
</xs:restriction>
</xs:simpleType>
<xs:complexType name="SSA_Italy_CirculationRules_Type">
<xs:annotation>
<xs:documentation>
Element that contains SSA_Italy specific configuration data used by the circulation rules.
</xs:documentation>
</xs:annotation>
<xs:sequence>
<xs:element name="ServiceTypesInfo" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation>
Element that contains all default values associated to the train's service type.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:sequence>
<xs:element name="ServiceTypeInfo" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation>
Element that contains default values associated to a single trains service type.
</xs:documentation>
</xs:annotation>
<xs:complexType>
<xs:attribute name="Service" type="ServiceType" use="required" />
<xs:attribute name="DefaultTrainLength" type="xs:unsignedInt" use="required" />
<xs:attribute name="DefaultEngineLength" type="xs:unsignedInt" use="optional"
default="0" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
<xs:element name="SSA_Italy_CirculationRules" type="SSA_Italy_CirculationRules_Type" />
</xs:schema>

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 91 of 92
3NCNFMC850Z0003
Revision: 1.0. Working
6

File name: 353684635 Confidential and proprietary Template ID-Number: 000108


Software Architecture Description Page 92 of 92