Dev:Splitting and merging railML files

From railML 3 Wiki
Jump to navigation Jump to search

Introduction

This is a guide on splitting and merging railML files serving as a list of best practices.

Users have a big file with railway network and lines in it. Reading software may not support importing this big file. Users want to extract lines from the network to separate files and then (after import) to bring lines back into one network. Splitting and merging of lines may be done by different parties and different tools.

Railway sector actors should be able to prepare their data for splitting and integration in a unified standardized way i.e. split files into (lines) parts intended for integration in an automated way, define explicit points for connection.

Concept

2024-09-09 railML splittingConcept.svg

Connector <netElement> is a redundant <netElement> marking a “border” of a file. It exists in both files after splitting. Connector should have a UUID for the entire lifetime of the splitting exercise.

Connector net element in both split files should have same identifiers (Listings 1 and 2). In the following examples net relations refer to the same net element called “connector”. Topologically it should be located at the border of the lines but not covered by them. In the “general approach” connector is inserted in both mesoscopic and macroscopic levels of aggregation.

Excerpt of topology of the first split file

<netRelation id="nr_ne1connector" navigability="Both">
  <elementA ref="ne1"/>
  <elementB ref="connector"/>
</netRelation>

Excerpt of topology of the second split file

<netRelation id="nr_connector_ne2" navigability="Both">
  <elementA ref="connector "/>
  <elementB ref="ne2"/>
</netRelation>

If there is an aggregation of net elements in the file, then different connectors should be present at all levels of aggregation and aggregated as usual net elements.

Splitting between <netElement>s (general approach)

Example 1 - splitting network into lines (no overlap)

Two railway lines cover disjoint sets of net elements at the macroscopic and microscopic levels. There is no overlap at both microscopic and macroscopic level of aggregation.

2024-09-09 railML splittingNetwork.svg

Input

<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.1" 
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:gml="http://www.opengis.net/gml/3.2/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://www.railml.org/schemas/3.1 https://www.railml.org/schemas/3.1/railml3.xsd"
        version="3.1">
  
  <common id="co_01">
    <positioning>

      <linearPositioningSystems>
        <linearPositioningSystem id="lps01" units="m" startMeasure="0.0" 
                                 endMeasure="1000.0" linearReferencingMethod="absolute">
          <name name="railway line 1 mileage" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </linearPositioningSystem>
        <linearPositioningSystem id="lps02" units="m" startMeasure="0.0" endMeasure="1000.0" 
                                 linearReferencingMethod="absolute">
          <name name="railway line 2 mileage" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </linearPositioningSystem>
      </linearPositioningSystems>
    </positioning>
  </common>
  
  <infrastructure id="is_01">
    <topology>
      <netElements>
        <netElement id="ne2" length="500.0">
          <relation ref="nr_ne3ne2"/>
          <associatedPositioningSystem id="ne2_aps01">
            <intrinsicCoordinate id="ne2_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne2_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne3" length="500.0">
          <relation ref="nr_ne3ne2"/>
          <relation ref="nr_ne4ne3"/>
          <associatedPositioningSystem id="ne3_aps01">
            <intrinsicCoordinate id="ne3_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne3_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="1000.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne4" length="500.0">
          <relation ref="nr_ne4ne3"/>
          <relation ref="nr_ne5ne4"/>
          <associatedPositioningSystem id="ne4_aps01">
            <intrinsicCoordinate id="ne4_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps02" measure="0.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne4_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps02" measure="500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne5" length="500.0">
          <relation ref="nr_ne5ne4"/>
          <associatedPositioningSystem id="ne5_aps01">
            <intrinsicCoordinate id="ne5_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps02" measure="500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne5_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps02" measure="1000.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        
        <netElement id="ne1">
          <relation ref="nr_ne6ne1"/>
          <elementCollectionUnordered id="ne1_ecu01">
            <elementPart ref="ne2"/>
            <elementPart ref="ne3"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne1_aps01">
            <intrinsicCoordinate id="ne1_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="0.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne1_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate measure="1000.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne6">
          <relation ref="nr_ne6ne1"/>
          <elementCollectionUnordered id="ne6_ecu01">
            <elementPart ref="ne4"/>
            <elementPart ref="ne5"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne6_aps01">
            <intrinsicCoordinate id="ne6_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="0.0" positioningSystemRef="lps02"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne6_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate measure="1000.0" positioningSystemRef="lps02"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
      </netElements>

      <netRelations>
        <netRelation id="nr_ne3ne2" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne3"/>
          <elementB ref="ne2"/>
        </netRelation>
        <netRelation id="nr_ne4ne3" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne4"/>
          <elementB ref="ne3"/>
        </netRelation>
        <netRelation id="nr_ne5ne4" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne5"/>
          <elementB ref="ne4"/>
        </netRelation>
        <netRelation id="nr_ne6ne1" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne6"/>
          <elementB ref="ne1"/>
        </netRelation>
      </netRelations>
   
      <networks>
        <network id="nw01">
          <level id="lv0" descriptionLevel="Micro">
            <networkResource ref="ne2"/>
            <networkResource ref="ne3"/>
            <networkResource ref="ne4"/>
            <networkResource ref="ne5"/>
            <networkResource ref="nr_ne3ne2"/>
            <networkResource ref="nr_ne4ne3"/>
            <networkResource ref="nr_ne5ne4"/>

          </level>
          <level id="lv1" descriptionLevel="Meso">
            <networkResource ref="ne1"/>
            <networkResource ref="ne6"/>

            <networkResource ref="nr_ne6ne1"/>

          </level>
        </network>
      </networks>
    </topology>
    
    <functionalInfrastructure>

      <lines>
        <line id="lin01" lineCategory="other:CE" lineType="mainLine">
          <linearLocation id="lin01_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne1" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="0.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="1000.0"/>
            </associatedNetElement>
          </linearLocation>
        </line>
        <line id="lin02" lineCategory="other:CE" lineType="mainLine">
          <linearLocation id="lin02_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne6" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps02" measure="0.0"/>
              <linearCoordinateEnd positioningSystemRef="lps02" measure="1000.0"/>
            </associatedNetElement>
          </linearLocation>
        </line>
      </lines>

    </functionalInfrastructure>
  </infrastructure>
</railML>

Splitting

Entity of functional infrastructure belongs to a <line> if its <linearLocation> or <spotLocation> is the same or aggregated net element as a given <line>.

Line1
<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.1" 
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:gml="http://www.opengis.net/gml/3.2/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://www.railml.org/schemas/3.1 https://www.railml.org/schemas/3.1/railml3.xsd"
        version="3.1">
  
  <common id="co_01">
    <positioning>

      <linearPositioningSystems>
        <linearPositioningSystem id="lps01" units="m" startMeasure="0.0" endMeasure="1000.0" 
                                 linearReferencingMethod="absolute">
          <name name="railway line 1 mileage" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </linearPositioningSystem>
      </linearPositioningSystems>
    </positioning>
  </common>
  
  <infrastructure id="is_01">
    <topology>
      <netElements>
        <netElement id="ne2" length="500.0">
          <relation ref="nr_ne3ne2"/>
          <associatedPositioningSystem id="ne2_aps01">
            <intrinsicCoordinate id="ne2_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne2_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne3" length="500.0">
          <relation ref="nr_ne3ne2"/>
          <relation ref="nr_connector1ne3"/>
          <associatedPositioningSystem id="ne3_aps01">
            <intrinsicCoordinate id="ne3_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne3_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="1000.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <!-- connector net element of microscopic level-->
        <netElement id="connector1">
          <relation ref="nr_connector1ne3"/>
          <associatedPositioningSystem id="connector1_aps01">
            <intrinsicCoordinate id="connector1_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>


        <netElement id="ne1">
          <relation ref="nr_connector2ne1"/>
          <elementCollectionUnordered id="ne1_ecu01">
            <elementPart ref="ne2"/>
            <elementPart ref="ne3"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne1_aps01">
            <intrinsicCoordinate id="ne1_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="0.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne1_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate measure="1000.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
        <!-- connector net element of mesoscopic level-->
        <netElement id="connector2">
          <relation ref="nr_connector2ne1"/>
					<!-- connector net element of mesoscopic level aggregates the one of miscroscopic level -->
          <elementCollectionUnordered id="connector2_ecu01">
            <elementPart ref="connector1"/>
          </elementCollectionUnordered>					
          <associatedPositioningSystem id="connector2_aps01">
            <intrinsicCoordinate id="connector2_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
      </netElements>
      <netRelations>
        <netRelation id="nr_ne3ne2" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne3"/>
          <elementB ref="ne2"/>
        </netRelation>
        <!-- connector net relation of microscopic level-->
        <netRelation id="nr_connector1ne3" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector1"/>
          <elementB ref="ne3"/>
        </netRelation>
        <!-- connector net relation of mesoscopic level-->
        <netRelation id="nr_connector2ne1" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector2"/>
          <elementB ref="ne1"/>
        </netRelation>

        
      </netRelations>
   
      <networks>
        <network id="nw01">
          <level id="lv0" descriptionLevel="Micro">
            <networkResource ref="ne2"/>
            <networkResource ref="ne3"/>
            <networkResource ref="connector1"/>

            <networkResource ref="nr_ne3ne2"/>
            <networkResource ref="nr_connector1ne3"/>

          </level>
          <level id="lv1" descriptionLevel="Meso">
            <networkResource ref="ne1"/>
            <networkResource ref="connector2"/>

            <networkResource ref="nr_connector2ne1"/>

          </level>
        </network>
      </networks>
    </topology>
    
    <functionalInfrastructure>

      <lines>
        <line id="lin01" lineCategory="other:CE" lineType="mainLine">
          <linearLocation id="lin01_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne1" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="0.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="1000.0"/>
            </associatedNetElement>
          </linearLocation>
        </line>
      </lines>
    </functionalInfrastructure>
  </infrastructure>
</railML>
Line2
<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.1" 
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:gml="http://www.opengis.net/gml/3.2/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://www.railml.org/schemas/3.1 https://www.railml.org/schemas/3.1/railml3.xsd"
        version="3.1">
  
  <common id="co_01">
    <positioning>

      <linearPositioningSystems>
        <linearPositioningSystem id="lps02" units="m" startMeasure="0.0" endMeasure="1000.0" 
                                 linearReferencingMethod="absolute">
          <name name="railway line 2 mileage" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </linearPositioningSystem>
      </linearPositioningSystems>
    </positioning>
  </common>
  
  <infrastructure id="is_01">
    <topology>
      <netElements>
        <!-- connector net element of microscopic level-->
        <netElement id="connector1">
          <relation ref="nr_ne4connector1"/>
          <associatedPositioningSystem id="ne4_aps01">
            <intrinsicCoordinate id="connector1_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne4" length="500.0">
          <relation ref="nr_ne5ne4"/>
          <relation ref="nr_ne4connector1"/>
          <associatedPositioningSystem id="ne4_aps01">
            <intrinsicCoordinate id="ne4_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps02" measure="0.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne4_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps02" measure="500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne5" length="500.0">
          <relation ref="nr_ne5ne4"/>
          <associatedPositioningSystem id="ne5_aps01">
            <intrinsicCoordinate id="ne5_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps02" measure="500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne5_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps02" measure="1000.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <!-- connector net element of mesoscopic level-->
        <netElement id="connector2">
          <relation ref="nr_ne6connector2"/>
					<!-- connector net element of mesoscopic level aggregates the one of miscroscopif level -->
          <elementCollectionUnordered id="connector2_ecu01">
            <elementPart ref="connector1"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="connector2_aps01">
            <intrinsicCoordinate id="connector2_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne6">
          <relation ref="nr_ne6connector2"/>
          <elementCollectionUnordered id="ne6_ecu01">
            <elementPart ref="ne4"/>
            <elementPart ref="ne5"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne6_aps01">
            <intrinsicCoordinate id="ne6_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="0.0" positioningSystemRef="lps02"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne6_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate measure="1000.0" positioningSystemRef="lps02"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>

      </netElements>

      <netRelations>
        <netRelation id="nr_ne5ne4" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne5"/>
          <elementB ref="ne4"/>
        </netRelation>
        <!-- connector net relation of microscopic level-->
        <netRelation id="nr_ne4connector1" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne4"/>
          <elementB ref="connector1"/>
        </netRelation>
        <!-- connector net relation of mesoscopic level-->
        <netRelation id="nr_ne6connector2" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne6"/>
          <elementB ref="connector2"/>
        </netRelation>
      </netRelations>
   
      <networks>
        <network id="nw01">
          <level id="lv0" descriptionLevel="Micro">

            <networkResource ref="ne4"/>
            <networkResource ref="ne5"/>
            <networkResource ref="connector1"/>

            <networkResource ref="nr_ne4connector1"/>
            <networkResource ref="nr_ne5ne4"/>
          </level>
          <level id="lv1" descriptionLevel="Meso">

            <networkResource ref="ne6"/>
            <networkResource ref="connector2"/>

            <networkResource ref="nr_ne6connector2"/>

          </level>
        </network>
      </networks>
    </topology>
    
    <functionalInfrastructure>

      <lines>
        <line id="lin02" lineCategory="other:CE" lineType="mainLine">
          <linearLocation id="lin02_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne6" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps02" measure="0.0"/>
              <linearCoordinateEnd positioningSystemRef="lps02" measure="1000.0"/>
            </associatedNetElement>
          </linearLocation>
        </line>
      </lines>

    </functionalInfrastructure>
  </infrastructure>
</railML>
 

Merging

<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.1" 
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:gml="http://www.opengis.net/gml/3.2/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://www.railml.org/schemas/3.1 https://www.railml.org/schemas/3.1/railml3.xsd"
        version="3.1">
  
  <common id="co_01">
    <positioning>

      <linearPositioningSystems>
        <linearPositioningSystem id="lps01" units="m" startMeasure="0.0" endMeasure="1000.0" 
                                 linearReferencingMethod="absolute">
          <name name="railway line 1 mileage" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </linearPositioningSystem>
        <linearPositioningSystem id="lps02" units="m" startMeasure="0.0" endMeasure="1000.0" 
                                 linearReferencingMethod="absolute">
          <name name="railway line 2 mileage" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </linearPositioningSystem>
      </linearPositioningSystems>
    </positioning>
  </common>
  
  <infrastructure id="is_01">
    <topology>
      <netElements>
        <netElement id="ne2" length="500.0">
          <relation ref="nr_ne3ne2"/>
          <associatedPositioningSystem id="ne2_aps01">
            <intrinsicCoordinate id="ne2_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne2_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne3" length="500.0">
          <relation ref="nr_ne3ne2"/>
          <relation ref="nr_connector1ne3"/>
          <associatedPositioningSystem id="ne3_aps01">
            <intrinsicCoordinate id="ne3_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne3_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="1000.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <!-- connector net element of microscopic level-->
        <netElement id="connector1">
          <relation ref="nr_connector1ne3"/>
          <relation ref="nr_ne4connector1"/>
          <associatedPositioningSystem id="connector1_aps01">
            <intrinsicCoordinate id="connector1_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        
        <netElement id="ne4" length="500.0">
          <relation ref="nr_ne4connector1"/>
          <relation ref="nr_ne5ne4"/>
          <associatedPositioningSystem id="ne4_aps01">
            <intrinsicCoordinate id="ne4_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps02" measure="0.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne4_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps02" measure="500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne5" length="500.0">
          <relation ref="nr_ne5ne4"/>
          <associatedPositioningSystem id="ne5_aps01">
            <intrinsicCoordinate id="ne5_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps02" measure="500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne5_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps02" measure="1000.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        
        <netElement id="ne1">
          <relation ref="nr_connector2ne1"/>
          <elementCollectionUnordered id="ne1_ecu01">
            <elementPart ref="ne2"/>
            <elementPart ref="ne3"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne1_aps01">
            <intrinsicCoordinate id="ne1_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="0.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne1_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate measure="1000.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
        <!-- connector net element of mesoscopic level-->
        <netElement id="connector2">
          <relation ref="nr_connector2ne1"/>
          <relation ref="nr_ne6connector2"/>
					<!-- connector net element of mesoscopic level aggregates the one of microscopic level -->
          <elementCollectionUnordered id="connector2_ecu01">
            <elementPart ref="connector1"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="connector2_aps01">
            <intrinsicCoordinate id="connector2_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
        
        <netElement id="ne6">
          <relation ref="nr_connector2ne1"/>
          <elementCollectionUnordered id="ne6_ecu01">
            <elementPart ref="ne4"/>
            <elementPart ref="ne5"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne6_aps01">
            <intrinsicCoordinate id="ne6_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="0.0" positioningSystemRef="lps02"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne6_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate measure="1000.0" positioningSystemRef="lps02"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
      </netElements>

      <netRelations>
        <netRelation id="nr_ne3ne2" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne3"/>
          <elementB ref="ne2"/>
        </netRelation>
        <!-- connector net relation of microscopic level-->
        <netRelation id="nr_connector1ne3" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector1"/>
          <elementB ref="ne3"/>
        </netRelation>
        <!-- connector net relation of microscopic level-->
        <netRelation id="nr_ne4connector1" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne4"/>
          <elementB ref="connector1"/>
        </netRelation>

        <netRelation id="nr_ne5ne4" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne5"/>
          <elementB ref="ne4"/>
        </netRelation>
        <!-- connector net relation of mesoscopic level-->
        <netRelation id="nr_connector2ne1" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector2"/>
          <elementB ref="ne1"/>
        </netRelation>
        <!-- connector net relation of mesoscopic level-->
        <netRelation id="nr_ne6connector2" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne6"/>
          <elementB ref="connector2"/>
        </netRelation>
      </netRelations>
   
      <networks>
        <network id="nw01">
          <level id="lv0" descriptionLevel="Micro">
            <networkResource ref="ne2"/>
            <networkResource ref="ne3"/>
            <networkResource ref="connector1"/>
            <networkResource ref="ne4"/>
            <networkResource ref="ne5"/>
            <networkResource ref="nr_ne3ne2"/>
            <networkResource ref="nr_connector1ne3"/>
            <networkResource ref="nr_ne4connector1"/>
            <networkResource ref="nr_ne5ne4"/>


          </level>
          <level id="lv1" descriptionLevel="Meso">
            <networkResource ref="ne1"/>
            <networkResource ref="connector2"/>
            <networkResource ref="ne6"/>
            <networkResource ref="nr_connector2ne1"/>
            <networkResource ref="nr_ne6connector2"/>


          </level>
        </network>
      </networks>
    </topology>
    
    <functionalInfrastructure>

      <lines>
        <line id="lin01" lineCategory="other:CE" lineType="mainLine">
          <linearLocation id="lin01_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne1" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="0.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="1000.0"/>
            </associatedNetElement>
          </linearLocation>
        </line>
        <line id="lin02" lineCategory="other:CE" lineType="mainLine">
          <linearLocation id="lin02_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne6" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps02" measure="0.0"/>
              <linearCoordinateEnd positioningSystemRef="lps02" measure="1000.0"/>
            </associatedNetElement>
          </linearLocation>
        </line>
      </lines>

    </functionalInfrastructure>
  </infrastructure>
</railML>

Example 2 - splitting line into line sections and station

Line section is a part of line between two railway stations with no stations in between.

Linear positioning system should have UUID, for the entire lifetime of the splitting exercise, and be consistent with semantic constraint IS 016.

2024-09-10 railML splittingLine1.png

Input

0

Splitting

0
0
1
0

Merging

Example 3 - splitting line into line sections and station (considering routes)

Input

0

Splitting

0
0
1
0

Merging

0

Splitting one <netElement> into two <netElement>s

Example 4 - splitting track into parts

In the Simple example (link to the railML® website) there is only one <netElement> corresponding to the line section between Arnau and Cstadt. This means that net element should be split and replaced by two net elements.

In between of two split net elements a connector <netElement> should be inserted.

If splitting at linear coordinate 2500 then:

- every functional IS with coordinate ≤ 2500 should be extracted to file1;

- every functional IS with coordinate > 2500 should be extracted to file2;

- netElement1 beginning at milage 700 end ending at mileage 2500 should be added in file1;

- netElement2 beginning at milage 2500 end ending at mileage 4300 should be added in file2;

- connector2 should be inserted in the end of netElement1 in file1;

- connector2 should be inserted in the beginning of netElement1 in file2.

Initial net element will be lost.

Linear positioning system should have UUID, for the entire lifetime of the splitting exercise, and be consistent with semantic constraint IS 016.

Lets see an example of splitting line section into two parts. Furthermore line section was already extracted in the previous step, therefore input file already includes connectors.

2024-09-09 railML splittingNetElementIntoParts.svg

Input

<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.1" 
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:gml="http://www.opengis.net/gml/3.2/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://www.railml.org/schemas/3.1 https://www.railml.org/schemas/3.1/railml3.xsd"
        version="3.1">
  <metadata>
    <dc:format>3.1</dc:format>
    <dc:identifier>3</dc:identifier>
    <dc:source>railML.org</dc:source>
    <dc:title xml:lang="en">Simple Example v12 railML 3.1</dc:title>
    <dc:language>en</dc:language>
    <dc:creator xml:lang="de">railML.org</dc:creator>
    <dc:creator xml:lang="de">Dr. Jörg von Lingen</dc:creator>
    <dc:description>This example file has been coded manually and therefore may not be free of errors.</dc:description>
    <dc:rights>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.
      This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivatives 4.0 International License with additional license conditions of railML.org.
      For further information see: https://www.railml.org/licence
      Content of this file: railML 3.1 Simple Example</dc:rights>
  </metadata>
