I propose these semantic rules for the loadingGauge element:
1. Define at least one kinematicProfile subelement, or one staticProfile subelement, or set the @code value.
2. For the ETCS use case, define one loadingGauge element per supported loading gauge profile.
3. For the ETCS use case, set one of these @code values: "GA", "GB", "GC", "G1"
Rationale:
The code attribute may only take one value, such as "GB", but the ETCS variable M_LINEGAUGE can specify a combination of profiles, such as 0b00000110 meaning "GA" and "GB" .
Hence, one loadingGauge element is needed for each profile that is suitable for the linear extension.
Background:
This documentation exists in the schema and on the wiki <https://wiki3.railml.org/wiki/IS:loadingGauge>:
code: code name of the train loading gauge; use value from the separate codelist file 'TrainClearanceGauges.xml'/trainClearanceGauge (optional; xs:string)
At least these trainClearanceGauge elements are in 'TrainClearanceGauges.xml':
<trainClearanceGauge code="GA">
<description>stucture gauge GA according European standard</description>
<validFor>interoperable</validFor>
</trainClearanceGauge>
<trainClearanceGauge code="GB">
<description>stucture gauge GB according European standard</description>
<validFor>interoperable</validFor>
</trainClearanceGauge>
<trainClearanceGauge code="GC">
<description>stucture gauge GC according European standard</description>
<validFor>interoperable</validFor>
</trainClearanceGauge>
<trainClearanceGauge code="G1">
<description>Multilateral gauge or international gauge G1 other than GA, GB and GC as defined in European standard.</description>
<validFor>interoperable</validFor>
</trainClearanceGauge>
...
Those profile types are also the ones that are supported by ETCS and defined in SUBSET-026, v360 (see below).
7.5.1.67.1 M_LINEGAUGE
Name Line gauge
Description Defining which loading gauge(s) are permitted on a line (refer to TSI INF)
Length of variable 8 bits
Resolution/formula Bitset
Special/Reserved Values
xxxx xxx1 G1
xxxx xx1x GA
xxxx x1xx GB
xxxx 1xxx GC
00000000 Spare
xxx1 xxxx Spare
xx1x xxxx Spare
x1xx xxxx Spare
1xxx xxxx Spare