Introduction
This concept is explained on the RailTopoModel® wiki at TOPO:Topological structure (network)
Documentation
Syntax
Autoexport from the XML-Schema for element IS:netElement of railML ® version 3.3
|
Documentation
|
The NetElement type is derived from the RailTopoModel class PositioningNetElement.
|
Subschema
|
infrastructure
|
Parents*
|
netElements
|
Children
|
associatedPositioningSystem (1..*), designator (0..*), elementCollectionOrdered (0..1), elementCollectionUnordered (0..1), isValid (0..*), name (0..*)
|
Attributes:
- length: length of the NetElement in metres (optional;
xs:decimal ),
- id: the identifier of the object; this can be either of type xs:ID or UUID (obligatory;
xs:ID ); compare: Dev:Identities
|
*Notice: Elements may have different parent elements. As a consequence they may be used in different contexts. Please, consider this as well as a user of this wiki as when developing this documentation further. Aspects that are only relevant with respect to one of several parents should be explained exclusively in the documentation of the respective parent element.
|
Autoexport from the XML-Schema for element IS:netElement of railML ® version 3.2
|
Documentation
|
The NetElement type is derived from the RailTopoModel class PositioningNetElement.
|
Subschema
|
infrastructure
|
Parents*
|
netElements
|
Children
|
associatedPositioningSystem (1..*), designator (0..*), elementCollectionOrdered (0..*), elementCollectionUnordered (0..*), isValid (0..*), name (0..*), relation (0..*)
|
Attributes:
- length: length of the NetElement in metres (optional;
xs:decimal ),
- id: the identifier of the object; this can be either of type xs:ID or UUID (obligatory;
xs:string ; patterns: (urn:uuid:)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}}); compare: Dev:Identities
|
*Notice: Elements may have different parent elements. As a consequence they may be used in different contexts. Please, consider this as well as a user of this wiki as when developing this documentation further. Aspects that are only relevant with respect to one of several parents should be explained exclusively in the documentation of the respective parent element.
|
Autoexport from the XML-Schema for element IS:netElement of railML ® version 3.1
|
Documentation
|
The NetElement type is derived from the RailTopoModel class PositioningNetElement.
|
Subschema
|
infrastructure
|
Parents*
|
netElements
|
Children
|
associatedPositioningSystem (1..*), elementCollectionOrdered (0..*), elementCollectionUnordered (0..*), isValid (0..*), name (0..*), relation (0..*)
|
Attributes:
- length: length of the NetElement in metres (optional;
xs:decimal ),
- id: the identifier of the object; this can be either of type xs:ID or UUID (obligatory;
xs:ID ; patterns: (urn:uuid:)?[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}|{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}}); compare: Dev:Identities
|
*Notice: Elements may have different parent elements. As a consequence they may be used in different contexts. Please, consider this as well as a user of this wiki as when developing this documentation further. Aspects that are only relevant with respect to one of several parents should be explained exclusively in the documentation of the respective parent element.
|
Changes 3.1→3.2
There exists an overview of all changes between railML® 3.1 and railML® 3.2 on page Dev:Changes/3.2.
The children have been changed.
The attributes have been changed.
Changes 3.2→3.3
There exists an overview of all changes between railML® 3.2 and railML® 3.3 on page Dev:Changes/3.3.
The children have been changed.
The attributes have been changed.
Semantics
|
Proposed Semantic Constraint "IS:008": Aggregation of net elements should follow the tree data structure. See figure below.
This means that no two (mesoscopic) net elements can aggregate same (microscopic) net element.
In other words, (microscopic) net element can be aggregated by at most one (mesoscopic) net element.
Proposed on February 26th 2021 Discuss this semantic constraint Please, recognize our guidelines on semantic constraints
|
|
|
Proposed Semantic Constraint "IS:009": Linear (geometric) coordinates (explicit or implicit, e.g. calculated as a sum of the coordinate of beginning and the length of the net element) of the same place represented at different levels of aggregation should have the same value. In the figure below (linear) coordinate the coordinate of e.g. end of ne1 should be same as one of ne1.2.
Proposed on February 26th 2021 Discuss this semantic constraint Please, recognize our guidelines on semantic constraints
|
|
|
Proposed Semantic Constraint "IS:010": Difference of linear coordinates if the beginning and end of net elements, represented by intrinsic coordinates 0 and 1 correspondingly, should equal the the @length of net element if all are present in the data.
Proposed on February 26th 2021 Discuss this semantic constraint Please, recognize our guidelines on semantic constraints
|
|
|
Proposed Semantic Constraint "IS:011": Aggregation must not happen within the same level of detail. In the figure below, element 1.1 must not aggregate element 1.2. This means that aggregating and aggregated net elements must not be referred from the same <level>
Proposed on February 29th 2024 Discuss this semantic constraint Please, recognize our guidelines on semantic constraints
|
|
┌──────────────────────────────────────────────────────────┐ ┌───────────────────────────────────────────────────────┐
│ │ │ │
│ net element 1 │ │ net element │
│ │ │ │
│ │ │ │
└──────────────────────────────────────────────────────────┘ └───────────────────────────────────────────────────────┘
disjoint set disjoint set
┌───────────────────────────────────────────────────────────────┐ ┌────────────────────────────────────────────────────────────┐
│ │ │ │
┌──────────────────────────┐ ┌──────────────────────────┐ ┌──────────────────────────┐ ┌──────────────────────────┐
│ │ │ │ │ │ │ │
│ net element 1.1 │ │ net element 1.2 │ │ net element │ │ net element │
│ │ │ │ │ │ │ │
│ │ │ │ │ │ │ │
└──────────────────────────┘ └──────────────────────────┘ └──────────────────────────┘ └──────────────────────────┘
┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐
│ net │ │ net │ │ │ │ │ │ │ │ │ │ │ │ │
│ element │ │ element │ │ net │ │ net │ │ net │ │ net │ │ net │ │ net │
│ 1.1.1 │ │ 1.1.2 │ │ element │ │ element │ │ element │ │ element │ │ element │ │ element │
└───────────┘ └───────────┘ └───────────┘ └───────────┘ └───────────┘ └───────────┘ └───────────┘ └───────────┘
│ │ │ │ │ │
└────────────────────────────┘ └─────────────────────────────┘ └───────────────────────────┘
disjoint set disjoint set disjoint set
Best Practice / Examples
Additional Information
Notes
Usually parent net element is referred as "aggregating" net element and child is referred as "aggregated" net element. In the figure above on the highest level of aggregation (e.g. macroscopic) ne1 is aggregating net element and ne1.1 is aggregated net element. On the second level of aggregation (e.g. mesoscopic) ne1.1 is aggregating net element and ne1.1.1 is an aggregated net element.
Open Issues