<!-- Bf Arnau covers net element a11 and Bf Cstadt covers b11. a11 and b11 are both linked to x11. Thus in this file x11 
and all the topology aggregated into x11 and all the functional IS referring to 
x11 and aggregated topology are extracted from Simple example -->
  <common id="co_01">
    <organizationalUnits>
      <infrastructureManager id="im_01" code="SZDC"/>
    </organizationalUnits>
    <speedProfiles>
      <speedProfile id="spp01" influence="increasing"></speedProfile>
    </speedProfiles>
    <positioning>
<!-- linear positioning system should have UUID and be consistent with semantic constraint IS 016 -->
      <linearPositioningSystems>
        <linearPositioningSystem id="lps01" units="m" startMeasure="0.0" endMeasure="5000.0" linearReferencingMethod="absolute">
          <name name="railway line 6869 mileage" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </linearPositioningSystem>
      </linearPositioningSystems>

    </positioning>
  </common>
  
  <infrastructure id="is_01">
    <topology>
      <netElements>

        <netElement id="ne_x01" length="3600.0">
          <relation ref="nr_ne_x01connector1"/>
          <relation ref="nr_connector3ne_x01"/>
          <associatedPositioningSystem id="ne_x01_aps01">
            <intrinsicCoordinate id="ne_x01_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="700.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_x01_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="4300.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>

        <!-- connector net elements of microscopic level-->
        <netElement id="connector1">
          <relation ref="nr_ne_x01connector1"/>
          <associatedPositioningSystem id="connector1_aps01">
            <intrinsicCoordinate id="connector1_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
				
        <netElement id="connector3">
          <relation ref="nr_connector3ne_x01"/>
          <associatedPositioningSystem id="connector3_aps01">
            <intrinsicCoordinate id="connector3_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>

        <netElement id="ne_x11">
          <relation ref="nr_ne_x11connector2"/>
          <relation ref="nr_connector4ne_x11"/>
          <elementCollectionOrdered id="ne_x11_ecu01">
            <elementPart ref="ne_x01"/>
          </elementCollectionOrdered>
          <associatedPositioningSystem id="ne_x11_aps01">
            <intrinsicCoordinate id="ne_x11_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="700.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_x11_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate measure="4300.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>

        <!-- connector net elements of mesoscopic level-->
        <netElement id="connector2">
          <relation ref="nr_ne_x11connector2"/>
					<!-- connector net element of mesoscopic level aggregates the one of microscopic level -->
          <elementCollectionOrdered id="connector2_ecu01">
            <elementPart ref="connector1"/>
          </elementCollectionOrdered>
          <associatedPositioningSystem id="connector2_aps01">
            <intrinsicCoordinate id="connector2_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>

        <netElement id="connector4">
          <relation ref="nr_connector4ne_x11"/>
					<!-- connector net element of mesoscopic level aggregates the one of microscopic level -->
          <elementCollectionOrdered id="connector4_ecu01">
            <elementPart ref="connector3"/>
          </elementCollectionOrdered>
          <associatedPositioningSystem id="connector4_aps01">
            <intrinsicCoordinate id="connector4_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
      </netElements>

      <netRelations>
        <!-- connector net relations of microscopic level-->
        <netRelation id="nr_ne_x01connector1" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_x01"/>
          <elementB ref="connector1"/>
        </netRelation>
        <netRelation id="nr_connector3ne_x01" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector3"/>
          <elementB ref="ne_x01"/>
        </netRelation>				
        <!-- connector net relations of mesoscopic level-->
        <netRelation id="nr_ne_x11connector2" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_x11"/>
          <elementB ref="connector2"/>
        </netRelation>
        <netRelation id="nr_connector4ne_x11" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector4"/>
          <elementB ref="ne_x11"/>
        </netRelation>
			</netRelations>

      <networks>
        <network id="nw01">
          <level id="lv0" descriptionLevel="Micro">

            <networkResource ref="ne_x01"/>
            <networkResource ref="connector1"/>
            <networkResource ref="connector3"/>
						
            <networkResource ref="nr_ne_x01connector1"/>
            <networkResource ref="nr_connector3ne_x01"/>

						
          </level>
          <level id="lv1" descriptionLevel="Meso">

            <networkResource ref="ne_x11"/>
            <networkResource ref="connector2"/>
            <networkResource ref="connector4"/>

            <networkResource ref="nr_ne_x11connector2"/>
            <networkResource ref="nr_connector4ne_x11"/>
          </level>
        </network>
      </networks>
    </topology>
    
    <geometry>
    </geometry>
    
    <functionalInfrastructure>

      

      
      <levelCrossingsIS>
        <levelCrossingIS id="lcr01" activation="infrastructureAutomatic">
          <name name="LX Arnau Cstadt" language="en"/>
          <spotLocation id="lcr01_sloc01" netElementRef="ne_x01" applicationDirection="both" pos="1800.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2500.00"/>
          </spotLocation>
          <protection barriers="singleHalfBarrier" lights="none" acoustic="none"/>
        </levelCrossingIS>
      </levelCrossingsIS>
      
      <lines>
        <line id="lin01" lineCategory="other:CE" lineType="mainLine" infrastructureManagerRef="im_01">

          <linearLocation id="lin01_lloc01" applicationDirection="both">
<!-- associated net elements referring to a11 b11 are not extracted because are not aggregated into a11. 
Thus line and all the children should have UUIDs or keys for successful merge -->
            <associatedNetElement netElementRef="ne_x11" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="700.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4300.0"/>
            </associatedNetElement>

          </linearLocation>
          <beginsInOP ref="opp01"/>
          <endsInOP ref="opp02"/>
          <lineLayout numberOfTracks="single"/>
          <linePerformance usablePlatformLength="200" maxSpeed="80">
            <allowedLoadingGauge ref="log01"/>
          </linePerformance>
        </line>
      </lines>
      
<!-- loading gauge is extracted because line refers to it -->
      <loadingGauges>
        <loadingGauge id="log01" code="GA"/>
      </loadingGauges>
<!-- opp01 and opp02 are extracted because line from beginsInOp and endsInOp refers to it. Thus should have UUIDs -->

      <operationalPoints>
        <operationalPoint id="opp01">
        </operationalPoint>
        <operationalPoint id="opp02">
        </operationalPoint>
      </operationalPoints>
      
      <signalsIS>

        <signalIS id="sig07" isSwitchable="true">
          <name name="69Va" language="en"/>
          <spotLocation id="sig07_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="2900.0">
            <linearCoordinate positioningSystemRef="lps01" measure="3600.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>

        <signalIS id="sig11" isSwitchable="false">
          <spotLocation id="sig11_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="1300.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2000.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="announcement" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps03"/>
          </isSpeedSignal>
        </signalIS>
        <signalIS id="sig12" isSwitchable="false">
          <spotLocation id="sig12_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="1700.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2400.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps03"/>
          </isSpeedSignal>
        </signalIS>
        <signalIS id="sig13" isSwitchable="false">
          <spotLocation id="sig13_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="1850.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2550.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="endOfTrain">
            <refersToEndOfSpeedSection ref="sps03"/>
          </isSpeedSignal>
        </signalIS>
      </signalsIS>
      
      <speeds>
        <speedSection id="sps01" maxSpeed="80" isTemporary="false" isSignalized="true">
          <linearLocation id="sps01_lloc01" applicationDirection="normal">

<!-- associated net elements referring to a03, b03 and b01 are not extracted because are not aggregated into x11. 
Thus speed section and all the children should have UUIDs or keys for successful merge -->
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="700.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4300.0"/>
            </associatedNetElement>

          </linearLocation>
          <validForSpeedProfile ref="spp01"/>
        </speedSection>
        <speedSection id="sps02" maxSpeed="80" isTemporary="false" isSignalized="true">
          <linearLocation id="sps02_lloc01" applicationDirection="reverse">
<!-- associated net elements referring to a03, b03 and a01 are not extracted because are not aggregated into x11. 
Thus speed section and all the children should have UUIDs or keys for successful merge -->
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4300.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="700.0"/>
            </associatedNetElement>

          </linearLocation>
        </speedSection>
        <speedSection id="sps03" maxSpeed="20" isTemporary="true" isSignalized="true">
          <isValid from="2018-12-15" to="2018-12-22"/>
          <linearLocation id="sps03_lloc01" applicationDirection="normal">
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="2400.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="2550.0"/>
            </associatedNetElement>
          </linearLocation>
        </speedSection>
      </speeds>
<!-- swi01 and swi02 are extracted because track from trackBegin and trackEnd refers to it. Thus should have UUIDs -->
      <switchesIS>
        <switchIS id="swi01">
        </switchIS>
        <switchIS id="swi02">
        </switchIS>

      </switchesIS>
      
      <tracks>

        <track id="trc03" type="mainTrack">
          <linearLocation id="trc03_lloc01" applicationDirection="both">

            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true" sequence="2" posBegin="0.0" posEnd="3600.0">
            </associatedNetElement>
<!-- associated net elements referring to a01 b03 are not extracted because are not aggregated into x11. 
Thus track and all the children should have UUIDs or keys for successful merge -->
          </linearLocation>
          <trackBegin ref="swi01"/>
          <trackEnd ref="swi02"/>
          <length value="4000.0" type="physical"/>
        </track>

      </tracks>
      
      <trainDetectionElements>

        <trainDetectionElement id="tde12" type="axleCounter">
          <spotLocation id="tde12_sloc01" netElementRef="ne_x01" applicationDirection="both" pos="1700.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2400.0" lateralSide="left"/>
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde13" type="axleCounter">
          <spotLocation id="tde13_sloc01" netElementRef="ne_x01" applicationDirection="both">
            <linearCoordinate positioningSystemRef="lps01" measure="2550.0" lateralSide="left"/>
          </spotLocation>
        </trainDetectionElement>
      </trainDetectionElements>
    </functionalInfrastructure>

    <infrastructureStates>
      <infrastructureState id="iss01" value="operational">
        <name name="operational infrastructure 2018" language="en"/>
        <elementState id="ess01" refersToElement="lcr01" value="operational">
          <name name="levelCrossing in operation" language="en"/>
          <validityTime>
            <periodBitmask fromDate="2018-01-01" bitmask="1111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100">
              <periodRule>
                <period from="06:00:00" to="22:00:00"/>
              </periodRule>
            </periodBitmask>
          </validityTime>
        </elementState>
      </infrastructureState>
    </infrastructureStates>
    
  </infrastructure>
  

</railML>

Splitting

0
0
1
0

Merging

0

Splitting functional infrastructure entities with <linearLocation> or <areaLocation>

Example 5 - splitting railway network into railway lines (lines overlap within a station)

Railway lines border each other within the railway station. Two railway lines cover disjoint sets of net elements only at the microscopic level.

2024-09-09 railML splittingNetwork (1).svg

Input

Railway lines meet each other at the railway station.

Thus, railway station should have two linear coordinates referring to both linear positioning systems of both lines.

Mesoscopic net element ne2 aggregates all the net elements belonging to the station, i.e. ne5, ne6 … ne_x.

From them ne5 to ne_x belongs to the line2. This is determined by linear locations of line, tracks and net elements referring to the same linear positioning system lps2.

It is not possible to determine that tracks or net elements belong to one line or other by means of aggregation because ne2 aggregates net elements covered by line1 and line2.

ne1 is covered by line2.

ne3 is covered by line1.

ne1 aggregates ne4.

ne3 aggregates ne7.

<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:gml4rail3="https://www.railml.org/schemas/3.2/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2" xsi:schemaLocation="https://www.railml.org/schemas/3.2 https://www.railml.org/schemas/3.2/railml3.xsd">
  <common id="co_01">
    <positioning>
      <linearPositioningSystems>
        <linearPositioningSystem id="lps01"
                                 startMeasure="0.0"
                                 endMeasure="50000.0">
          <name name="railway line1 mileage"
                language="en"/>
        </linearPositioningSystem>
        <linearPositioningSystem id="lps02"
                                 startMeasure="0.0"
                                 endMeasure="50000.0">
          <name name="railway line2 mileage"
                language="en"/>
        </linearPositioningSystem>
      </linearPositioningSystems>
    </positioning>
  </common>
  <infrastructure id="is_01">
    <topology>
      <netElements>
        <netElement id="ne5"
                    length="500.0">
          <relation ref="nr_ne5ne_x"/>
          <relation ref="nr_ne6ne5"/>
          <associatedPositioningSystem id="ne5_aps01">
            <intrinsicCoordinate id="ne5_aps01_ic01"
                                 intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps02"
                                measure="0.0"/>
              <!--refers to the same positioning system as line 2-->
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne5_aps01_ic02"
                                 intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps02"
                                measure="500.0"/>
              <!--refers to the same positioning system as line 2-->
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_x"
                    length="500.0">
          <relation ref="nr_ne5ne_x"/>
          <relation ref="nr_ne_xne4"/>
          <associatedPositioningSystem id="ne_x_aps01">
            <intrinsicCoordinate id="ne_x_aps01_ic01"
                                 intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps02"
                                measure="500.0"/>
              <!--refers to the same positioning system as line 2-->
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_x_aps01_ic02"
                                 intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps02"
                                measure="1000.0"/>
              <!--refers to the same positioning system as line 2-->
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne4"
                    length="500.0">
          <relation ref="nr_ne_xne4"/>
          <associatedPositioningSystem id="ne4_aps01">
            <intrinsicCoordinate id="ne4_aps01_ic01"
                                 intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps02"
                                measure="1000.0"/>
              <!--refers to the same positioning system as line 2-->
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne4_aps01_ic02"
                                 intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps02"
                                measure="1500.0"/>
              <!--refers to the same positioning system as line 2-->
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne6"
                    length="500.0">
          <relation ref="nr_ne6ne5"/>
          <relation ref="nr_ne_yne6"/>
          <associatedPositioningSystem id="ne6_aps01">
            <intrinsicCoordinate id="ne6_aps01_ic01"
                                 intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01"
                                measure="4800.0"/>
              <!--refers to the same positioning system as line 1-->
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne6_aps01_ic02"
                                 intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01"
                                measure="5300.0"/>
              <!--refers to the same positioning system as line 1-->
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_y"
                    length="500.0">
          <relation ref="nr_ne7ne_y"/>
          <!-- approximation -->
          <relation ref="nr_ne_yne6"/>
          <associatedPositioningSystem id="ne_y_aps01">
            <intrinsicCoordinate id="ne_y_aps01_ic01"
                                 intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01"
                                measure="5300.0"/>
              <!--refers to the same positioning system as line 1-->
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_y_aps01_ic02"
                                 intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01"
                                measure="5800.0"/>
              <!--refers to the same positioning system as line 1-->
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne7"
                    length="500.0">
          <relation ref="nr_ne7ne_y"/>
          <!-- approximation -->
          <associatedPositioningSystem id="ne7_aps01">
            <intrinsicCoordinate id="ne7_aps01_ic01"
                                 intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01"
                                measure="5800.0"/>
              <!--refers to the same positioning system as line 1-->
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne7_aps01_ic02"
                                 intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01"
                                measure="6300.0"/>
              <!--refers to the same positioning system as line 1-->
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne1">
          <relation ref="nr_ne2ne1"/>
          <elementCollectionUnordered id="ne_ne1_ecu01">
            <elementPart ref="ne4"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne1_aps01">
            <intrinsicCoordinate id="ne1_aps01_ic01"
                                 intrinsicCoord="0">
              <linearCoordinate measure="1000.0"
                                positioningSystemRef="lps02"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne1_aps01_ic01"
                                 intrinsicCoord="1">
              <linearCoordinate measure="1500.0"
                                positioningSystemRef="lps02"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne2">
          <relation ref="nr_ne2ne1"/>
          <relation ref="nr_ne3ne2"/>
          <elementCollectionUnordered id="ne_ne2_ecu01">
            <elementPart ref="ne_x"/>
            <!-- covered by line 2 -->
            <elementPart ref="ne5"/>
            <!-- covered by line 2 -->
            <elementPart ref="ne6"/>
            <!-- covered by line 1 -->
            <elementPart ref="ne_y"/>
            <!-- covered by line 1 -->
            <!-- thus is covered by two lines -->
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne2_aps01">
            <intrinsicCoordinate id="ne1_aps01_ic01"
                                 intrinsicCoord="0.5">
              <linearCoordinate measure="0.0"
                                positioningSystemRef="lps01"/>
              <!-- refers to the same positioning system as line 1 -->
              <linearCoordinate measure="4800.0"
                                positioningSystemRef="lps02"/>
              <!-- refers to the same positioning system as line 2 -->
              <!-- thus is covered by two lines -->
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne3">
          <relation ref="nr_ne3ne2"/>
          <elementCollectionUnordered id="ne_ne3_ecu01">
            <elementPart ref="ne7"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne3_aps01">
            <intrinsicCoordinate id="ne3_aps01_ic01"
                                 intrinsicCoord="0">
              <linearCoordinate measure="5800.0"
                                positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne3_aps01_ic01"
                                 intrinsicCoord="1">
              <linearCoordinate measure="6300.0"
                                positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
      </netElements>
      <netRelations>
        <netRelation id="nr_ne_xne4"
                     positionOnA="0"
                     positionOnB="1"
                     navigability="Both">
          <elementA ref="ne_x"/>
          <elementB ref="ne4"/>
        </netRelation>
        <netRelation id="nr_ne5ne_x"
                     positionOnA="0"
                     positionOnB="1"
                     navigability="Both">
          <elementA ref="ne5"/>
          <elementB ref="ne_x"/>
        </netRelation>
        <netRelation id="nr_ne6ne5"
                     positionOnA="0"
                     positionOnB="1"
                     navigability="Both">
          <elementA ref="ne6"/>
          <elementB ref="ne5"/>
        </netRelation>
        <netRelation id="nr_ne_yne6"
                     positionOnA="0"
                     positionOnB="1"
                     navigability="Both">
          <elementA ref="ne_y"/>
          <elementB ref="ne6"/>
        </netRelation>
        <netRelation id="nr_ne7ne_y"
                     positionOnA="0"
                     positionOnB="1"
                     navigability="Both">
          <elementA ref="ne7"/>
          <elementB ref="ne_y"/>
        </netRelation>
        <netRelation id="nr_ne2ne1"
                     positionOnA="0"
                     positionOnB="1"
                     navigability="Both">
          <elementA ref="ne2"/>
          <elementB ref="ne1"/>
        </netRelation>
        <netRelation id="nr_ne3ne2"
                     positionOnA="0"
                     positionOnB="1"
                     navigability="Both">
          <elementA ref="ne3"/>
          <elementB ref="ne2"/>
        </netRelation>
      </netRelations>
      <networks>
        <network id="nw01">
          <level id="lv0"
                 descriptionLevel="Micro">
            <networkResource ref="ne4"/>
            <networkResource ref="ne_x"/>
            <networkResource ref="ne5"/>
            <networkResource ref="ne6"/>
            <networkResource ref="ne_y"/>
            <networkResource ref="ne7"/>
            <networkResource ref="nr_ne_xne4"/>
            <networkResource ref="nr_ne5ne_x"/>
            <networkResource ref="nr_ne6ne5"/>
            <networkResource ref="nr_ne_yne6"/>
            <networkResource ref="nr_ne7ne_y"/>
          </level>
          <level id="lv1"
                 descriptionLevel="Meso">
            <networkResource ref="ne1"/>
            <networkResource ref="ne2"/>
            <networkResource ref="ne3"/>
            <networkResource ref="nr_ne3ne2"/>
            <networkResource ref="nr_ne2ne1"/>
          </level>
        </network>
      </networks>
    </topology>
    <functionalInfrastructure>
      <lines>
        <line id="lin01"
              lineCategory="other:CE"
              lineType="mainLine"
              infrastructureManagerRef="im_01">
          <linearLocation id="lin01_lloc01"
                          applicationDirection="both">
            <associatedNetElement netElementRef="ne3"
                                  keepsOrientation="true">
              <!-- lps01 is associated to lin01 -->
              <linearCoordinateBegin positioningSystemRef="lps01"
                                     measure="5800.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01"
                                   measure="6300.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne2"
                                  keepsOrientation="true">
              <!-- ne2 is covered by both lin01 and lin02 -->
              <linearCoordinateBegin positioningSystemRef="lps01"
                                     measure="4800.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01"
                                   measure="5800.0"/>
            </associatedNetElement>
          </linearLocation>
        </line>
        <line id="lin02"
              lineCategory="other:CE"
              lineType="mainLine"
              infrastructureManagerRef="im_01">
          <linearLocation id="lin02_lloc01"
                          applicationDirection="both">
            <associatedNetElement netElementRef="ne1"
                                  keepsOrientation="true">
              <!-- lps02 is associated to lin02 -->
              <linearCoordinateBegin positioningSystemRef="lps02"
                                     measure="1000.0"/>
              <linearCoordinateEnd positioningSystemRef="lps02"
                                   measure="1500.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne2"
                                  keepsOrientation="true">
              <!-- ne2 is covered by both lin01 and lin02 -->
              <linearCoordinateBegin positioningSystemRef="lps02"
                                     measure="0.0"/>
              <linearCoordinateEnd positioningSystemRef="lps02"
                                   measure="1000.0"/>
            </associatedNetElement>
          </linearLocation>
        </line>
      </lines>
      <operationalPoints>
        <operationalPoint id="opp01">
          <name name="Bf Cranz"
                language="de"/>
          <spotLocation id="opp01_sloc01"
                        netElementRef="ne2"
                        applicationDirection="both">
            <linearCoordinate positioningSystemRef="lps01"
                              measure="4800.0"/>
            <!-- refers to the same positioning system as line 1 -->
            <linearCoordinate positioningSystemRef="lps02"
                              measure="0.0"/>
            <!-- refers to the same positioning system as line 2 -->
            <!-- thus is covered by two lines -->
          </spotLocation>
          <connectedToLine ref="lin01"/>
          <connectedToLine ref="lin02"/>
          <!-- all the lines connected to a station should be listed -->
        </operationalPoint>
      </operationalPoints>
    </functionalInfrastructure>
  </infrastructure>
</railML>

Splitting

At the functional level railway station x and all its children, except for linear coordinate referring to another line, should be present in both split files. At the functional level railway station x serves as connector.

All the lines connected to the station are present in both files but only desired one has elaboration.

At the mesoscopic level aggregated net element ne2 should be present in both split files. At the mesoscopic level ne2 serves as connector of mesoscopic level, aggregates connector of microscopic level.

At the microscopic level connector net element should be inserted where lines meet each other, i.e. between ne5 and ne6.

Line 1
<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:gml4rail3="https://www.railml.org/schemas/3.2/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2" xsi:schemaLocation="https://www.railml.org/schemas/3.2 https://www.railml.org/schemas/3.2/railml3.xsd">
	<common id="co_01">
		<positioning>
			<linearPositioningSystems>
				<linearPositioningSystem id="lps01" startMeasure="0.0" endMeasure="50000.0">
					<name name="railway line1 mileage" language="en"/>
				</linearPositioningSystem>
			</linearPositioningSystems>
		</positioning>
	</common>
	<infrastructure id="is_01">
		<topology>
			<netElements>
				<!-- connector net element of microscopic level-->
				<netElement id="connector">
					<relation ref="nr_ne6connector"/>
					<associatedPositioningSystem id="connector_aps01">
						<intrinsicCoordinate id="connector_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
				<netElement id="ne6" length="500.0">
					<relation ref="nr_ne_yne6"/>
					<relation ref="nr_ne6connector"/>
					<associatedPositioningSystem id="ne6_aps01">
						<intrinsicCoordinate id="ne6_aps01_ic01" intrinsicCoord="0">
							<linearCoordinate positioningSystemRef="lps01" measure="4800.0"/>
							<!--refers to the same positioning system as line 1-->
						</intrinsicCoordinate>
						<intrinsicCoordinate id="ne6_aps01_ic02" intrinsicCoord="1">
							<linearCoordinate positioningSystemRef="lps01" measure="5300.0"/>
							<!--refers to the same positioning system as line 1-->
						</intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
				<netElement id="ne_y" length="500.0">
					<relation ref="nr_ne7ne_y"/>
					<!-- approximation -->
					<relation ref="nr_ne_yne6"/>
					<associatedPositioningSystem id="ne_y_aps01">
						<intrinsicCoordinate id="ne_y_aps01_ic01" intrinsicCoord="0">
							<linearCoordinate positioningSystemRef="lps01" measure="5300.0"/>
							<!--refers to the same positioning system as line 1-->
						</intrinsicCoordinate>
						<intrinsicCoordinate id="ne_y_aps01_ic02" intrinsicCoord="1">
							<linearCoordinate positioningSystemRef="lps01" measure="5800.0"/>
							<!--refers to the same positioning system as line 1-->
						</intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
				<netElement id="ne7" length="500.0">
					<relation ref="nr_ne7ne_y"/>
					<!-- approximation -->
					<associatedPositioningSystem id="ne7_aps01">
						<intrinsicCoordinate id="ne7_aps01_ic01" intrinsicCoord="0">
							<linearCoordinate positioningSystemRef="lps01" measure="5800.0"/>
							<!--refers to the same positioning system as line 1-->
						</intrinsicCoordinate>
						<intrinsicCoordinate id="ne7_aps01_ic02" intrinsicCoord="1">
							<linearCoordinate positioningSystemRef="lps01" measure="6300.0"/>
							<!--refers to the same positioning system as line 1-->
						</intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
				<!-- connector net element of mesoscopic level -->
				<netElement id="ne2">
					<relation ref="nr_ne3ne2"/>
					<elementCollectionUnordered id="ne_ne2_ecu01">
						<!-- covered by line 1 -->
						<elementPart ref="ne6"/>
						<!-- covered by line 1 -->
						<elementPart ref="ne_y"/>
						<!-- connector net element of mesoscopic level aggregates the one of microscopic level -->
						<elementPart ref="connector"/>
					</elementCollectionUnordered>
					<associatedPositioningSystem id="ne2_aps01">
						<intrinsicCoordinate id="ne1_aps01_ic01" intrinsicCoord="0.5">
							<linearCoordinate measure="0.0" positioningSystemRef="lps01"/>
							<!-- refers to the same positioning system as line 1 -->
						</intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
				<netElement id="ne3">
					<relation ref="nr_ne3ne2"/>
					<elementCollectionUnordered id="ne_ne3_ecu01">
						<elementPart ref="ne7"/>
					</elementCollectionUnordered>
					<associatedPositioningSystem id="ne3_aps01">
						<intrinsicCoordinate id="ne3_aps01_ic01" intrinsicCoord="0">
							<linearCoordinate measure="5800.0" positioningSystemRef="lps01"/>
						</intrinsicCoordinate>
						<intrinsicCoordinate id="ne3_aps01_ic01" intrinsicCoord="1">
							<linearCoordinate measure="6300.0" positioningSystemRef="lps01"/>
						</intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
			</netElements>
			<netRelations>
				<!-- connector net relation of microscopic level-->
				<netRelation id="nr_ne6connector" positionOnA="0" positionOnB="1" navigability="Both">
					<elementA ref="ne6"/>
					<elementB ref="connector"/>
				</netRelation>
				<netRelation id="nr_ne_yne6" positionOnA="0" positionOnB="1" navigability="Both">
					<elementA ref="ne_y"/>
					<elementB ref="ne6"/>
				</netRelation>
				<netRelation id="nr_ne7ne_y" positionOnA="0" positionOnB="1" navigability="Both">
					<elementA ref="ne7"/>
					<elementB ref="ne_y"/>
				</netRelation>
				<netRelation id="nr_ne3ne2" positionOnA="0" positionOnB="1" navigability="Both">
					<elementA ref="ne3"/>
					<elementB ref="ne2"/>
				</netRelation>
			</netRelations>
			<networks>
				<network id="nw01">
					<level id="lv0" descriptionLevel="Micro">
						<networkResource ref="ne6"/>
						<networkResource ref="ne_y"/>
						<networkResource ref="ne7"/>
						<networkResource ref="nr_ne_yne6"/>
						<networkResource ref="nr_ne7ne_y"/>
					</level>
					<level id="lv1" descriptionLevel="Meso">
						<networkResource ref="ne2"/>
						<networkResource ref="ne3"/>
						<networkResource ref="nr_ne3ne2"/>
					</level>
				</network>
			</networks>
		</topology>
		<functionalInfrastructure>
			<lines>
				<line id="lin01" lineCategory="other:CE" lineType="mainLine" infrastructureManagerRef="im_01">
					<linearLocation id="lin01_lloc01" applicationDirection="both">
						<associatedNetElement netElementRef="ne3" keepsOrientation="true">
							<!-- lps01 is associated to lin01 -->
							<linearCoordinateBegin positioningSystemRef="lps01" measure="5800.0"/>
							<linearCoordinateEnd positioningSystemRef="lps01" measure="6300.0"/>
						</associatedNetElement>
						<associatedNetElement netElementRef="ne2" keepsOrientation="true">
							<!-- ne2 is covered by both lin01 and lin02 -->
							<linearCoordinateBegin positioningSystemRef="lps01" measure="4800.0"/>
							<linearCoordinateEnd positioningSystemRef="lps01" measure="5800.0"/>
						</associatedNetElement>
					</linearLocation>
				</line>
				<line id="lin02"/>
				<!-- this means that description of lin02 is present in other file -->
			</lines>
			<!-- connector entity of the functional level -->
			<operationalPoints>
				<operationalPoint id="opp01">
					<name name="Bf Cranz" language="de"/>
					<spotLocation id="opp01_sloc01" netElementRef="ne2" applicationDirection="both">
						<linearCoordinate positioningSystemRef="lps01" measure="4800.0"/>
						<!-- refers to the same positioning system as line 1 -->
					</spotLocation>
					<connectedToLine ref="lin01"/>
					<connectedToLine ref="lin02"/>
				</operationalPoint>
			</operationalPoints>
		</functionalInfrastructure>
	</infrastructure>
</railML>
Line 2
<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.2" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:gml4rail3="https://www.railml.org/schemas/3.2/gml" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.2" xsi:schemaLocation="https://www.railml.org/schemas/3.2 https://www.railml.org/schemas/3.2/railml3.xsd">
	<common id="co_01">
		<positioning>
			<linearPositioningSystems>
				<linearPositioningSystem id="lps02" startMeasure="0.0" endMeasure="50000.0">
					<name name="railway line2 mileage" language="en"/>
				</linearPositioningSystem>
			</linearPositioningSystems>
		</positioning>
	</common>
	<infrastructure id="is_01">
		<topology>
			<netElements>
				<!-- connector net element of microscopic level-->
				<netElement id="connector">
					<relation ref="nr_connectorne5"/>
					<associatedPositioningSystem id="connector_aps01">
						<intrinsicCoordinate id="connector_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
				<netElement id="ne5" length="500.0">
					<relation ref="nr_ne5ne_x"/>
					<relation ref="nr_connectorne5"/>
					<associatedPositioningSystem id="ne5_aps01">
						<intrinsicCoordinate id="ne5_aps01_ic01" intrinsicCoord="0">
							<linearCoordinate positioningSystemRef="lps02" measure="0.0"/>
							<!--refers to the same positioning system as line 2-->
						</intrinsicCoordinate>
						<intrinsicCoordinate id="ne5_aps01_ic02" intrinsicCoord="1">
							<linearCoordinate positioningSystemRef="lps02" measure="500.0"/>
							<!--refers to the same positioning system as line 2-->
						</intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
				<netElement id="ne_x" length="500.0">
					<relation ref="nr_ne5ne_x"/>
					<relation ref="nr_ne_xne4"/>
					<associatedPositioningSystem id="ne_x_aps01">
						<intrinsicCoordinate id="ne_x_aps01_ic01" intrinsicCoord="0">
							<linearCoordinate positioningSystemRef="lps02" measure="500.0"/>
							<!--refers to the same positioning system as line 2-->
						</intrinsicCoordinate>
						<intrinsicCoordinate id="ne_x_aps01_ic02" intrinsicCoord="1">
							<linearCoordinate positioningSystemRef="lps02" measure="1000.0"/>
							<!--refers to the same positioning system as line 2-->
						</intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
				<netElement id="ne4" length="500.0">
					<relation ref="nr_ne_xne4"/>
					<associatedPositioningSystem id="ne4_aps01">
						<intrinsicCoordinate id="ne4_aps01_ic01" intrinsicCoord="0">
							<linearCoordinate positioningSystemRef="lps02" measure="1000.0"/>
							<!--refers to the same positioning system as line 2-->
						</intrinsicCoordinate>
						<intrinsicCoordinate id="ne4_aps01_ic02" intrinsicCoord="1">
							<linearCoordinate positioningSystemRef="lps02" measure="1500.0"/>
							<!--refers to the same positioning system as line 2-->
						</intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
				<netElement id="ne1">
					<relation ref="nr_ne2ne1"/>
					<elementCollectionUnordered id="ne_ne1_ecu01">
						<elementPart ref="ne4"/>
					</elementCollectionUnordered>
					<associatedPositioningSystem id="ne1_aps01">
						<intrinsicCoordinate id="ne1_aps01_ic01" intrinsicCoord="0">
							<linearCoordinate measure="1000.0" positioningSystemRef="lps02"/>
						</intrinsicCoordinate>
						<intrinsicCoordinate id="ne1_aps01_ic01" intrinsicCoord="1">
							<linearCoordinate measure="1500.0" positioningSystemRef="lps02"/>
						</intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
				<!-- connector net element of mesoscopic level -->
				<netElement id="ne2">
					<relation ref="nr_ne2ne1"/>
					<relation ref="nr_ne3ne2"/>
					<elementCollectionUnordered id="ne_ne2_ecu01">
						<!-- covered by line 2 -->
						<elementPart ref="ne_x"/>
						<!-- covered by line 2 -->
						<elementPart ref="ne5"/>
						<!-- connector net element of mesoscopic level aggegates the one of microscopic level -->
						<elementPart ref="connector"/>
					</elementCollectionUnordered>
					<associatedPositioningSystem id="ne2_aps01">
						<intrinsicCoordinate id="ne1_aps01_ic01" intrinsicCoord="0.5">
							<linearCoordinate measure="4800.0" positioningSystemRef="lps02"/>
							<!-- refers to the same positioning system as line 2 -->
						</intrinsicCoordinate>
					</associatedPositioningSystem>
				</netElement>
			</netElements>
			<netRelations>
				<netRelation id="nr_ne_xne4" positionOnA="0" positionOnB="1" navigability="Both">
					<elementA ref="ne_x"/>
					<elementB ref="ne4"/>
				</netRelation>
				<netRelation id="nr_ne5ne_x" positionOnA="0" positionOnB="1" navigability="Both">
					<elementA ref="ne5"/>
					<elementB ref="ne_x"/>
				</netRelation>
				<!-- connector net relation of microscopic level-->
				<netRelation id="nr_connectorne5" positionOnA="0" positionOnB="1" navigability="Both">
					<elementA ref="connector"/>
					<elementB ref="ne5"/>
				</netRelation>
				<netRelation id="nr_ne2ne1" positionOnA="0" positionOnB="1" navigability="Both">
					<elementA ref="ne2"/>
					<elementB ref="ne1"/>
				</netRelation>
			</netRelations>
			<networks>
				<network id="nw01">
					<level id="lv0" descriptionLevel="Micro">
						<networkResource ref="ne4"/>
						<networkResource ref="ne_x"/>
						<networkResource ref="ne5"/>
						<networkResource ref="nr_ne_xne4"/>
						<networkResource ref="nr_ne5ne_x"/>
					</level>
					<level id="lv1" descriptionLevel="Meso">
						<networkResource ref="ne1"/>
						<networkResource ref="ne2"/>
						<networkResource ref="nr_ne2ne1"/>
					</level>
				</network>
			</networks>
		</topology>
		<functionalInfrastructure>
			<lines>
				<line id="lin02" lineCategory="other:CE" lineType="mainLine" infrastructureManagerRef="im_01">
					<linearLocation id="lin02_lloc01" applicationDirection="both">
						<associatedNetElement netElementRef="ne1" keepsOrientation="true">
							<!-- lps02 is associated to lin02 -->
							<linearCoordinateBegin positioningSystemRef="lps02" measure="1000.0"/>
							<linearCoordinateEnd positioningSystemRef="lps02" measure="1500.0"/>
						</associatedNetElement>
						<associatedNetElement netElementRef="ne2" keepsOrientation="true">
							<!-- ne2 is covered by both lin01 and lin02 -->
							<linearCoordinateBegin positioningSystemRef="lps02" measure="0.0"/>
							<linearCoordinateEnd positioningSystemRef="lps02" measure="1000.0"/>
						</associatedNetElement>
					</linearLocation>
				</line>
				<line id="lin01"/>
				<!-- this means that description of lin01 is present in other file -->
			</lines>
			<operationalPoints>
				<operationalPoint id="opp01">
					<name name="Bf Cranz" language="de"/>
					<spotLocation id="opp01_sloc01" netElementRef="ne2" applicationDirection="both">
						<linearCoordinate positioningSystemRef="lps02" measure="0.0"/>
						<!-- refers to the same positioning system as line 2 -->
					</spotLocation>
					<connectedToLine ref="lin01"/>
					<connectedToLine ref="lin02"/>
					<!-- all the lines connected to a station should be listed -->
				</operationalPoint>
			</operationalPoints>
		</functionalInfrastructure>
	</infrastructure>
</railML>

Merging

Merging follows general approach[1] for splitting at the microscopic level. At the functional and mesoscopic levels files are merged with ne2 and railway station x present in both files.

0

Example 6 - splitting line into stations and line sections (station is completely inside a tunnel)

Linear positioning system should have UUID, for the entire lifetime of the splitting exercise, and be consistent with semantic constraint IS 016.

In this example the following functional IS entities span across several <netElement> and are split in the middle. Therefore they and all their children should have UUIDs, for the entire lifetime of the splitting exercise, for successful merge.

  • <line>, as associated net elements referring to x11 b11 are not extracted because are not aggregated into a11.
  • <overCrossing> (tunnel), as associated net element referring to x01 is not extracted because is not aggregated into a11.
  • <speedSection>, as associated net elements referring to x01 b03 and b01 are not extracted because are not aggregated into a11.
  • <track>, as associated net elements referring to x01 b03 are not extracted because are not aggregated into a11.

Input

Input to splitting into stations and line sections is Simple example of railML.org.

Stations and line sections do not overlap topologically, i.e. no mesoscopic net element is covered by both station and line section.

Tunnel ends after station ends. Tunnel completely covers station.

<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.1" 
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:gml="http://www.opengis.net/gml/3.2/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://www.railml.org/schemas/3.1 https://www.railml.org/schemas/3.1/railml3.xsd"
        version="3.1">
  <metadata>
    <dc:format>3.1</dc:format>
    <dc:identifier>3</dc:identifier>
    <dc:source>railML.org</dc:source>
    <dc:title xml:lang="en">Simple Example v12 railML 3.1</dc:title>
    <dc:language>en</dc:language>
    <dc:creator xml:lang="de">railML.org</dc:creator>
    <dc:creator xml:lang="de">Dr. Jörg von Lingen</dc:creator>
    <dc:description>This example file has been coded manually and therefore may not be free of errors.</dc:description>
    <dc:rights>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.
      This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivatives 4.0 International License with additional license conditions of railML.org.
      For further information see: https://www.railml.org/licence
      Content of this file: railML 3.1 Simple Example</dc:rights>
  </metadata>
  
  <common id="co_01">
    <organizationalUnits>
      <infrastructureManager id="im_01" code="SZDC"/>
    </organizationalUnits>
    <speedProfiles>
      <speedProfile id="spp01" influence="increasing"></speedProfile>
    </speedProfiles>
    <positioning>
      <geometricPositioningSystems>
        <geometricPositioningSystem id="gps01" crsDefinition="epsg:4326">
          <name name="WGS84" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </geometricPositioningSystem>
        <geometricPositioningSystem id="gps02" crsDefinition="epsg:25832">
          <name name="ETRS89_UTMzone32N" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </geometricPositioningSystem>
      </geometricPositioningSystems>
      <linearPositioningSystems>
        <linearPositioningSystem id="lps01" units="m" startMeasure="0.0" endMeasure="5000.0" linearReferencingMethod="absolute">
          <name name="railway line 6869 mileage" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </linearPositioningSystem>
      </linearPositioningSystems>
      <screenPositioningSystems>
        <screenPositioningSystem pxX="1024" pxY="768" id="scs01">
          <name name="screen visualization coordinate system" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </screenPositioningSystem>
      </screenPositioningSystems>
    </positioning>
  </common>
  
  <infrastructure id="is_01">
    <topology>
      <netElements>
        <netElement id="ne_a01" length="500.0">
          <relation ref="nr_a01a02"/>
          <relation ref="nr_a01a03"/>
          <associatedPositioningSystem id="ne_a01_aps01">
            <intrinsicCoordinate id="ne_a01_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_a01_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_a02" length="500.0">
          <relation ref="nr_a01a02"/>
          <relation ref="nr_a02a03"/>
          <associatedPositioningSystem id="ne_a02_aps01">
            <intrinsicCoordinate id="ne_a02_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_a02_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_a03" length="200.0">
          <relation ref="nr_a01a03"/>
          <relation ref="nr_a02a03"/>
          <relation ref="nr_a03x01"/>
          <associatedPositioningSystem id="ne_a03_aps01">
            <intrinsicCoordinate id="ne_a03_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_a03_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="700.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b01" length="500.0">
          <relation ref="nr_b01b03"/>
          <relation ref="nr_b01b04"/>
          <associatedPositioningSystem id="ne_b01_aps01">
            <intrinsicCoordinate id="ne_b01_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="4500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b01_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="5000.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b02" length="450.0">
          <relation ref="nr_b02b04"/>
          <relation ref="nr_b02b05"/>
          <associatedPositioningSystem id="ne_b02_aps01">
            <intrinsicCoordinate id="ne_b02_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="4550.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b02_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="5000.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b03" length="200.0">
          <relation ref="nr_b01b03"/>
          <relation ref="nr_b03b04"/>
          <relation ref="nr_x01b03"/>
          <associatedPositioningSystem id="ne_b03_aps01">
            <intrinsicCoordinate id="ne_b03_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="4300.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b03_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="4500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b04" length="50.0">
          <relation ref="nr_b01b04"/>
          <relation ref="nr_b02b04"/>
          <relation ref="nr_b03b04"/>
          <relation ref="nr_b04b05"/>
          <associatedPositioningSystem id="ne_b04_aps01">
            <intrinsicCoordinate id="ne_b04_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="4500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b04_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="4550.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b05" length="200.0">
          <relation ref="nr_b02b05"/>
          <relation ref="nr_b04b05"/>
          <associatedPositioningSystem id="ne_b05_aps01">
            <intrinsicCoordinate id="ne_b05_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b05_aps01_ic02" intrinsicCoord="1">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_x01" length="3600.0">
          <relation ref="nr_a03x01"/>
          <relation ref="nr_x01b03"/>
          <associatedPositioningSystem id="ne_x01_aps01">
            <intrinsicCoordinate id="ne_x01_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="700.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_x01_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="4300.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_a11">
          <relation ref="nr_a11x11"/>
          <elementCollectionUnordered id="ne_a11_ecu01">
            <elementPart ref="ne_a01"/>
            <elementPart ref="ne_a02"/>
            <elementPart ref="ne_a03"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne_a11_aps01">
            <intrinsicCoordinate id="ne_a11_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="0.0" positioningSystemRef="lps01"/>
              <linearCoordinate measure="700.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b11">
          <relation ref="nr_x11b11"/>
          <elementCollectionUnordered id="ne_b11_ecu01">
            <elementPart ref="ne_b01"/>
            <elementPart ref="ne_b02"/>
            <elementPart ref="ne_b03"/>
            <elementPart ref="ne_b04"/>
            <elementPart ref="ne_b05"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne_b11_aps01">
            <intrinsicCoordinate id="ne_b11_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="4300.0" positioningSystemRef="lps01"/>
              <linearCoordinate measure="5000.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_x11">
          <relation ref="nr_a11x11"/>
          <relation ref="nr_x11b11"/>
          <elementCollectionOrdered id="ne_x11_ecu01">
            <elementPart ref="ne_x01"/>
          </elementCollectionOrdered>
          <associatedPositioningSystem id="ne_x11_aps01">
            <intrinsicCoordinate id="ne_x11_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="700.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_x11_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate measure="4300.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
      </netElements>

      <netRelations>
        <netRelation id="nr_a01a02" positionOnA="1" positionOnB="1" navigability="None">
          <elementA ref="ne_a01"/>
          <elementB ref="ne_a02"/>
        </netRelation>
        <netRelation id="nr_a01a03" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_a01"/>
          <elementB ref="ne_a03"/>
        </netRelation>
        <netRelation id="nr_a02a03" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_a02"/>
          <elementB ref="ne_a03"/>
        </netRelation>
        <netRelation id="nr_b01b03" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b01"/>
          <elementB ref="ne_b03"/>
        </netRelation>
        <netRelation id="nr_b01b04" positionOnA="0" positionOnB="0" navigability="None">
          <elementA ref="ne_b01"/>
          <elementB ref="ne_b04"/>
        </netRelation>
        <netRelation id="nr_b02b04" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b02"/>
          <elementB ref="ne_b04"/>
        </netRelation>
        <netRelation id="nr_b02b05" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b02"/>
          <elementB ref="ne_b05"/>
        </netRelation>
        <netRelation id="nr_b03b04" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_b03"/>
          <elementB ref="ne_b04"/>
        </netRelation>
        <netRelation id="nr_b04b05" positionOnA="1" positionOnB="1" navigability="None">
          <elementA ref="ne_b04"/>
          <elementB ref="ne_b05"/>
        </netRelation>
        <netRelation id="nr_a03x01" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_a03"/>
          <elementB ref="ne_x01"/>
        </netRelation>
        <netRelation id="nr_x01b03" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_x01"/>
          <elementB ref="ne_b03"/>
        </netRelation>
        <netRelation id="nr_a11x11" positionOnA="0" positionOnB="0" navigability="Both">
          <elementA ref="ne_a11"/>
          <elementB ref="ne_x11"/>
        </netRelation>
        <netRelation id="nr_x11b11" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_x11"/>
          <elementB ref="ne_b11"/>
        </netRelation>
      </netRelations>
   
      <networks>
        <network id="nw01">
          <level id="lv0" descriptionLevel="Micro">
            <networkResource ref="ne_a01"/>
            <networkResource ref="ne_a02"/>
            <networkResource ref="ne_a03"/>
            <networkResource ref="ne_b01"/>
            <networkResource ref="ne_b02"/>
            <networkResource ref="ne_b03"/>
            <networkResource ref="ne_b04"/>
            <networkResource ref="ne_b05"/>
            <networkResource ref="ne_x01"/>
            <networkResource ref="nr_a01a02"/>
            <networkResource ref="nr_a01a03"/>
            <networkResource ref="nr_a02a03"/>
            <networkResource ref="nr_b01b03"/>
            <networkResource ref="nr_b01b04"/>
            <networkResource ref="nr_b02b04"/>
            <networkResource ref="nr_b02b05"/>
            <networkResource ref="nr_b03b04"/>
            <networkResource ref="nr_b04b05"/>
            <networkResource ref="nr_a03x01"/>
            <networkResource ref="nr_x01b03"/>
          </level>
          <level id="lv1" descriptionLevel="Meso">
            <networkResource ref="ne_a11"/>
            <networkResource ref="ne_b11"/>
            <networkResource ref="ne_x11"/>
            <networkResource ref="nr_a11x11"/>
            <networkResource ref="nr_x11b11"/>
          </level>
        </network>
      </networks>
    </topology>
    
    <geometry>
    </geometry>
    
    <functionalInfrastructure>
      <bufferStops>
        <bufferStop id="bus01" type="fixedBufferStop">
          <spotLocation id="bus01_sloc01" netElementRef="ne_a01" applicationDirection="reverse" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
          </spotLocation>
        </bufferStop>
        <bufferStop id="bus02" type="fixedBufferStop">
          <spotLocation id="bus02_sloc01" netElementRef="ne_a02" applicationDirection="reverse" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
          </spotLocation>
        </bufferStop>
        <bufferStop id="bus03" type="fixedBufferStop">
          <spotLocation id="bus03_sloc01" netElementRef="ne_b01" applicationDirection="normal" pos="500.0">
            <linearCoordinate positioningSystemRef="lps01" measure="5000.0"/>
          </spotLocation>
        </bufferStop>
        <bufferStop id="bus04" type="fixedBufferStop">
          <spotLocation id="bus04_sloc01" netElementRef="ne_b02" applicationDirection="normal" pos="450.0">
            <linearCoordinate positioningSystemRef="lps01" measure="5000.0"/>
          </spotLocation>
        </bufferStop>
        <bufferStop id="bus05" type="sleeperCross">
          <spotLocation id="bus05_sloc01" netElementRef="ne_b05" applicationDirection="reverse" pos="0.0">
          </spotLocation>
        </bufferStop>
      </bufferStops>
      
      <derailersIS>
        <derailerIS id="der01" derailSide="right">
          <spotLocation id="der01_sloc01" netElementRef="ne_b05" applicationDirection="normal" pos="150.0">
          </spotLocation>
        </derailerIS>
      </derailersIS>
      
      <levelCrossingsIS>
        <levelCrossingIS id="lcr01" activation="infrastructureAutomatic">
          <name name="LX Arnau Cstadt" language="en"/>
          <spotLocation id="lcr01_sloc01" netElementRef="ne_x01" applicationDirection="both" pos="1800.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2500.00"/>
          </spotLocation>
          <protection barriers="singleHalfBarrier" lights="none" acoustic="none"/>
        </levelCrossingIS>
      </levelCrossingsIS>
      
      <lines>
        <line id="lin01" lineCategory="other:CE" lineType="mainLine" infrastructureManagerRef="im_01">
          <name name="Malý příklad železniční tratě" language="cz"/>
          <name name="Kleine Beispielstrecke" language="de"/>
          <name name="Simple Example railway line" language="en"/>
          <name name="Ejemplo Simple de Linea Ferroviaria" language="es"/>
          <name name="Petit Exemple Ligne Ferroviaire" language="fr"/>
          <name name="Semplice Esempio di Stazione/Linea Ferroviaria" language="it"/>
          <name name="Lille eksempelbanen" language="no"/>
          <name name="Lilla Exempellinjen" language="se"/>
          <linearLocation id="lin01_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a11" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="0.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="700.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_x11" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="700.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4300.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_b11" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4300.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="5000.0"/>
            </associatedNetElement>
          </linearLocation>
          <beginsInOP ref="opp01"/>
          <endsInOP ref="opp02"/>
          <lineLayout numberOfTracks="single"/>
          <linePerformance usablePlatformLength="200" maxSpeed="80">
            <allowedLoadingGauge ref="log01"/>
          </linePerformance>
        </line>
      </lines>
      
      <loadingGauges>
        <loadingGauge id="log01" code="GA"/>
      </loadingGauges>
      
      <operationalPoints>
        <operationalPoint id="opp01">
          <name name="Bf Arnau" language="de"/>
          <name name="Adamov" language="cz"/>
          <spotLocation id="opp01_sloc01" netElementRef="ne_a11" applicationDirection="both">
            <linearCoordinate positioningSystemRef="lps01" measure="300.0"/>
          </spotLocation>
          <designator register="_SimpleRegister" entry="OAR"/>
          <infrastructureManagerRef ref="im_01"/>
          <opEquipment>
            <ownsPlatform ref="plf01"/>
            <ownsSignal ref="sig01"/>
            <ownsSignal ref="sig02"/>
            <ownsSignal ref="sig03"/>
          </opEquipment>
          <opOperations>
            <opOperation operationalType="station" trafficType="passenger"/>
          </opOperations> 
        </operationalPoint>
        <operationalPoint id="opp02">
          <name name="Bf Cstadt" language="de"/>
          <name name="Bouzov" language="cz"/>
          <spotLocation id="opp02_sloc01" netElementRef="ne_b11" applicationDirection="both">
            <linearCoordinate positioningSystemRef="lps01" measure="4700.0"/>
          </spotLocation>
          <designator register="_SimpleRegister" entry="OCS"/>
          <infrastructureManagerRef ref="im_01"/>
          <opEquipment>
            <ownsPlatform ref="plf02"/>
            <ownsPlatform ref="plf03"/>
            <ownsSignal ref="sig04"/>
            <ownsSignal ref="sig05"/>
            <ownsSignal ref="sig06"/>
          </opEquipment>
          <opOperations>
            <opOperation operationalType="station" trafficType="passenger"/>
          </opOperations> 
        </operationalPoint>
      </operationalPoints>
      
      <overCrossings>
        <overCrossing constructionType="tunnel" id="tun01">
          <linearLocation applicationDirection="both" id="tun01_lloc01">
            <associatedNetElement keepsOrientation="true" netElementRef="ne_a01">
              <linearCoordinateBegin measure="0.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="500.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
            <associatedNetElement keepsOrientation="true" netElementRef="ne_a03">
              <linearCoordinateBegin measure="500.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="700.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
            <associatedNetElement keepsOrientation="true" netElementRef="ne_x01">
              <linearCoordinateBegin measure="700.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="800.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
          </linearLocation>
        </overCrossing>
      </overCrossings>
			
      <platforms>
        <platform id="plf01">
          <spotLocation id="plf01_sloc01" netElementRef="ne_a11" applicationDirection="both">
            <linearCoordinate measure="300.0" positioningSystemRef="lps01"/>
          </spotLocation>
          <ownsPlatformEdge ref="ple01"/>
          <ownsPlatformEdge ref="ple02"/>
        </platform>
        <platform id="plf02">
          <spotLocation id="plf02_sloc01" netElementRef="ne_b11" applicationDirection="both">
            <linearCoordinate measure="4700.0" positioningSystemRef="lps01"/>
          </spotLocation>
          <ownsPlatformEdge ref="ple03"/>
        </platform>
        <platform id="plf03">
          <spotLocation id="plf03_sloc01" netElementRef="ne_b11" applicationDirection="both">
            <linearCoordinate measure="4700.0" positioningSystemRef="lps01"/>
          </spotLocation>
          <ownsPlatformEdge ref="ple04"/>
        </platform>
        <platform id="ple01" height="550">
          <name name="Gleis 3" language="de"/>
          <linearLocation id="ple01_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a01" keepsOrientation="true" posBegin="200.0" posEnd="400.0">
              <linearCoordinateBegin measure="200.0" positioningSystemRef="lps01" lateralDistance="1.7" lateralSide="right"/>
              <linearCoordinateEnd measure="400.0" positioningSystemRef="lps01" lateralDistance="1.7" lateralSide="right"/>
            </associatedNetElement>
          </linearLocation>
          <length type="physical" value="200.00" validForDirection="both"/>
        </platform>
        <platform id="ple02" height="550">
          <name name="Gleis 2" language="de"/>
          <linearLocation id="ple02_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a02" keepsOrientation="true" posBegin="200.0" posEnd="400.0">
              <linearCoordinateBegin measure="200.0" positioningSystemRef="lps01" lateralDistance="1.7" lateralSide="left"/>
              <linearCoordinateEnd measure="400.0" positioningSystemRef="lps01" lateralDistance="1.7" lateralSide="left"/>
            </associatedNetElement>
          </linearLocation>
          <length type="physical" value="200.00" validForDirection="both"/>
        </platform>
        <platform id="ple03" height="550">
          <name name="Gleis 2" language="de"/>
          <linearLocation id="ple03_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b01" keepsOrientation="true" posBegin="150.0" posEnd="350.0">
              <linearCoordinateBegin measure="4650.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="4850.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
          </linearLocation>
          <length type="physical" value="200.00" validForDirection="both"/>
        </platform>
        <platform id="ple04" height="380">
          <name name="Gleis 1" language="de"/>
          <linearLocation id="ple04_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b02" keepsOrientation="true" posBegin="100.0" posEnd="350.0">
              <linearCoordinateBegin measure="4650.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="4900.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
          </linearLocation>
          <length type="physical" value="250.00" validForDirection="both"/>
        </platform>
      </platforms>
      
      <signalsIS>
        <signalIS id="sig01" isSwitchable="false">
          <name name="68N2" language="en"/>
          <spotLocation id="sig01_sloc01" netElementRef="ne_a01" applicationDirection="normal" pos="450.0">
            <linearCoordinate positioningSystemRef="lps01" measure="450.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isEtcsSignal/>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig02" isSwitchable="false">
          <name name="68N1" language="en"/>
          <spotLocation id="sig02_sloc01" netElementRef="ne_a02" applicationDirection="normal" pos="450.0">
            <linearCoordinate positioningSystemRef="lps01" measure="450.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isEtcsSignal/>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig03" isSwitchable="false">
          <name name="68F" language="en"/>
          <spotLocation id="sig03_sloc01" netElementRef="ne_a03" applicationDirection="reverse" pos="200.0">
            <linearCoordinate positioningSystemRef="lps01" measure="700.0" lateralDistance="2.2" lateralSide="left"/>
          </spotLocation>
          <isEtcsSignal/>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig04" isSwitchable="true">
          <name name="69A" language="en"/>
          <spotLocation id="sig04_sloc01" netElementRef="ne_b03" applicationDirection="normal" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4300.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig05" isSwitchable="true">
          <name name="69P2" language="en"/>
          <spotLocation id="sig05_sloc01" netElementRef="ne_b01" applicationDirection="reverse" pos="100.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4600.0" lateralDistance="2.2" lateralSide="left"/>
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig06" isSwitchable="true">
          <name name="69P1" language="en"/>
          <spotLocation id="sig06_sloc01" netElementRef="ne_b02" applicationDirection="reverse" pos="50.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4600.0" lateralDistance="2.2" lateralSide="left"/>
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig07" isSwitchable="true">
          <name name="69Va" language="en"/>
          <spotLocation id="sig07_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="2900.0">
            <linearCoordinate positioningSystemRef="lps01" measure="3600.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig08" isSwitchable="true">
          <name name="69W04Y" language="en"/>
          <spotLocation id="sig08_sloc01" netElementRef="ne_b05" applicationDirection="normal" pos="100.0">
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig09" isSwitchable="false">
          <spotLocation id="sig09_sloc01" netElementRef="ne_a03" applicationDirection="normal" pos="100.0">
            <linearCoordinate positioningSystemRef="lps01" measure="600.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps01"/>
          </isSpeedSignal>
        </signalIS>
        <signalIS id="sig10" isSwitchable="false">
          <spotLocation id="sig10_sloc01" netElementRef="ne_b03" applicationDirection="reverse" pos="100.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4400.0" lateralDistance="2.2" lateralSide="left"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps02"/>
          </isSpeedSignal>
        </signalIS>
        <signalIS id="sig11" isSwitchable="false">
          <spotLocation id="sig11_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="1300.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2000.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="announcement" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps03"/>
          </isSpeedSignal>
        </signalIS>
        <signalIS id="sig12" isSwitchable="false">
          <spotLocation id="sig12_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="1700.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2400.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps03"/>
          </isSpeedSignal>
        </signalIS>
        <signalIS id="sig13" isSwitchable="false">
          <spotLocation id="sig13_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="1850.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2550.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="endOfTrain">
            <refersToEndOfSpeedSection ref="sps03"/>
          </isSpeedSignal>
        </signalIS>
      </signalsIS>
      
      <speeds>
        <speedSection id="sps01" maxSpeed="80" isTemporary="false" isSignalized="true">
          <linearLocation id="sps01_lloc01" applicationDirection="normal">
            <associatedNetElement netElementRef="ne_a03" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="600.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="700.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="700.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4300.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_b03" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4300.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4500.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_b01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4500.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="5000.0"/>
            </associatedNetElement>
          </linearLocation>
          <validForSpeedProfile ref="spp01"/>
        </speedSection>
        <speedSection id="sps02" maxSpeed="80" isTemporary="false" isSignalized="true">
          <linearLocation id="sps02_lloc01" applicationDirection="reverse">
            <associatedNetElement netElementRef="ne_b03" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4400.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4300.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4300.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="700.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_a03" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="700.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="500.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_a01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="500.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="0.0"/>
            </associatedNetElement>
          </linearLocation>
        </speedSection>
        <speedSection id="sps03" maxSpeed="20" isTemporary="true" isSignalized="true">
          <isValid from="2018-12-15" to="2018-12-22"/>
          <linearLocation id="sps03_lloc01" applicationDirection="normal">
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="2400.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="2550.0"/>
            </associatedNetElement>
          </linearLocation>
        </speedSection>
      </speeds>
      
      <switchesIS>
        <switchIS id="swi01" continueCourse="right" branchCourse="left" type="ordinarySwitch">
          <name name="68W02" language="en"/>
          <spotLocation id="swi01_sloc01" netElementRef="ne_a03" applicationDirection="reverse" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
          </spotLocation>
          <leftBranch netRelationRef="nr_a02a03" branchingSpeed="60" joiningSpeed="60" radius="-500"/>
          <rightBranch netRelationRef="nr_a01a03" branchingSpeed="80" joiningSpeed="80" radius="0"/>
        </switchIS>
        <switchIS id="swi02" continueCourse="left" branchCourse="right" type="ordinarySwitch">
          <name name="69W03" language="en"/>
          <spotLocation id="swi02_sloc01" netElementRef="ne_b03" applicationDirection="normal" pos="200.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4.500"/>
          </spotLocation>
          <leftBranch netRelationRef="nr_b01b03" branchingSpeed="80" joiningSpeed="80" radius="0"/>
          <rightBranch netRelationRef="nr_b03b04" branchingSpeed="40" joiningSpeed="40" radius="300"/>
        </switchIS>
        <switchIS id="swi03" continueCourse="right" branchCourse="left" type="ordinarySwitch">
          <name name="69W04" language="en"/>
          <spotLocation id="swi03_sloc01" netElementRef="ne_b02" applicationDirection="normal" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4.550"/>
          </spotLocation>
          <leftBranch netRelationRef="nr_b02b05" branchingSpeed="60" joiningSpeed="60" radius="0"/>
          <rightBranch netRelationRef="nr_b02b04" branchingSpeed="40" joiningSpeed="40" radius="300"/>
        </switchIS>
      </switchesIS>
      
      <tracks>
        <track id="trc01" type="mainTrack">
          <name name="2" language="en"/>
          <linearLocation id="trc01_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a01" keepsOrientation="true" posBegin="0.0" posEnd="500.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="bus01"/>
          <trackEnd ref="swi01"/>
          <length value="500.0" type="physical"/>
        </track>
        <track id="trc02" type="secondaryTrack">
          <name name="1" language="en"/>
          <linearLocation id="trc02_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a02" keepsOrientation="true" posBegin="0.0" posEnd="500.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="bus02"/>
          <trackEnd ref="swi01"/>
          <length value="500.0" type="physical"/>
        </track>
        <track id="trc03" type="mainTrack">
          <linearLocation id="trc03_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a03" keepsOrientation="true" sequence="1" posBegin="0.0" posEnd="200.0">
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true" sequence="2" posBegin="0.0" posEnd="3600.0">
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_b03" keepsOrientation="true" sequence="3" posBegin="0.0" posEnd="200.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="swi01"/>
          <trackEnd ref="swi02"/>
          <length value="4000.0" type="physical"/>
        </track>
        <track id="trc04" type="mainTrack">
          <name name="2" language="en"/>
          <linearLocation id="trc04_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b01" keepsOrientation="true" posBegin="0.0" posEnd="500.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="swi02"/>
          <trackEnd ref="bus03"/>
          <length type="physical" value="500.0"/>
        </track>
        <track id="trc05" type="secondaryTrack">
          <name name="1" language="en"/>
          <linearLocation id="trc05_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b02" keepsOrientation="true" posBegin="0.0" posEnd="450.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="swi03"/>
          <trackEnd ref="bus04"/>
          <length value="450.0" type="physical"/>
        </track>
        <track id="trc06" type="sidingTrack">
          <linearLocation id="trc06_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b05" keepsOrientation="true" posBegin="0.0" posEnd="200.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="bus05"/>
          <trackEnd ref="swi03"/>
          <length value="200.0" type="physical"/>
        </track>
        <track id="trc07" type="connectingTrack">
          <linearLocation id="trc07_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b04" keepsOrientation="true" posBegin="0.0" posEnd="50.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="swi02"/>
          <trackEnd ref="swi03"/>
          <length value="50.0" type="physical"/>
        </track>
      </tracks>
      
      <trainDetectionElements>
        <trainDetectionElement id="tde01" type="axleCounter">
          <spotLocation id="tde01_sloc01" netElementRef="ne_a01" applicationDirection="both" pos="475.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde02" type="axleCounter">
          <spotLocation id="tde02_sloc01" netElementRef="ne_a02" applicationDirection="both" pos="475.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde03" type="axleCounter">
          <spotLocation id="tde03_sloc01" netElementRef="ne_a03" applicationDirection="both" pos="25.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde04" type="axleCounter">
          <spotLocation id="tde04_sloc01" netElementRef="ne_a03" applicationDirection="both" pos="200.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde05" type="axleCounter">
          <spotLocation id="tde05_sloc01" netElementRef="ne_b03" applicationDirection="both" pos="0.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde06" type="insulatedRailJoint">
          <spotLocation id="tde06_sloc01" netElementRef="ne_b03" applicationDirection="normal" pos="0.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde07" type="insulatedRailJoint">
          <spotLocation id="tde07_sloc01" netElementRef="ne_b03" applicationDirection="both" pos="150.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde08" type="insulatedRailJoint">
          <spotLocation id="tde08_sloc01" netElementRef="ne_b01" applicationDirection="both" pos="75.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde09" type="insulatedRailJoint">
          <spotLocation id="tde09_sloc01" netElementRef="ne_b04" applicationDirection="both" pos="25.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde10" type="insulatedRailJoint">
          <spotLocation id="tde10_sloc01" netElementRef="ne_b02" applicationDirection="both" pos="25.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde11" type="insulatedRailJoint" detectedObject="axle">
          <spotLocation id="tde11_sloc01" netElementRef="ne_b05" applicationDirection="normal" pos="100.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde12" type="axleCounter">
          <spotLocation id="tde12_sloc01" netElementRef="ne_x01" applicationDirection="both" pos="1700.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2400.0" lateralSide="left"/>
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde13" type="axleCounter">
          <spotLocation id="tde13_sloc01" netElementRef="ne_x01" applicationDirection="both">
            <linearCoordinate positioningSystemRef="lps01" measure="2550.0" lateralSide="left"/>
          </spotLocation>
        </trainDetectionElement>
      </trainDetectionElements>
    </functionalInfrastructure>

    <infrastructureStates>
      <infrastructureState id="iss01" value="operational">
        <name name="operational infrastructure 2018" language="en"/>
        <elementState id="ess01" refersToElement="lcr01" value="operational">
          <name name="levelCrossing in operation" language="en"/>
          <validityTime>
            <periodBitmask fromDate="2018-01-01" bitmask="1111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100">
              <periodRule>
                <period from="06:00:00" to="22:00:00"/>
              </periodRule>
            </periodBitmask>
          </validityTime>
        </elementState>
      </infrastructureState>
    </infrastructureStates>
    
  </infrastructure>
  

</railML>

Splitting

<line>s are split into stations and line sections using "general approach"[1] when modelled according to the official methodology [2][3].

Stations Arnau and Cstadt and line section between them is extracted into three files.

For <speedSection> and <line>, i.e. functional IS entities with <linearLocation> spreading on stations AND line sections approach "lines overlap within a station" [4] is used, i.e. entities are fully extracted except for the associated <netElement>s not aggregated into extracted station/line section.

When station is extracted, there is no way to see where tunnel ends. Complete info on where tunnel ends, is present only in input and merged files.

Arnau

Bf Arnau covers <netElement> a11 on the mesoscopic level of aggregation. In this file a11 and all the topology aggregated into a11 and all the functional IS referring to a11 and aggregated topology are extracted from Simple example (link to the railML® website).

<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.1" 
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:gml="http://www.opengis.net/gml/3.2/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://www.railml.org/schemas/3.1 https://www.railml.org/schemas/3.1/railml3.xsd"
        version="3.1">
  <metadata>
    <dc:format>3.1</dc:format>
    <dc:identifier>3</dc:identifier>
    <dc:source>railML.org</dc:source>
    <dc:title xml:lang="en">Simple Example v12 railML 3.1</dc:title>
    <dc:language>en</dc:language>
    <dc:creator xml:lang="de">railML.org</dc:creator>
    <dc:creator xml:lang="de">Dr. Jörg von Lingen</dc:creator>
    <dc:description>This example file has been coded manually and therefore may not be free of errors.</dc:description>
    <dc:rights>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.
      This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivatives 4.0 International License with additional license conditions of railML.org.
      For further information see: https://www.railml.org/licence
      Content of this file: railML 3.1 Simple Example</dc:rights>
  </metadata>
	
<!-- Bf Arnau covers net element a11 on the mesoscopic level of aggregation. In this file a11 and all the topology aggregated into a11 and
all the functional IS referring to a11 and aggregated topology are extracted from Simple example-->

  <common id="co_01">
    <organizationalUnits>
      <infrastructureManager id="im_01" code="SZDC"/>
    </organizationalUnits>
    <speedProfiles>
      <speedProfile id="spp01" influence="increasing"></speedProfile>
    </speedProfiles>
    <positioning>
		
<!-- linear positioning system should have UUID and be consistent with semantic constraint IS 016 -->

      <linearPositioningSystems>
        <linearPositioningSystem id="lps01" units="m" startMeasure="0.0" endMeasure="5000.0" linearReferencingMethod="absolute">
          <name name="railway line 6869 mileage" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </linearPositioningSystem>
      </linearPositioningSystems>

    </positioning>
  </common>
  
  <infrastructure id="is_01">
    <topology>
      <netElements>
        <netElement id="ne_a01" length="500.0">
          <relation ref="nr_a01a02"/>
          <relation ref="nr_a01a03"/>
          <associatedPositioningSystem id="ne_a01_aps01">
            <intrinsicCoordinate id="ne_a01_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_a01_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_a02" length="500.0">
          <relation ref="nr_a01a02"/>
          <relation ref="nr_a02a03"/>
          <associatedPositioningSystem id="ne_a02_aps01">
            <intrinsicCoordinate id="ne_a02_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_a02_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_a03" length="200.0">
          <relation ref="nr_a01a03"/>
          <relation ref="nr_a02a03"/>
          <relation ref="nr_connector1ne_a03"/>
          <associatedPositioningSystem id="ne_a03_aps01">
            <intrinsicCoordinate id="ne_a03_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_a03_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="700.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>

        <!-- connector net element of microscopic level-->
        <netElement id="connector1">
          <relation ref="nr_connector1ne_a03"/>
          <associatedPositioningSystem id="connector1_aps01">
            <intrinsicCoordinate id="connector1_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>

        <netElement id="ne_a11">
          <relation ref="nr_connector2ne_a11"/>
          <elementCollectionUnordered id="ne_a11_ecu01">
            <elementPart ref="ne_a01"/>
            <elementPart ref="ne_a02"/>
            <elementPart ref="ne_a03"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne_a11_aps01">
            <intrinsicCoordinate id="ne_a11_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="0.0" positioningSystemRef="lps01"/>
              <linearCoordinate measure="700.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>

        <!-- connector net element of mesoscopic level-->
        <netElement id="connector2">
          <relation ref="nr_connector2ne_a11"/>
          <elementCollectionUnordered id="connecto2_ecu01">
						<!-- connector net element of mesoscopic level aggregates the one of microscopic level -->
            <elementPart ref="connector1"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="connector2_aps01">
            <intrinsicCoordinate id="connector_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>

      </netElements>

      <netRelations>
        <netRelation id="nr_a01a02" positionOnA="1" positionOnB="1" navigability="None">
          <elementA ref="ne_a01"/>
          <elementB ref="ne_a02"/>
        </netRelation>
        <netRelation id="nr_a01a03" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_a01"/>
          <elementB ref="ne_a03"/>
        </netRelation>
        <netRelation id="nr_a02a03" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_a02"/>
          <elementB ref="ne_a03"/>
        </netRelation>

        <!-- connector net relation of microscopic level-->
        <netRelation id="nr_connector1ne_a03" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector1"/>
          <elementB ref="ne_a03"/>
        </netRelation>
        <!-- connector net relation of mesoscopic level-->
        <netRelation id="nr_connector2ne_a11" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector2"/>
          <elementB ref="ne_a11"/>
        </netRelation>

      </netRelations>
   
      <networks>
        <network id="nw01">
          <level id="lv0" descriptionLevel="Micro">
            <networkResource ref="ne_a01"/>
            <networkResource ref="ne_a02"/>
            <networkResource ref="ne_a03"/>
            <networkResource ref="connector1"/>

            <networkResource ref="nr_a01a02"/>
            <networkResource ref="nr_a01a03"/>
            <networkResource ref="nr_a02a03"/>

            <networkResource ref="nr_connector1ne_a03"/>

          </level>
          <level id="lv1" descriptionLevel="Meso">
            <networkResource ref="ne_a11"/>
            <networkResource ref="connector2"/>

            <networkResource ref="nr_connector2ne_a11"/>

          </level>
        </network>
      </networks>
    </topology>
    
    <geometry>
    </geometry>
    
    <functionalInfrastructure>
      <bufferStops>
        <bufferStop id="bus01" type="fixedBufferStop">
          <spotLocation id="bus01_sloc01" netElementRef="ne_a01" applicationDirection="reverse" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
          </spotLocation>
        </bufferStop>
        <bufferStop id="bus02" type="fixedBufferStop">
          <spotLocation id="bus02_sloc01" netElementRef="ne_a02" applicationDirection="reverse" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
          </spotLocation>
        </bufferStop>

      </bufferStops>

      
      <lines>
        <line id="lin01" lineCategory="other:CE" lineType="mainLine" infrastructureManagerRef="im_01">

          <linearLocation id="lin01_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a11" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="0.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="700.0"/>
            </associatedNetElement>
<!-- associated net elements referring to x11 b11 are not extracted because are not aggregated into a11. 
Thus line and all the children should have UUIDs or keys for successful merge -->
          </linearLocation>
          <beginsInOP ref="opp01"/>
          <endsInOP ref="opp02"/>
          <lineLayout numberOfTracks="single"/>
          <linePerformance usablePlatformLength="200" maxSpeed="80">
            <allowedLoadingGauge ref="log01"/>
          </linePerformance>
        </line>
      </lines>

<!-- loading gauge is extracted because line refers to it -->
      <loadingGauges>
        <loadingGauge id="log01" code="GA"/>
      </loadingGauges>
      
      <operationalPoints>
        <operationalPoint id="opp01">
          <name name="Bf Arnau" language="de"/>
          <name name="Adamov" language="cz"/>
          <spotLocation id="opp01_sloc01" netElementRef="ne_a11" applicationDirection="both">
            <linearCoordinate positioningSystemRef="lps01" measure="300.0"/>
          </spotLocation>
          <designator register="_SimpleRegister" entry="OAR"/>
          <infrastructureManagerRef ref="im_01"/>
          <opEquipment>
            <ownsPlatform ref="plf01"/>
            <ownsSignal ref="sig01"/>
            <ownsSignal ref="sig02"/>
            <ownsSignal ref="sig03"/>
          </opEquipment>
          <opOperations>
            <opOperation operationalType="station" trafficType="passenger"/>
          </opOperations> 
        </operationalPoint>

<!-- opp02 is extracted because line from endsInOp refers to it -->

        <operationalPoint id="opp02">
        </operationalPoint>

      </operationalPoints>
      
      <overCrossings>
        <overCrossing constructionType="tunnel" id="tun01">
          <linearLocation applicationDirection="both" id="tun01_lloc01">
            <associatedNetElement keepsOrientation="true" netElementRef="ne_a01">
              <linearCoordinateBegin measure="0.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="500.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
            <associatedNetElement keepsOrientation="true" netElementRef="ne_a03">
              <linearCoordinateBegin measure="500.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="700.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
<!-- associated net element referring to x01 is not extracted because is not aggregated into a11. 
Thus tunnel and all the children should have UUIDs or keys for successful merge -->
          </linearLocation>
        </overCrossing>
      </overCrossings>
			
      <platforms>
        <platform id="plf01">
          <spotLocation id="plf01_sloc01" netElementRef="ne_a11" applicationDirection="both">
            <linearCoordinate measure="300.0" positioningSystemRef="lps01"/>
          </spotLocation>
          <ownsPlatformEdge ref="ple01"/>
          <ownsPlatformEdge ref="ple02"/>
        </platform>

        <platform id="ple01" height="550">
          <name name="Gleis 3" language="de"/>
          <linearLocation id="ple01_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a01" keepsOrientation="true" posBegin="200.0" posEnd="400.0">
              <linearCoordinateBegin measure="200.0" positioningSystemRef="lps01" lateralDistance="1.7" lateralSide="right"/>
              <linearCoordinateEnd measure="400.0" positioningSystemRef="lps01" lateralDistance="1.7" lateralSide="right"/>
            </associatedNetElement>
          </linearLocation>
          <length type="physical" value="200.00" validForDirection="both"/>
        </platform>
        <platform id="ple02" height="550">
          <name name="Gleis 2" language="de"/>
          <linearLocation id="ple02_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a02" keepsOrientation="true" posBegin="200.0" posEnd="400.0">
              <linearCoordinateBegin measure="200.0" positioningSystemRef="lps01" lateralDistance="1.7" lateralSide="left"/>
              <linearCoordinateEnd measure="400.0" positioningSystemRef="lps01" lateralDistance="1.7" lateralSide="left"/>
            </associatedNetElement>
          </linearLocation>
          <length type="physical" value="200.00" validForDirection="both"/>
        </platform>

      </platforms>
      
      <signalsIS>
        <signalIS id="sig01" isSwitchable="false">
          <name name="68N2" language="en"/>
          <spotLocation id="sig01_sloc01" netElementRef="ne_a01" applicationDirection="normal" pos="450.0">
            <linearCoordinate positioningSystemRef="lps01" measure="450.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isEtcsSignal/>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig02" isSwitchable="false">
          <name name="68N1" language="en"/>
          <spotLocation id="sig02_sloc01" netElementRef="ne_a02" applicationDirection="normal" pos="450.0">
            <linearCoordinate positioningSystemRef="lps01" measure="450.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isEtcsSignal/>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig03" isSwitchable="false">
          <name name="68F" language="en"/>
          <spotLocation id="sig03_sloc01" netElementRef="ne_a03" applicationDirection="reverse" pos="200.0">
            <linearCoordinate positioningSystemRef="lps01" measure="700.0" lateralDistance="2.2" lateralSide="left"/>
          </spotLocation>
          <isEtcsSignal/>
          <isTrainMovementSignal/>
        </signalIS>

        <signalIS id="sig09" isSwitchable="false">
          <spotLocation id="sig09_sloc01" netElementRef="ne_a03" applicationDirection="normal" pos="100.0">
            <linearCoordinate positioningSystemRef="lps01" measure="600.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps01"/>
          </isSpeedSignal>
        </signalIS>

      </signalsIS>
      
      <speeds>
        <speedSection id="sps01" maxSpeed="80" isTemporary="false" isSignalized="true">
          <linearLocation id="sps01_lloc01" applicationDirection="normal">
            <associatedNetElement netElementRef="ne_a03" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="600.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="700.0"/>
            </associatedNetElement>
<!-- associated net elements referring to x01 b03 and b01 are not extracted because are not aggregated into a11. 
Thus speed section and all the children should have UUIDs or keys for successful merge -->

          </linearLocation>
          <validForSpeedProfile ref="spp01"/>
        </speedSection>
        <speedSection id="sps02" maxSpeed="80" isTemporary="false" isSignalized="true">
          <linearLocation id="sps02_lloc01" applicationDirection="reverse">
<!-- associated net elements referring to x01 b03 are not extracted because are not aggregated into a11. 
Thus speed section and all the children should have UUIDs or keys for successful merge -->
            <associatedNetElement netElementRef="ne_a03" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="700.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="500.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_a01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="500.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="0.0"/>
            </associatedNetElement>
          </linearLocation>
        </speedSection>

      </speeds>
      
      <switchesIS>
        <switchIS id="swi01" continueCourse="right" branchCourse="left" type="ordinarySwitch">
          <name name="68W02" language="en"/>
          <spotLocation id="swi01_sloc01" netElementRef="ne_a03" applicationDirection="reverse" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
          </spotLocation>
          <leftBranch netRelationRef="nr_a02a03" branchingSpeed="60" joiningSpeed="60" radius="-500"/>
          <rightBranch netRelationRef="nr_a01a03" branchingSpeed="80" joiningSpeed="80" radius="0"/>
        </switchIS>
        <!-- switch with incomplete data is extracted because trc03 refers to it from trackEnd -->
        <switchIS id="swi02"/>
      </switchesIS>
      
      <tracks>
        <track id="trc01" type="mainTrack">
          <name name="2" language="en"/>
          <linearLocation id="trc01_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a01" keepsOrientation="true" posBegin="0.0" posEnd="500.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="bus01"/>
          <trackEnd ref="swi01"/>
          <length value="500.0" type="physical"/>
        </track>
        <track id="trc02" type="secondaryTrack">
          <name name="1" language="en"/>
          <linearLocation id="trc02_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a02" keepsOrientation="true" posBegin="0.0" posEnd="500.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="bus02"/>
          <trackEnd ref="swi01"/>
          <length value="500.0" type="physical"/>
        </track>
        <track id="trc03" type="mainTrack">
          <linearLocation id="trc03_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a03" keepsOrientation="true" sequence="1" posBegin="0.0" posEnd="200.0">
            </associatedNetElement>
<!-- associated net elements referring to x01 b03 are not extracted because are not aggregated into a11. 
Thus track and all the children should have UUIDs or keys for successful merge -->
          </linearLocation>
          <trackBegin ref="swi01"/>
          <trackEnd ref="swi02"/>
          <length value="4000.0" type="physical"/>
        </track>

      </tracks>
      
      <trainDetectionElements>
        <trainDetectionElement id="tde01" type="axleCounter">
          <spotLocation id="tde01_sloc01" netElementRef="ne_a01" applicationDirection="both" pos="475.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde02" type="axleCounter">
          <spotLocation id="tde02_sloc01" netElementRef="ne_a02" applicationDirection="both" pos="475.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde03" type="axleCounter">
          <spotLocation id="tde03_sloc01" netElementRef="ne_a03" applicationDirection="both" pos="25.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde04" type="axleCounter">
          <spotLocation id="tde04_sloc01" netElementRef="ne_a03" applicationDirection="both" pos="200.0">
          </spotLocation>
        </trainDetectionElement>

      </trainDetectionElements>
    </functionalInfrastructure>
    
  </infrastructure>
  

</railML>
Cstadt

Bf Cstadt covers <netElement> b11 on the mesoscopic level of aggregation. In this file b11 and all the topology aggregated into b11 and all the functional IS referring to b11 and aggregated topology are extracted from Simple example (link to the railML® website).

<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.1" 
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:gml="http://www.opengis.net/gml/3.2/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://www.railml.org/schemas/3.1 https://www.railml.org/schemas/3.1/railml3.xsd"
        version="3.1">
  <metadata>
    <dc:format>3.1</dc:format>
    <dc:identifier>3</dc:identifier>
    <dc:source>railML.org</dc:source>
    <dc:title xml:lang="en">Simple Example v12 railML 3.1</dc:title>
    <dc:language>en</dc:language>
    <dc:creator xml:lang="de">railML.org</dc:creator>
    <dc:creator xml:lang="de">Dr. Jörg von Lingen</dc:creator>
    <dc:description>This example file has been coded manually and therefore may not be free of errors.</dc:description>
    <dc:rights>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.
      This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivatives 4.0 International License with additional license conditions of railML.org.
      For further information see: https://www.railml.org/licence
      Content of this file: railML 3.1 Simple Example</dc:rights>
  </metadata>
<!-- Bf Cstadt covers net element b11 on the mesoscopic level of aggregation. In this file b11 and all the topology aggregated into b11 and
all the functional IS referring to b11 and aggregated topology are extracted from Simple example-->
  <common id="co_01">
    <organizationalUnits>
      <infrastructureManager id="im_01" code="SZDC"/>
    </organizationalUnits>
    <speedProfiles>
      <speedProfile id="spp01" influence="increasing"></speedProfile>
    </speedProfiles>
    <positioning>

      <linearPositioningSystems>
        <linearPositioningSystem id="lps01" units="m" startMeasure="0.0" endMeasure="5000.0" linearReferencingMethod="absolute">
          <name name="railway line 6869 mileage" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </linearPositioningSystem>
      </linearPositioningSystems>

    </positioning>
  </common>
  
  <infrastructure id="is_01">
    <topology>
      <netElements>

        <netElement id="ne_b01" length="500.0">
          <relation ref="nr_b01b03"/>
          <relation ref="nr_b01b04"/>
          <associatedPositioningSystem id="ne_b01_aps01">
            <intrinsicCoordinate id="ne_b01_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="4500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b01_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="5000.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b02" length="450.0">
          <relation ref="nr_b02b04"/>
          <relation ref="nr_b02b05"/>
          <associatedPositioningSystem id="ne_b02_aps01">
            <intrinsicCoordinate id="ne_b02_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="4550.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b02_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="5000.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b03" length="200.0">
          <relation ref="nr_b01b03"/>
          <relation ref="nr_b03b04"/>
          <relation ref="nr_ne_b03connector3"/>
          <associatedPositioningSystem id="ne_b03_aps01">
            <intrinsicCoordinate id="ne_b03_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="4300.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b03_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="4500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b04" length="50.0">
          <relation ref="nr_b01b04"/>
          <relation ref="nr_b02b04"/>
          <relation ref="nr_b03b04"/>
          <relation ref="nr_b04b05"/>
          <associatedPositioningSystem id="ne_b04_aps01">
            <intrinsicCoordinate id="ne_b04_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="4500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b04_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="4550.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b05" length="200.0">
          <relation ref="nr_b02b05"/>
          <relation ref="nr_b04b05"/>
          <associatedPositioningSystem id="ne_b05_aps01">
            <intrinsicCoordinate id="ne_b05_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b05_aps01_ic02" intrinsicCoord="1">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>

        <!-- connector net element of microscopic level-->
        <netElement id="connector3">
          <relation ref="nr_ne_b03connector3"/>
          <associatedPositioningSystem id="connector3_aps01">
            <intrinsicCoordinate id="connector3_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>

        <netElement id="ne_b11">
          <relation ref="nr_ne_b11connector4"/>
          <elementCollectionUnordered id="ne_b11_ecu01">
            <elementPart ref="ne_b01"/>
            <elementPart ref="ne_b02"/>
            <elementPart ref="ne_b03"/>
            <elementPart ref="ne_b04"/>
            <elementPart ref="ne_b05"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne_b11_aps01">
            <intrinsicCoordinate id="ne_b11_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="4300.0" positioningSystemRef="lps01"/>
              <linearCoordinate measure="5000.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>

        <!-- connector net element of mesoscopic level-->
        <netElement id="connector4">
          <relation ref="nr_ne_b11connector4"/>
          <elementCollectionUnordered id="connector4_ecu01">
            <elementPart ref="connector3"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="connector4_aps01">
            <intrinsicCoordinate id="connector_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>

      </netElements>

      <netRelations>

        <netRelation id="nr_b01b03" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b01"/>
          <elementB ref="ne_b03"/>
        </netRelation>
        <netRelation id="nr_b01b04" positionOnA="0" positionOnB="0" navigability="None">
          <elementA ref="ne_b01"/>
          <elementB ref="ne_b04"/>
        </netRelation>
        <netRelation id="nr_b02b04" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b02"/>
          <elementB ref="ne_b04"/>
        </netRelation>
        <netRelation id="nr_b02b05" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b02"/>
          <elementB ref="ne_b05"/>
        </netRelation>
        <netRelation id="nr_b03b04" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_b03"/>
          <elementB ref="ne_b04"/>
        </netRelation>
        <netRelation id="nr_b04b05" positionOnA="1" positionOnB="1" navigability="None">
          <elementA ref="ne_b04"/>
          <elementB ref="ne_b05"/>
        </netRelation>

        <!-- connector net relation of microscopic level-->
        <netRelation id="nr_ne_b03connector3" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b03"/>
          <elementB ref="connector3"/>
        </netRelation>
        <!-- connector net relation of mesoscopic level-->
        <netRelation id="nr_ne_b11connector4" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b11"/>
          <elementB ref="connector4"/>
        </netRelation>

      </netRelations>
   
      <networks>
        <network id="nw01">
          <level id="lv0" descriptionLevel="Micro">

            <networkResource ref="ne_b01"/>
            <networkResource ref="ne_b02"/>
            <networkResource ref="ne_b03"/>
            <networkResource ref="ne_b04"/>
            <networkResource ref="ne_b05"/>
            <networkResource ref="connector3"/>


            <networkResource ref="nr_b01b03"/>
            <networkResource ref="nr_b01b04"/>
            <networkResource ref="nr_b02b04"/>
            <networkResource ref="nr_b02b05"/>
            <networkResource ref="nr_b03b04"/>
            <networkResource ref="nr_b04b05"/>
            <networkResource ref="nr_ne_b03connector3"/>

          </level>
          <level id="lv1" descriptionLevel="Meso">
            <networkResource ref="ne_b11"/>
            <networkResource ref="connector4"/>

            <networkResource ref="nr_ne_b11connector4"/>

          </level>
        </network>
      </networks>
    </topology>
    
    <geometry>
    </geometry>
    
    <functionalInfrastructure>
      <bufferStops>

        <bufferStop id="bus03" type="fixedBufferStop">
          <spotLocation id="bus03_sloc01" netElementRef="ne_b01" applicationDirection="normal" pos="500.0">
            <linearCoordinate positioningSystemRef="lps01" measure="5000.0"/>
          </spotLocation>
        </bufferStop>
        <bufferStop id="bus04" type="fixedBufferStop">
          <spotLocation id="bus04_sloc01" netElementRef="ne_b02" applicationDirection="normal" pos="450.0">
            <linearCoordinate positioningSystemRef="lps01" measure="5000.0"/>
          </spotLocation>
        </bufferStop>
        <bufferStop id="bus05" type="sleeperCross">
          <spotLocation id="bus05_sloc01" netElementRef="ne_b05" applicationDirection="reverse" pos="0.0">
          </spotLocation>
        </bufferStop>
      </bufferStops>
      
      <derailersIS>
        <derailerIS id="der01" derailSide="right">
          <spotLocation id="der01_sloc01" netElementRef="ne_b05" applicationDirection="normal" pos="150.0">
          </spotLocation>
        </derailerIS>
      </derailersIS>
      
      
      <lines>
        <line id="lin01" lineCategory="other:CE" lineType="mainLine" infrastructureManagerRef="im_01">

          <linearLocation id="lin01_lloc01" applicationDirection="both">
<!-- associated net elements referring to x11 a11 are not extracted because are not aggregated into b11. 
Thus line and all the children should have UUIDs or keys for successful merge -->
            <associatedNetElement netElementRef="ne_b11" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4300.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="5000.0"/>
            </associatedNetElement>
          </linearLocation>
          <beginsInOP ref="opp01"/>
          <endsInOP ref="opp02"/>
          <lineLayout numberOfTracks="single"/>
          <linePerformance usablePlatformLength="200" maxSpeed="80">
            <allowedLoadingGauge ref="log01"/>
          </linePerformance>
        </line>
      </lines>
<!-- loading gauge is extracted because line refers to it -->
      <loadingGauges>
        <loadingGauge id="log01" code="GA"/>
      </loadingGauges>
			
      <operationalPoints>
        <operationalPoint id="opp01">
<!-- opp02 is extracted because line from beginsInOp refers to it -->

        </operationalPoint>
        <operationalPoint id="opp02">
          <name name="Bf Cstadt" language="de"/>
          <name name="Bouzov" language="cz"/>
          <spotLocation id="opp02_sloc01" netElementRef="ne_b11" applicationDirection="both">
            <linearCoordinate positioningSystemRef="lps01" measure="4700.0"/>
          </spotLocation>
          <designator register="_SimpleRegister" entry="OCS"/>
          <infrastructureManagerRef ref="im_01"/>
          <opEquipment>
            <ownsPlatform ref="plf02"/>
            <ownsPlatform ref="plf03"/>
            <ownsSignal ref="sig04"/>
            <ownsSignal ref="sig05"/>
            <ownsSignal ref="sig06"/>
          </opEquipment>
          <opOperations>
            <opOperation operationalType="station" trafficType="passenger"/>
          </opOperations> 
        </operationalPoint>
      </operationalPoints>
      
      <platforms>

        <platform id="plf02">
          <spotLocation id="plf02_sloc01" netElementRef="ne_b11" applicationDirection="both">
            <linearCoordinate measure="4700.0" positioningSystemRef="lps01"/>
          </spotLocation>
          <ownsPlatformEdge ref="ple03"/>
        </platform>
        <platform id="plf03">
          <spotLocation id="plf03_sloc01" netElementRef="ne_b11" applicationDirection="both">
            <linearCoordinate measure="4700.0" positioningSystemRef="lps01"/>
          </spotLocation>
          <ownsPlatformEdge ref="ple04"/>
        </platform>

        <platform id="ple03" height="550">
          <name name="Gleis 2" language="de"/>
          <linearLocation id="ple03_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b01" keepsOrientation="true" posBegin="150.0" posEnd="350.0">
              <linearCoordinateBegin measure="4650.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="4850.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
          </linearLocation>
          <length type="physical" value="200.00" validForDirection="both"/>
        </platform>
        <platform id="ple04" height="380">
          <name name="Gleis 1" language="de"/>
          <linearLocation id="ple04_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b02" keepsOrientation="true" posBegin="100.0" posEnd="350.0">
              <linearCoordinateBegin measure="4650.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="4900.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
          </linearLocation>
          <length type="physical" value="250.00" validForDirection="both"/>
        </platform>
      </platforms>
      
      <signalsIS>
        <signalIS id="sig04" isSwitchable="true">
          <name name="69A" language="en"/>
          <spotLocation id="sig04_sloc01" netElementRef="ne_b03" applicationDirection="normal" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4300.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig05" isSwitchable="true">
          <name name="69P2" language="en"/>
          <spotLocation id="sig05_sloc01" netElementRef="ne_b01" applicationDirection="reverse" pos="100.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4600.0" lateralDistance="2.2" lateralSide="left"/>
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig06" isSwitchable="true">
          <name name="69P1" language="en"/>
          <spotLocation id="sig06_sloc01" netElementRef="ne_b02" applicationDirection="reverse" pos="50.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4600.0" lateralDistance="2.2" lateralSide="left"/>
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>

        <signalIS id="sig08" isSwitchable="true">
          <name name="69W04Y" language="en"/>
          <spotLocation id="sig08_sloc01" netElementRef="ne_b05" applicationDirection="normal" pos="100.0">
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>

        <signalIS id="sig10" isSwitchable="false">
          <spotLocation id="sig10_sloc01" netElementRef="ne_b03" applicationDirection="reverse" pos="100.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4400.0" lateralDistance="2.2" lateralSide="left"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps02"/>
          </isSpeedSignal>
        </signalIS>

      </signalsIS>
      
      <speeds>
        <speedSection id="sps01" maxSpeed="80" isTemporary="false" isSignalized="true">
          <linearLocation id="sps01_lloc01" applicationDirection="normal">
<!-- associated net elements referring to x01 a03 are not extracted because are not aggregated into b11. 
Thus speed section and all the children should have UUIDs or keys for successful merge -->
            <associatedNetElement netElementRef="ne_b03" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4300.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4500.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_b01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4500.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="5000.0"/>
            </associatedNetElement>
          </linearLocation>
          <validForSpeedProfile ref="spp01"/>
        </speedSection>
        <speedSection id="sps02" maxSpeed="80" isTemporary="false" isSignalized="true">
          <linearLocation id="sps02_lloc01" applicationDirection="reverse">
            <associatedNetElement netElementRef="ne_b03" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4400.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4300.0"/>
            </associatedNetElement>
<!-- associated net elements referring to x01 a03 and a01 are not extracted because are not aggregated into b11. 
Thus speed section and all the children should have UUIDs or keys for successful merge -->
          </linearLocation>
        </speedSection>

      </speeds>
      
      <switchesIS>
          <!-- switch with incomplete data is extracted because trc03 refers to it from trackBegin -->
        <switchIS id="swi01"/>
        <switchIS id="swi02" continueCourse="left" branchCourse="right" type="ordinarySwitch">
          <name name="69W03" language="en"/>
          <spotLocation id="swi02_sloc01" netElementRef="ne_b03" applicationDirection="normal" pos="200.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4.500"/>
          </spotLocation>
          <leftBranch netRelationRef="nr_b01b03" branchingSpeed="80" joiningSpeed="80" radius="0"/>
          <rightBranch netRelationRef="nr_b03b04" branchingSpeed="40" joiningSpeed="40" radius="300"/>
        </switchIS>
        <switchIS id="swi03" continueCourse="right" branchCourse="left" type="ordinarySwitch">
          <name name="69W04" language="en"/>
          <spotLocation id="swi03_sloc01" netElementRef="ne_b02" applicationDirection="normal" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4.550"/>
          </spotLocation>
          <leftBranch netRelationRef="nr_b02b05" branchingSpeed="60" joiningSpeed="60" radius="0"/>
          <rightBranch netRelationRef="nr_b02b04" branchingSpeed="40" joiningSpeed="40" radius="300"/>
        </switchIS>
      </switchesIS>
      
      <tracks>

        <track id="trc03" type="mainTrack">
          <linearLocation id="trc03_lloc01" applicationDirection="both">
<!-- associated net elements referring to x01 a03 are not extracted because are not aggregated into b11. 
Thus track and all the children should have UUIDs or keys for successful merge -->
            <associatedNetElement netElementRef="ne_b03" keepsOrientation="true" sequence="3" posBegin="0.0" posEnd="200.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="swi01"/>
          <trackEnd ref="swi02"/>
          <length value="4000.0" type="physical"/>
        </track>
        <track id="trc04" type="mainTrack">
          <name name="2" language="en"/>
          <linearLocation id="trc04_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b01" keepsOrientation="true" posBegin="0.0" posEnd="500.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="swi02"/>
          <trackEnd ref="bus03"/>
          <length type="physical" value="500.0"/>
        </track>
        <track id="trc05" type="secondaryTrack">
          <name name="1" language="en"/>
          <linearLocation id="trc05_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b02" keepsOrientation="true" posBegin="0.0" posEnd="450.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="swi03"/>
          <trackEnd ref="bus04"/>
          <length value="450.0" type="physical"/>
        </track>
        <track id="trc06" type="sidingTrack">
          <linearLocation id="trc06_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b05" keepsOrientation="true" posBegin="0.0" posEnd="200.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="bus05"/>
          <trackEnd ref="swi03"/>
          <length value="200.0" type="physical"/>
        </track>
        <track id="trc07" type="connectingTrack">
          <linearLocation id="trc07_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b04" keepsOrientation="true" posBegin="0.0" posEnd="50.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="swi02"/>
          <trackEnd ref="swi03"/>
          <length value="50.0" type="physical"/>
        </track>
      </tracks>
      
      <trainDetectionElements>

        <trainDetectionElement id="tde05" type="axleCounter">
          <spotLocation id="tde05_sloc01" netElementRef="ne_b03" applicationDirection="both" pos="0.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde06" type="insulatedRailJoint">
          <spotLocation id="tde06_sloc01" netElementRef="ne_b03" applicationDirection="normal" pos="0.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde07" type="insulatedRailJoint">
          <spotLocation id="tde07_sloc01" netElementRef="ne_b03" applicationDirection="both" pos="150.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde08" type="insulatedRailJoint">
          <spotLocation id="tde08_sloc01" netElementRef="ne_b01" applicationDirection="both" pos="75.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde09" type="insulatedRailJoint">
          <spotLocation id="tde09_sloc01" netElementRef="ne_b04" applicationDirection="both" pos="25.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde10" type="insulatedRailJoint">
          <spotLocation id="tde10_sloc01" netElementRef="ne_b02" applicationDirection="both" pos="25.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde11" type="insulatedRailJoint" detectedObject="axle">
          <spotLocation id="tde11_sloc01" netElementRef="ne_b05" applicationDirection="normal" pos="100.0">
          </spotLocation>
        </trainDetectionElement>

      </trainDetectionElements>
    </functionalInfrastructure>
    
  </infrastructure>
  

</railML>
Line section

Bf Arnau covers <netElement> a11 and Bf Cstadt covers b11. a11 and b11 are both linked to x11. Thus in this file x11 and all the topology aggregated into x11 and all the functional IS referring to x11 and aggregated topology are extracted from Simple example (link to the railML® website).

<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.1" 
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:gml="http://www.opengis.net/gml/3.2/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://www.railml.org/schemas/3.1 https://www.railml.org/schemas/3.1/railml3.xsd"
        version="3.1">
  <metadata>
    <dc:format>3.1</dc:format>
    <dc:identifier>3</dc:identifier>
    <dc:source>railML.org</dc:source>
    <dc:title xml:lang="en">Simple Example v12 railML 3.1</dc:title>
    <dc:language>en</dc:language>
    <dc:creator xml:lang="de">railML.org</dc:creator>
    <dc:creator xml:lang="de">Dr. Jörg von Lingen</dc:creator>
    <dc:description>This example file has been coded manually and therefore may not be free of errors.</dc:description>
    <dc:rights>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.
      This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivatives 4.0 International License with additional license conditions of railML.org.
      For further information see: https://www.railml.org/licence
      Content of this file: railML 3.1 Simple Example</dc:rights>
  </metadata>
<!-- Bf Arnau covers net element a11 and Bf Cstadt covers b11. a11 and b11 are both linked to x11. Thus in this file x11 
and all the topology aggregated into x11 and all the functional IS referring to 
x11 and aggregated topology are extracted from Simple example -->
  <common id="co_01">
    <organizationalUnits>
      <infrastructureManager id="im_01" code="SZDC"/>
    </organizationalUnits>
    <speedProfiles>
      <speedProfile id="spp01" influence="increasing"></speedProfile>
    </speedProfiles>
    <positioning>
<!-- linear positioning system should have UUID and be consistent with semantic constraint IS 016 -->
      <linearPositioningSystems>
        <linearPositioningSystem id="lps01" units="m" startMeasure="0.0" endMeasure="5000.0" linearReferencingMethod="absolute">
          <name name="railway line 6869 mileage" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </linearPositioningSystem>
      </linearPositioningSystems>

    </positioning>
  </common>
  
  <infrastructure id="is_01">
    <topology>
      <netElements>

        <netElement id="ne_x01" length="3600.0">
          <relation ref="nr_ne_x01connector1"/>
          <relation ref="nr_connector3ne_x01"/>
          <associatedPositioningSystem id="ne_x01_aps01">
            <intrinsicCoordinate id="ne_x01_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="700.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_x01_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="4300.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>

        <!-- connector net elements of microscopic level-->
        <netElement id="connector1">
          <relation ref="nr_ne_x01connector1"/>
          <associatedPositioningSystem id="connector1_aps01">
            <intrinsicCoordinate id="connector1_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
				
        <netElement id="connector3">
          <relation ref="nr_connector3ne_x01"/>
          <associatedPositioningSystem id="connector3_aps01">
            <intrinsicCoordinate id="connector3_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>

        <netElement id="ne_x11">
          <relation ref="nr_ne_x11connector2"/>
          <relation ref="nr_connector4ne_x11"/>
          <elementCollectionOrdered id="ne_x11_ecu01">
            <elementPart ref="ne_x01"/>
          </elementCollectionOrdered>
          <associatedPositioningSystem id="ne_x11_aps01">
            <intrinsicCoordinate id="ne_x11_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="700.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_x11_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate measure="4300.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>

        <!-- connector net elements of mesoscopic level-->
        <netElement id="connector2">
          <relation ref="nr_ne_x11connector2"/>
					<!-- connector net element of mesoscopic level aggregates the one of microscopic level -->
          <elementCollectionOrdered id="connector2_ecu01">
            <elementPart ref="connector1"/>
          </elementCollectionOrdered>
          <associatedPositioningSystem id="connector2_aps01">
            <intrinsicCoordinate id="connector2_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>

        <netElement id="connector4">
          <relation ref="nr_connector4ne_x11"/>
					<!-- connector net element of mesoscopic level aggregates the one of microscopic level -->
          <elementCollectionOrdered id="connector4_ecu01">
            <elementPart ref="connector3"/>
          </elementCollectionOrdered>
          <associatedPositioningSystem id="connector4_aps01">
            <intrinsicCoordinate id="connector4_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
      </netElements>

      <netRelations>
        <!-- connector net relations of microscopic level-->
        <netRelation id="nr_ne_x01connector1" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_x01"/>
          <elementB ref="connector1"/>
        </netRelation>
        <netRelation id="nr_connector3ne_x01" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector3"/>
          <elementB ref="ne_x01"/>
        </netRelation>				
        <!-- connector net relations of mesoscopic level-->
        <netRelation id="nr_ne_x11connector2" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_x11"/>
          <elementB ref="connector2"/>
        </netRelation>
        <netRelation id="nr_connector4ne_x11" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector4"/>
          <elementB ref="ne_x11"/>
        </netRelation>
			</netRelations>

      <networks>
        <network id="nw01">
          <level id="lv0" descriptionLevel="Micro">

            <networkResource ref="ne_x01"/>
            <networkResource ref="connector1"/>
            <networkResource ref="connector3"/>
						
            <networkResource ref="nr_ne_x01connector1"/>
            <networkResource ref="nr_connector3ne_x01"/>

						
          </level>
          <level id="lv1" descriptionLevel="Meso">

            <networkResource ref="ne_x11"/>
            <networkResource ref="connector2"/>
            <networkResource ref="connector4"/>

            <networkResource ref="nr_ne_x11connector2"/>
            <networkResource ref="nr_connector4ne_x11"/>
          </level>
        </network>
      </networks>
    </topology>
    
    <geometry>
    </geometry>
    
    <functionalInfrastructure>

      

      
      <levelCrossingsIS>
        <levelCrossingIS id="lcr01" activation="infrastructureAutomatic">
          <name name="LX Arnau Cstadt" language="en"/>
          <spotLocation id="lcr01_sloc01" netElementRef="ne_x01" applicationDirection="both" pos="1800.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2500.00"/>
          </spotLocation>
          <protection barriers="singleHalfBarrier" lights="none" acoustic="none"/>
        </levelCrossingIS>
      </levelCrossingsIS>
      
      <lines>
        <line id="lin01" lineCategory="other:CE" lineType="mainLine" infrastructureManagerRef="im_01">

          <linearLocation id="lin01_lloc01" applicationDirection="both">
<!-- associated net elements referring to a11 b11 are not extracted because are not aggregated into a11. 
Thus line and all the children should have UUIDs or keys for successful merge -->
            <associatedNetElement netElementRef="ne_x11" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="700.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4300.0"/>
            </associatedNetElement>

          </linearLocation>
          <beginsInOP ref="opp01"/>
          <endsInOP ref="opp02"/>
          <lineLayout numberOfTracks="single"/>
          <linePerformance usablePlatformLength="200" maxSpeed="80">
            <allowedLoadingGauge ref="log01"/>
          </linePerformance>
        </line>
      </lines>
      
<!-- loading gauge is extracted because line refers to it -->
      <loadingGauges>
        <loadingGauge id="log01" code="GA"/>
      </loadingGauges>
<!-- opp01 and opp02 are extracted because line from beginsInOp and endsInOp refers to it. Thus should have UUIDs -->

      <operationalPoints>
        <operationalPoint id="opp01">
        </operationalPoint>
        <operationalPoint id="opp02">
        </operationalPoint>
      </operationalPoints>
      
      <overCrossings>
        <overCrossing constructionType="tunnel" id="tun01">
          <linearLocation applicationDirection="both" id="tun01_lloc01">
<!-- associated net elements referring to a01, a3 are not extracted because are not aggregated into x11. 
Thus tunnel and all the children should have UUIDs or keys for successful merge -->
            <associatedNetElement keepsOrientation="true" netElementRef="ne_x01">
              <linearCoordinateBegin measure="700.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="800.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
          </linearLocation>
        </overCrossing>
      </overCrossings>
			
      <signalsIS>

        <signalIS id="sig07" isSwitchable="true">
          <name name="69Va" language="en"/>
          <spotLocation id="sig07_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="2900.0">
            <linearCoordinate positioningSystemRef="lps01" measure="3600.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>

        <signalIS id="sig11" isSwitchable="false">
          <spotLocation id="sig11_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="1300.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2000.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="announcement" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps03"/>
          </isSpeedSignal>
        </signalIS>
        <signalIS id="sig12" isSwitchable="false">
          <spotLocation id="sig12_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="1700.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2400.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps03"/>
          </isSpeedSignal>
        </signalIS>
        <signalIS id="sig13" isSwitchable="false">
          <spotLocation id="sig13_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="1850.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2550.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="endOfTrain">
            <refersToEndOfSpeedSection ref="sps03"/>
          </isSpeedSignal>
        </signalIS>
      </signalsIS>
      
      <speeds>
        <speedSection id="sps01" maxSpeed="80" isTemporary="false" isSignalized="true">
          <linearLocation id="sps01_lloc01" applicationDirection="normal">

<!-- associated net elements referring to a03, b03 and b01 are not extracted because are not aggregated into x11. 
Thus speed section and all the children should have UUIDs or keys for successful merge -->
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="700.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4300.0"/>
            </associatedNetElement>

          </linearLocation>
          <validForSpeedProfile ref="spp01"/>
        </speedSection>
        <speedSection id="sps02" maxSpeed="80" isTemporary="false" isSignalized="true">
          <linearLocation id="sps02_lloc01" applicationDirection="reverse">
<!-- associated net elements referring to a03, b03 and a01 are not extracted because are not aggregated into x11. 
Thus speed section and all the children should have UUIDs or keys for successful merge -->
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4300.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="700.0"/>
            </associatedNetElement>

          </linearLocation>
        </speedSection>
        <speedSection id="sps03" maxSpeed="20" isTemporary="true" isSignalized="true">
          <isValid from="2018-12-15" to="2018-12-22"/>
          <linearLocation id="sps03_lloc01" applicationDirection="normal">
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="2400.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="2550.0"/>
            </associatedNetElement>
          </linearLocation>
        </speedSection>
      </speeds>
<!-- swi01 and swi02 are extracted because track from trackBegin and trackEnd refers to it. Thus should have UUIDs -->
      <switchesIS>
        <switchIS id="swi01">
        </switchIS>
        <switchIS id="swi02">
        </switchIS>

      </switchesIS>
      
      <tracks>

        <track id="trc03" type="mainTrack">
          <linearLocation id="trc03_lloc01" applicationDirection="both">

            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true" sequence="2" posBegin="0.0" posEnd="3600.0">
            </associatedNetElement>
<!-- associated net elements referring to a01 b03 are not extracted because are not aggregated into x11. 
Thus track and all the children should have UUIDs or keys for successful merge -->
          </linearLocation>
          <trackBegin ref="swi01"/>
          <trackEnd ref="swi02"/>
          <length value="4000.0" type="physical"/>
        </track>

      </tracks>
      
      <trainDetectionElements>

        <trainDetectionElement id="tde12" type="axleCounter">
          <spotLocation id="tde12_sloc01" netElementRef="ne_x01" applicationDirection="both" pos="1700.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2400.0" lateralSide="left"/>
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde13" type="axleCounter">
          <spotLocation id="tde13_sloc01" netElementRef="ne_x01" applicationDirection="both">
            <linearCoordinate positioningSystemRef="lps01" measure="2550.0" lateralSide="left"/>
          </spotLocation>
        </trainDetectionElement>
      </trainDetectionElements>
    </functionalInfrastructure>

    <infrastructureStates>
      <infrastructureState id="iss01" value="operational">
        <name name="operational infrastructure 2018" language="en"/>
        <elementState id="ess01" refersToElement="lcr01" value="operational">
          <name name="levelCrossing in operation" language="en"/>
          <validityTime>
            <periodBitmask fromDate="2018-01-01" bitmask="1111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100">
              <periodRule>
                <period from="06:00:00" to="22:00:00"/>
              </periodRule>
            </periodBitmask>
          </validityTime>
        </elementState>
      </infrastructureState>
    </infrastructureStates>
    
  </infrastructure>
  

</railML>

Merging

After merging files back, list of <associatedNetElement>s of <linearLocation>s of split functional IS includes also connector <netElement>s.

<?xml version="1.0" encoding="UTF-8"?>
<railML xmlns="https://www.railml.org/schemas/3.1" 
        xmlns:dc="http://purl.org/dc/elements/1.1/"
        xmlns:gml="http://www.opengis.net/gml/3.2/"
        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
        xsi:schemaLocation="https://www.railml.org/schemas/3.1 https://www.railml.org/schemas/3.1/railml3.xsd"
        version="3.1">
  <metadata>
    <dc:format>3.1</dc:format>
    <dc:identifier>3</dc:identifier>
    <dc:source>railML.org</dc:source>
    <dc:title xml:lang="en">Simple Example v12 railML 3.1</dc:title>
    <dc:language>en</dc:language>
    <dc:creator xml:lang="de">railML.org</dc:creator>
    <dc:creator xml:lang="de">Dr. Jörg von Lingen</dc:creator>
    <dc:description>This example file has been coded manually and therefore may not be free of errors.</dc:description>
    <dc:rights>Copyright (c) railML.org e.V. Dresden/Germany; All Rights Reserved.
      This work is licensed under the restricted CreativeCommons Attribution-NonCommercial-NoDerivatives 4.0 International License with additional license conditions of railML.org.
      For further information see: https://www.railml.org/licence
      Content of this file: railML 3.1 Simple Example</dc:rights>
  </metadata>
<!-- this is result of merging a line section and two stations back together -->
  <common id="co_01">
    <organizationalUnits>
      <infrastructureManager id="im_01" code="SZDC"/>
    </organizationalUnits>
    <speedProfiles>
      <speedProfile id="spp01" influence="increasing"></speedProfile>
    </speedProfiles>
    <positioning>
      <geometricPositioningSystems>
        <geometricPositioningSystem id="gps01" crsDefinition="epsg:4326">
          <name name="WGS84" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </geometricPositioningSystem>
        <geometricPositioningSystem id="gps02" crsDefinition="epsg:25832">
          <name name="ETRS89_UTMzone32N" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </geometricPositioningSystem>
      </geometricPositioningSystems>
      <linearPositioningSystems>
        <linearPositioningSystem id="lps01" units="m" startMeasure="0.0" endMeasure="5000.0" linearReferencingMethod="absolute">
          <name name="railway line 6869 mileage" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </linearPositioningSystem>
      </linearPositioningSystems>
      <screenPositioningSystems>
        <screenPositioningSystem pxX="1024" pxY="768" id="scs01">
          <name name="screen visualization coordinate system" language="en"/>
          <isValid from="2018-01-01" to="2018-12-31"/>
        </screenPositioningSystem>
      </screenPositioningSystems>
    </positioning>
  </common>
  
  <infrastructure id="is_01">
    <topology>
      <netElements>
        <netElement id="ne_a01" length="500.0">
          <relation ref="nr_a01a02"/>
          <relation ref="nr_a01a03"/>
          <associatedPositioningSystem id="ne_a01_aps01">
            <intrinsicCoordinate id="ne_a01_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_a01_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_a02" length="500.0">
          <relation ref="nr_a01a02"/>
          <relation ref="nr_a02a03"/>
          <associatedPositioningSystem id="ne_a02_aps01">
            <intrinsicCoordinate id="ne_a02_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_a02_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_a03" length="200.0">
          <relation ref="nr_a01a03"/>
          <relation ref="nr_a02a03"/>
<!-- <relation ref="nr_a03x01"/> is replaced by connector netRelation-->
          <relation ref="nr_connector1ne_a03"/>
          <associatedPositioningSystem id="ne_a03_aps01">
            <intrinsicCoordinate id="ne_a03_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_a03_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="700.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b01" length="500.0">
          <relation ref="nr_b01b03"/>
          <relation ref="nr_b01b04"/>
          <associatedPositioningSystem id="ne_b01_aps01">
            <intrinsicCoordinate id="ne_b01_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="4500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b01_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="5000.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b02" length="450.0">
          <relation ref="nr_b02b04"/>
          <relation ref="nr_b02b05"/>
          <associatedPositioningSystem id="ne_b02_aps01">
            <intrinsicCoordinate id="ne_b02_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="4550.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b02_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="5000.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b03" length="200.0">
          <relation ref="nr_b01b03"/>
          <relation ref="nr_b03b04"/>
<!-- <relation ref="nr_x01b03"/> is replaced by connector net relation -->
          <relation ref="nr_ne_b03connector3"/>
          <associatedPositioningSystem id="ne_b03_aps01">
            <intrinsicCoordinate id="ne_b03_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="4300.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b03_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="4500.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b04" length="50.0">
          <relation ref="nr_b01b04"/>
          <relation ref="nr_b02b04"/>
          <relation ref="nr_b03b04"/>
          <relation ref="nr_b04b05"/>
          <associatedPositioningSystem id="ne_b04_aps01">
            <intrinsicCoordinate id="ne_b04_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="4500.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b04_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="4550.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b05" length="200.0">
          <relation ref="nr_b02b05"/>
          <relation ref="nr_b04b05"/>
          <associatedPositioningSystem id="ne_b05_aps01">
            <intrinsicCoordinate id="ne_b05_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_b05_aps01_ic02" intrinsicCoord="1">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_x01" length="3600.0">
<!--      <relation ref="nr_a03x01"/> and
          <relation ref="nr_x01b03"/> are replaced by connector net relations -->
          <relation ref="nr_ne_x01connector1"/>
          <relation ref="nr_connector3ne_x01"/>
          <associatedPositioningSystem id="ne_x01_aps01">
            <intrinsicCoordinate id="ne_x01_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate positioningSystemRef="lps01" measure="700.0"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_x01_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate positioningSystemRef="lps01" measure="4300.0"/>
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
				
        <!-- connector net elements of microscopic level-->
        <netElement id="connector1">
          <relation ref="nr_ne_x01connector1"/>
          <relation ref="nr_connector1ne_a03"/>
          <associatedPositioningSystem id="connector1_aps01">
            <intrinsicCoordinate id="connector1_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>
				
        <netElement id="connector3">
          <relation ref="nr_connector3ne_x01"/>
          <relation ref="nr_ne_b03connector3"/>
          <associatedPositioningSystem id="connector3_aps01">
            <intrinsicCoordinate id="connector3_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
          </associatedPositioningSystem>
        </netElement>				
				
				
        <netElement id="ne_a11">
<!-- <relation ref="nr_a11x11"/> is replaced by connector net relation -->
          <relation ref="nr_connector2ne_a11"/>
          <elementCollectionUnordered id="ne_a11_ecu01">
            <elementPart ref="ne_a01"/>
            <elementPart ref="ne_a02"/>
            <elementPart ref="ne_a03"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne_a11_aps01">
            <intrinsicCoordinate id="ne_a11_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="0.0" positioningSystemRef="lps01"/>
              <linearCoordinate measure="700.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_b11">
<!-- <relation ref="nr_x11b11"/> is replaced by connector net relation -->
          <relation ref="nr_ne_b11connector4"/>
          <elementCollectionUnordered id="ne_b11_ecu01">
            <elementPart ref="ne_b01"/>
            <elementPart ref="ne_b02"/>
            <elementPart ref="ne_b03"/>
            <elementPart ref="ne_b04"/>
            <elementPart ref="ne_b05"/>
          </elementCollectionUnordered>
          <associatedPositioningSystem id="ne_b11_aps01">
            <intrinsicCoordinate id="ne_b11_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="4300.0" positioningSystemRef="lps01"/>
              <linearCoordinate measure="5000.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
        <netElement id="ne_x11">
<!--      <relation ref="nr_a11x11"/> and
          <relation ref="nr_x11b11"/> are replaced by connector net relations -->
          <elementCollectionOrdered id="ne_x11_ecu01">
            <elementPart ref="ne_x01"/>
          </elementCollectionOrdered>
          <associatedPositioningSystem id="ne_x11_aps01">
            <intrinsicCoordinate id="ne_x11_aps01_ic01" intrinsicCoord="0">
              <linearCoordinate measure="700.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <intrinsicCoordinate id="ne_x11_aps01_ic02" intrinsicCoord="1">
              <linearCoordinate measure="4300.0" positioningSystemRef="lps01"/>
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
				
        <!-- connector net elements of mesoscopic level-->
        <netElement id="connector2">
          <relation ref="nr_ne_x11connector2"/>
          <relation ref="nr_connector2ne_a11"/>
					<!-- connector net element of mesoscopic level aggregates the one of microscopic level -->
          <elementCollectionOrdered id="connector2_ecu01">
            <elementPart ref="connector1"/>
          </elementCollectionOrdered>
          <associatedPositioningSystem id="connector2_aps01">
            <intrinsicCoordinate id="connector2_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>

        <netElement id="connector4">
          <relation ref="nr_connector4ne_x11"/>
          <relation ref="nr_ne_b11connector4"/>
					<!-- connector net element of mesoscopic level aggregates the one of microscopic level -->
          <elementCollectionOrdered id="connector4_ecu01">
            <elementPart ref="connector3"/>
          </elementCollectionOrdered>
          <associatedPositioningSystem id="connector4_aps01">
            <intrinsicCoordinate id="connector4_aps01_ic01" intrinsicCoord="0">
            </intrinsicCoordinate>
            <isValid from="2018-01-01" to="2018-12-31" />
          </associatedPositioningSystem>
        </netElement>
				
      </netElements>

      <netRelations>
        <netRelation id="nr_a01a02" positionOnA="1" positionOnB="1" navigability="None">
          <elementA ref="ne_a01"/>
          <elementB ref="ne_a02"/>
        </netRelation>
        <netRelation id="nr_a01a03" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_a01"/>
          <elementB ref="ne_a03"/>
        </netRelation>
        <netRelation id="nr_a02a03" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_a02"/>
          <elementB ref="ne_a03"/>
        </netRelation>
        <netRelation id="nr_b01b03" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b01"/>
          <elementB ref="ne_b03"/>
        </netRelation>
        <netRelation id="nr_b01b04" positionOnA="0" positionOnB="0" navigability="None">
          <elementA ref="ne_b01"/>
          <elementB ref="ne_b04"/>
        </netRelation>
        <netRelation id="nr_b02b04" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b02"/>
          <elementB ref="ne_b04"/>
        </netRelation>
        <netRelation id="nr_b02b05" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b02"/>
          <elementB ref="ne_b05"/>
        </netRelation>
        <netRelation id="nr_b03b04" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_b03"/>
          <elementB ref="ne_b04"/>
        </netRelation>
        <netRelation id="nr_b04b05" positionOnA="1" positionOnB="1" navigability="None">
          <elementA ref="ne_b04"/>
          <elementB ref="ne_b05"/>
        </netRelation>
        <netRelation id="nr_a03x01" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_a03"/>
          <elementB ref="ne_x01"/>
        </netRelation>
        <netRelation id="nr_x01b03" positionOnA="1" positionOnB="0" navigability="Both">
          <elementA ref="ne_x01"/>
          <elementB ref="ne_b03"/>
        </netRelation>

				
        <!-- connector net relation of microscopic level-->
        <netRelation id="nr_ne_b03connector3" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b03"/>
          <elementB ref="connector3"/>
        </netRelation>
        <netRelation id="nr_connector3ne_x01" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector3"/>
          <elementB ref="ne_x01"/>
        </netRelation>		
        <netRelation id="nr_connector1ne_a03" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector1"/>
          <elementB ref="ne_a03"/>
        </netRelation>
        <netRelation id="nr_ne_x01connector1" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_x01"/>
          <elementB ref="connector1"/>
        </netRelation>
        <!-- connector net relation of mesoscopic level-->
        <netRelation id="nr_ne_b11connector4" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_b11"/>
          <elementB ref="connector4"/>
        </netRelation>
        <netRelation id="nr_connector4ne_x11" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector4"/>
          <elementB ref="ne_x11"/>
        </netRelation>
        <netRelation id="nr_connector2ne_a11" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="connector2"/>
          <elementB ref="ne_a11"/>
        </netRelation>
        <netRelation id="nr_ne_x11connector2" positionOnA="0" positionOnB="1" navigability="Both">
          <elementA ref="ne_x11"/>
          <elementB ref="connector2"/>
        </netRelation>

      </netRelations>
   
      <networks>
        <network id="nw01">
          <level id="lv0" descriptionLevel="Micro">
            <networkResource ref="ne_a01"/>
            <networkResource ref="ne_a02"/>
            <networkResource ref="ne_a03"/>
            <networkResource ref="ne_b01"/>
            <networkResource ref="ne_b02"/>
            <networkResource ref="ne_b03"/>
            <networkResource ref="ne_b04"/>
            <networkResource ref="ne_b05"/>
            <networkResource ref="ne_x01"/>
						
            <networkResource ref="connector1"/>
            <networkResource ref="connector3"/>
						
            <networkResource ref="nr_a01a02"/>
            <networkResource ref="nr_a01a03"/>
            <networkResource ref="nr_a02a03"/>
            <networkResource ref="nr_b01b03"/>
            <networkResource ref="nr_b01b04"/>
            <networkResource ref="nr_b02b04"/>
            <networkResource ref="nr_b02b05"/>
            <networkResource ref="nr_b03b04"/>
            <networkResource ref="nr_b04b05"/>
						
            <networkResource ref="nr_ne_x01connector1"/>
            <networkResource ref="nr_connector1ne_a03"/>

            <networkResource ref="nr_connector3ne_x01"/>
            <networkResource ref="nr_ne_b03connector3"/>

          </level>
          <level id="lv1" descriptionLevel="Meso">
            <networkResource ref="ne_a11"/>
						
            <networkResource ref="connector2"/>
            <networkResource ref="connector4"/>
						
            <networkResource ref="ne_b11"/>
            <networkResource ref="ne_x11"/>

            <networkResource ref="nr_ne_x11connector2"/>
            <networkResource ref="nr_connector2ne_a11"/>

            <networkResource ref="nr_connector4ne_x11"/>
            <networkResource ref="nr_ne_b11connector4"/>

						
          </level>
        </network>
      </networks>
    </topology>
    
    <geometry>
    </geometry>
    
    <functionalInfrastructure>
      <bufferStops>
        <bufferStop id="bus01" type="fixedBufferStop">
          <spotLocation id="bus01_sloc01" netElementRef="ne_a01" applicationDirection="reverse" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
          </spotLocation>
        </bufferStop>
        <bufferStop id="bus02" type="fixedBufferStop">
          <spotLocation id="bus02_sloc01" netElementRef="ne_a02" applicationDirection="reverse" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="0.0"/>
          </spotLocation>
        </bufferStop>
        <bufferStop id="bus03" type="fixedBufferStop">
          <spotLocation id="bus03_sloc01" netElementRef="ne_b01" applicationDirection="normal" pos="500.0">
            <linearCoordinate positioningSystemRef="lps01" measure="5000.0"/>
          </spotLocation>
        </bufferStop>
        <bufferStop id="bus04" type="fixedBufferStop">
          <spotLocation id="bus04_sloc01" netElementRef="ne_b02" applicationDirection="normal" pos="450.0">
            <linearCoordinate positioningSystemRef="lps01" measure="5000.0"/>
          </spotLocation>
        </bufferStop>
        <bufferStop id="bus05" type="sleeperCross">
          <spotLocation id="bus05_sloc01" netElementRef="ne_b05" applicationDirection="reverse" pos="0.0">
          </spotLocation>
        </bufferStop>
      </bufferStops>
      
      <derailersIS>
        <derailerIS id="der01" derailSide="right">
          <spotLocation id="der01_sloc01" netElementRef="ne_b05" applicationDirection="normal" pos="150.0">
          </spotLocation>
        </derailerIS>
      </derailersIS>
      
      <levelCrossingsIS>
        <levelCrossingIS id="lcr01" activation="infrastructureAutomatic">
          <name name="LX Arnau Cstadt" language="en"/>
          <spotLocation id="lcr01_sloc01" netElementRef="ne_x01" applicationDirection="both" pos="1800.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2500.00"/>
          </spotLocation>
          <protection barriers="singleHalfBarrier" lights="none" acoustic="none"/>
        </levelCrossingIS>
      </levelCrossingsIS>
      
      <lines>
        <line id="lin01" lineCategory="other:CE" lineType="mainLine" infrastructureManagerRef="im_01">
          <name name="Malý příklad železniční tratě" language="cz"/>
          <name name="Kleine Beispielstrecke" language="de"/>
          <name name="Simple Example railway line" language="en"/>
          <name name="Ejemplo Simple de Linea Ferroviaria" language="es"/>
          <name name="Petit Exemple Ligne Ferroviaire" language="fr"/>
          <name name="Semplice Esempio di Stazione/Linea Ferroviaria" language="it"/>
          <name name="Lille eksempelbanen" language="no"/>
          <name name="Lilla Exempellinjen" language="se"/>
          <linearLocation id="lin01_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a11" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="0.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="700.0"/>
            </associatedNetElement>
        <!-- linear location probably should not have any gaps. Therefore after merging covers also connectors -->
            <associatedNetElement netElementRef="connector2" keepsOrientation="true">
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_x11" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="700.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4300.0"/>
            </associatedNetElement>
        <!-- linear location probably should not have any gaps. Therefore after merging covers also connectors -->
            <associatedNetElement netElementRef="connector4" keepsOrientation="true">
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_b11" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4300.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="5000.0"/>
            </associatedNetElement>
          </linearLocation>
          <beginsInOP ref="opp01"/>
          <endsInOP ref="opp02"/>
          <lineLayout numberOfTracks="single"/>
          <linePerformance usablePlatformLength="200" maxSpeed="80">
            <allowedLoadingGauge ref="log01"/>
          </linePerformance>
        </line>
      </lines>
      
      <loadingGauges>
        <loadingGauge id="log01" code="GA"/>
      </loadingGauges>
      
      <operationalPoints>
        <operationalPoint id="opp01">
          <name name="Bf Arnau" language="de"/>
          <name name="Adamov" language="cz"/>
          <spotLocation id="opp01_sloc01" netElementRef="ne_a11" applicationDirection="both">
            <linearCoordinate positioningSystemRef="lps01" measure="300.0"/>
          </spotLocation>
          <designator register="_SimpleRegister" entry="OAR"/>
          <infrastructureManagerRef ref="im_01"/>
          <opEquipment>
            <ownsPlatform ref="plf01"/>
            <ownsSignal ref="sig01"/>
            <ownsSignal ref="sig02"/>
            <ownsSignal ref="sig03"/>
          </opEquipment>
          <opOperations>
            <opOperation operationalType="station" trafficType="passenger"/>
          </opOperations> 
        </operationalPoint>
        <operationalPoint id="opp02">
          <name name="Bf Cstadt" language="de"/>
          <name name="Bouzov" language="cz"/>
          <spotLocation id="opp02_sloc01" netElementRef="ne_b11" applicationDirection="both">
            <linearCoordinate positioningSystemRef="lps01" measure="4700.0"/>
          </spotLocation>
          <designator register="_SimpleRegister" entry="OCS"/>
          <infrastructureManagerRef ref="im_01"/>
          <opEquipment>
            <ownsPlatform ref="plf02"/>
            <ownsPlatform ref="plf03"/>
            <ownsSignal ref="sig04"/>
            <ownsSignal ref="sig05"/>
            <ownsSignal ref="sig06"/>
          </opEquipment>
          <opOperations>
            <opOperation operationalType="station" trafficType="passenger"/>
          </opOperations> 
        </operationalPoint>
      </operationalPoints>
      
      <overCrossings>
        <overCrossing constructionType="tunnel" id="tun01">
          <linearLocation applicationDirection="both" id="tun01_lloc01">
            <associatedNetElement keepsOrientation="true" netElementRef="ne_a01">
              <linearCoordinateBegin measure="0.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="500.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
            <associatedNetElement keepsOrientation="true" netElementRef="ne_a03">
              <linearCoordinateBegin measure="500.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="700.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
        <!-- linear location probably should not have any gaps. Therefore after merging covers also connectors -->
            <associatedNetElement netElementRef="connector1" keepsOrientation="true">
            </associatedNetElement>
            <associatedNetElement keepsOrientation="true" netElementRef="ne_x01">
              <linearCoordinateBegin measure="700.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="800.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
          </linearLocation>
        </overCrossing>
      </overCrossings>
			
      <platforms>
        <platform id="plf01">
          <spotLocation id="plf01_sloc01" netElementRef="ne_a11" applicationDirection="both">
            <linearCoordinate measure="300.0" positioningSystemRef="lps01"/>
          </spotLocation>
          <ownsPlatformEdge ref="ple01"/>
          <ownsPlatformEdge ref="ple02"/>
        </platform>
        <platform id="plf02">
          <spotLocation id="plf02_sloc01" netElementRef="ne_b11" applicationDirection="both">
            <linearCoordinate measure="4700.0" positioningSystemRef="lps01"/>
          </spotLocation>
          <ownsPlatformEdge ref="ple03"/>
        </platform>
        <platform id="plf03">
          <spotLocation id="plf03_sloc01" netElementRef="ne_b11" applicationDirection="both">
            <linearCoordinate measure="4700.0" positioningSystemRef="lps01"/>
          </spotLocation>
          <ownsPlatformEdge ref="ple04"/>
        </platform>
        <platform id="ple01" height="550">
          <name name="Gleis 3" language="de"/>
          <linearLocation id="ple01_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a01" keepsOrientation="true" posBegin="200.0" posEnd="400.0">
              <linearCoordinateBegin measure="200.0" positioningSystemRef="lps01" lateralDistance="1.7" lateralSide="right"/>
              <linearCoordinateEnd measure="400.0" positioningSystemRef="lps01" lateralDistance="1.7" lateralSide="right"/>
            </associatedNetElement>
          </linearLocation>
          <length type="physical" value="200.00" validForDirection="both"/>
        </platform>
        <platform id="ple02" height="550">
          <name name="Gleis 2" language="de"/>
          <linearLocation id="ple02_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a02" keepsOrientation="true" posBegin="200.0" posEnd="400.0">
              <linearCoordinateBegin measure="200.0" positioningSystemRef="lps01" lateralDistance="1.7" lateralSide="left"/>
              <linearCoordinateEnd measure="400.0" positioningSystemRef="lps01" lateralDistance="1.7" lateralSide="left"/>
            </associatedNetElement>
          </linearLocation>
          <length type="physical" value="200.00" validForDirection="both"/>
        </platform>
        <platform id="ple03" height="550">
          <name name="Gleis 2" language="de"/>
          <linearLocation id="ple03_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b01" keepsOrientation="true" posBegin="150.0" posEnd="350.0">
              <linearCoordinateBegin measure="4650.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="4850.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
          </linearLocation>
          <length type="physical" value="200.00" validForDirection="both"/>
        </platform>
        <platform id="ple04" height="380">
          <name name="Gleis 1" language="de"/>
          <linearLocation id="ple04_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b02" keepsOrientation="true" posBegin="100.0" posEnd="350.0">
              <linearCoordinateBegin measure="4650.0" positioningSystemRef="lps01"/>
              <linearCoordinateEnd measure="4900.0" positioningSystemRef="lps01"/>
            </associatedNetElement>
          </linearLocation>
          <length type="physical" value="250.00" validForDirection="both"/>
        </platform>
      </platforms>
      
      <signalsIS>
        <signalIS id="sig01" isSwitchable="false">
          <name name="68N2" language="en"/>
          <spotLocation id="sig01_sloc01" netElementRef="ne_a01" applicationDirection="normal" pos="450.0">
            <linearCoordinate positioningSystemRef="lps01" measure="450.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isEtcsSignal/>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig02" isSwitchable="false">
          <name name="68N1" language="en"/>
          <spotLocation id="sig02_sloc01" netElementRef="ne_a02" applicationDirection="normal" pos="450.0">
            <linearCoordinate positioningSystemRef="lps01" measure="450.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isEtcsSignal/>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig03" isSwitchable="false">
          <name name="68F" language="en"/>
          <spotLocation id="sig03_sloc01" netElementRef="ne_a03" applicationDirection="reverse" pos="200.0">
            <linearCoordinate positioningSystemRef="lps01" measure="700.0" lateralDistance="2.2" lateralSide="left"/>
          </spotLocation>
          <isEtcsSignal/>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig04" isSwitchable="true">
          <name name="69A" language="en"/>
          <spotLocation id="sig04_sloc01" netElementRef="ne_b03" applicationDirection="normal" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4300.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig05" isSwitchable="true">
          <name name="69P2" language="en"/>
          <spotLocation id="sig05_sloc01" netElementRef="ne_b01" applicationDirection="reverse" pos="100.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4600.0" lateralDistance="2.2" lateralSide="left"/>
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig06" isSwitchable="true">
          <name name="69P1" language="en"/>
          <spotLocation id="sig06_sloc01" netElementRef="ne_b02" applicationDirection="reverse" pos="50.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4600.0" lateralDistance="2.2" lateralSide="left"/>
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig07" isSwitchable="true">
          <name name="69Va" language="en"/>
          <spotLocation id="sig07_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="2900.0">
            <linearCoordinate positioningSystemRef="lps01" measure="3600.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig08" isSwitchable="true">
          <name name="69W04Y" language="en"/>
          <spotLocation id="sig08_sloc01" netElementRef="ne_b05" applicationDirection="normal" pos="100.0">
          </spotLocation>
          <isTrainMovementSignal/>
        </signalIS>
        <signalIS id="sig09" isSwitchable="false">
          <spotLocation id="sig09_sloc01" netElementRef="ne_a03" applicationDirection="normal" pos="100.0">
            <linearCoordinate positioningSystemRef="lps01" measure="600.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps01"/>
          </isSpeedSignal>
        </signalIS>
        <signalIS id="sig10" isSwitchable="false">
          <spotLocation id="sig10_sloc01" netElementRef="ne_b03" applicationDirection="reverse" pos="100.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4400.0" lateralDistance="2.2" lateralSide="left"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps02"/>
          </isSpeedSignal>
        </signalIS>
        <signalIS id="sig11" isSwitchable="false">
          <spotLocation id="sig11_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="1300.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2000.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="announcement" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps03"/>
          </isSpeedSignal>
        </signalIS>
        <signalIS id="sig12" isSwitchable="false">
          <spotLocation id="sig12_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="1700.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2400.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="headOfTrain">
            <refersToBeginOfSpeedSection ref="sps03"/>
          </isSpeedSignal>
        </signalIS>
        <signalIS id="sig13" isSwitchable="false">
          <spotLocation id="sig13_sloc01" netElementRef="ne_x01" applicationDirection="normal" pos="1850.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2550.0" lateralDistance="2.2" lateralSide="right"/>
          </spotLocation>
          <isSpeedSignal type="execution" trainRelation="endOfTrain">
            <refersToEndOfSpeedSection ref="sps03"/>
          </isSpeedSignal>
        </signalIS>
      </signalsIS>
      
      <speeds>
        <speedSection id="sps01" maxSpeed="80" isTemporary="false" isSignalized="true">
          <linearLocation id="sps01_lloc01" applicationDirection="normal">
            <associatedNetElement netElementRef="ne_a03" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="600.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="700.0"/>
            </associatedNetElement>
        <!-- linear location probably should not have any gaps. Therefore after merging covers also connectors -->
            <associatedNetElement netElementRef="connector1" keepsOrientation="true">
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="700.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4300.0"/>
            </associatedNetElement>
        <!-- linear location probably should not have any gaps. Therefore after merging covers also connectors -->
            <associatedNetElement netElementRef="connector3" keepsOrientation="true">
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_b03" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4300.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4500.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_b01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4500.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="5000.0"/>
            </associatedNetElement>
          </linearLocation>
          <validForSpeedProfile ref="spp01"/>
        </speedSection>
        <speedSection id="sps02" maxSpeed="80" isTemporary="false" isSignalized="true">
          <linearLocation id="sps02_lloc01" applicationDirection="reverse">
            <associatedNetElement netElementRef="ne_b03" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4400.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="4300.0"/>
            </associatedNetElement>
        <!-- linear location probably should not have any gaps. Therefore after merging covers also connectors -->
            <associatedNetElement netElementRef="connector3" keepsOrientation="true">
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="4300.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="700.0"/>
            </associatedNetElement>
        <!-- linear location probably should not have any gaps. Therefore after merging covers also connectors -->
            <associatedNetElement netElementRef="connector1" keepsOrientation="true">
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_a03" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="700.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="500.0"/>
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_a01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="500.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="0.0"/>
            </associatedNetElement>
          </linearLocation>
        </speedSection>
        <speedSection id="sps03" maxSpeed="20" isTemporary="true" isSignalized="true">
          <isValid from="2018-12-15" to="2018-12-22"/>
          <linearLocation id="sps03_lloc01" applicationDirection="normal">
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true">
              <linearCoordinateBegin positioningSystemRef="lps01" measure="2400.0"/>
              <linearCoordinateEnd positioningSystemRef="lps01" measure="2550.0"/>
            </associatedNetElement>
          </linearLocation>
        </speedSection>
      </speeds>
      
      <switchesIS>
        <switchIS id="swi01" continueCourse="right" branchCourse="left" type="ordinarySwitch">
          <name name="68W02" language="en"/>
          <spotLocation id="swi01_sloc01" netElementRef="ne_a03" applicationDirection="reverse" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="500.0"/>
          </spotLocation>
          <leftBranch netRelationRef="nr_a02a03" branchingSpeed="60" joiningSpeed="60" radius="-500"/>
          <rightBranch netRelationRef="nr_a01a03" branchingSpeed="80" joiningSpeed="80" radius="0"/>
        </switchIS>
        <switchIS id="swi02" continueCourse="left" branchCourse="right" type="ordinarySwitch">
          <name name="69W03" language="en"/>
          <spotLocation id="swi02_sloc01" netElementRef="ne_b03" applicationDirection="normal" pos="200.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4.500"/>
          </spotLocation>
          <leftBranch netRelationRef="nr_b01b03" branchingSpeed="80" joiningSpeed="80" radius="0"/>
          <rightBranch netRelationRef="nr_b03b04" branchingSpeed="40" joiningSpeed="40" radius="300"/>
        </switchIS>
        <switchIS id="swi03" continueCourse="right" branchCourse="left" type="ordinarySwitch">
          <name name="69W04" language="en"/>
          <spotLocation id="swi03_sloc01" netElementRef="ne_b02" applicationDirection="normal" pos="0.0">
            <linearCoordinate positioningSystemRef="lps01" measure="4.550"/>
          </spotLocation>
          <leftBranch netRelationRef="nr_b02b05" branchingSpeed="60" joiningSpeed="60" radius="0"/>
          <rightBranch netRelationRef="nr_b02b04" branchingSpeed="40" joiningSpeed="40" radius="300"/>
        </switchIS>
      </switchesIS>
      
      <tracks>
        <track id="trc01" type="mainTrack">
          <name name="2" language="en"/>
          <linearLocation id="trc01_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a01" keepsOrientation="true" posBegin="0.0" posEnd="500.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="bus01"/>
          <trackEnd ref="swi01"/>
          <length value="500.0" type="physical"/>
        </track>
        <track id="trc02" type="secondaryTrack">
          <name name="1" language="en"/>
          <linearLocation id="trc02_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a02" keepsOrientation="true" posBegin="0.0" posEnd="500.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="bus02"/>
          <trackEnd ref="swi01"/>
          <length value="500.0" type="physical"/>
        </track>
        <track id="trc03" type="mainTrack">
          <linearLocation id="trc03_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_a03" keepsOrientation="true" sequence="1" posBegin="0.0" posEnd="200.0">
            </associatedNetElement>
        <!-- linear location probably should not have any gaps. Therefore after merging covers also connectors -->
            <associatedNetElement netElementRef="connector1" keepsOrientation="true">
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_x01" keepsOrientation="true" sequence="2" posBegin="0.0" posEnd="3600.0">
            </associatedNetElement>
        <!-- linear location probably should not have any gaps. Therefore after merging covers also connectors -->
            <associatedNetElement netElementRef="connector3" keepsOrientation="true">
            </associatedNetElement>
            <associatedNetElement netElementRef="ne_b03" keepsOrientation="true" sequence="3" posBegin="0.0" posEnd="200.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="swi01"/>
          <trackEnd ref="swi02"/>
          <length value="4000.0" type="physical"/>
        </track>
        <track id="trc04" type="mainTrack">
          <name name="2" language="en"/>
          <linearLocation id="trc04_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b01" keepsOrientation="true" posBegin="0.0" posEnd="500.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="swi02"/>
          <trackEnd ref="bus03"/>
          <length type="physical" value="500.0"/>
        </track>
        <track id="trc05" type="secondaryTrack">
          <name name="1" language="en"/>
          <linearLocation id="trc05_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b02" keepsOrientation="true" posBegin="0.0" posEnd="450.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="swi03"/>
          <trackEnd ref="bus04"/>
          <length value="450.0" type="physical"/>
        </track>
        <track id="trc06" type="sidingTrack">
          <linearLocation id="trc06_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b05" keepsOrientation="true" posBegin="0.0" posEnd="200.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="bus05"/>
          <trackEnd ref="swi03"/>
          <length value="200.0" type="physical"/>
        </track>
        <track id="trc07" type="connectingTrack">
          <linearLocation id="trc07_lloc01" applicationDirection="both">
            <associatedNetElement netElementRef="ne_b04" keepsOrientation="true" posBegin="0.0" posEnd="50.0">
            </associatedNetElement>
          </linearLocation>
          <trackBegin ref="swi02"/>
          <trackEnd ref="swi03"/>
          <length value="50.0" type="physical"/>
        </track>
      </tracks>
      
      <trainDetectionElements>
        <trainDetectionElement id="tde01" type="axleCounter">
          <spotLocation id="tde01_sloc01" netElementRef="ne_a01" applicationDirection="both" pos="475.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde02" type="axleCounter">
          <spotLocation id="tde02_sloc01" netElementRef="ne_a02" applicationDirection="both" pos="475.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde03" type="axleCounter">
          <spotLocation id="tde03_sloc01" netElementRef="ne_a03" applicationDirection="both" pos="25.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde04" type="axleCounter">
          <spotLocation id="tde04_sloc01" netElementRef="ne_a03" applicationDirection="both" pos="200.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde05" type="axleCounter">
          <spotLocation id="tde05_sloc01" netElementRef="ne_b03" applicationDirection="both" pos="0.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde06" type="insulatedRailJoint">
          <spotLocation id="tde06_sloc01" netElementRef="ne_b03" applicationDirection="normal" pos="0.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde07" type="insulatedRailJoint">
          <spotLocation id="tde07_sloc01" netElementRef="ne_b03" applicationDirection="both" pos="150.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde08" type="insulatedRailJoint">
          <spotLocation id="tde08_sloc01" netElementRef="ne_b01" applicationDirection="both" pos="75.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde09" type="insulatedRailJoint">
          <spotLocation id="tde09_sloc01" netElementRef="ne_b04" applicationDirection="both" pos="25.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde10" type="insulatedRailJoint">
          <spotLocation id="tde10_sloc01" netElementRef="ne_b02" applicationDirection="both" pos="25.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde11" type="insulatedRailJoint" detectedObject="axle">
          <spotLocation id="tde11_sloc01" netElementRef="ne_b05" applicationDirection="normal" pos="100.0">
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde12" type="axleCounter">
          <spotLocation id="tde12_sloc01" netElementRef="ne_x01" applicationDirection="both" pos="1700.0">
            <linearCoordinate positioningSystemRef="lps01" measure="2400.0" lateralSide="left"/>
          </spotLocation>
        </trainDetectionElement>
        <trainDetectionElement id="tde13" type="axleCounter">
          <spotLocation id="tde13_sloc01" netElementRef="ne_x01" applicationDirection="both">
            <linearCoordinate positioningSystemRef="lps01" measure="2550.0" lateralSide="left"/>
          </spotLocation>
        </trainDetectionElement>
      </trainDetectionElements>
    </functionalInfrastructure>

    <infrastructureStates>
      <infrastructureState id="iss01" value="operational">
        <name name="operational infrastructure 2018" language="en"/>
        <elementState id="ess01" refersToElement="lcr01" value="operational">
          <name name="levelCrossing in operation" language="en"/>
          <validityTime>
            <periodBitmask fromDate="2018-01-01" bitmask="1111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100">
              <periodRule>
                <period from="06:00:00" to="22:00:00"/>
              </periodRule>
            </periodBitmask>
          </validityTime>
        </elementState>
      </infrastructureState>
    </infrastructureStates>
    
  </infrastructure>
  

</railML>


References