Common Building Blocks
This chapter deals with the elements, attributes, formats and types that are commonly used.
In this chapter:
- Rules for common Attributes
- Common Types
- FrameDefaults
- Time formatting and journey after midnight
- AlternativeName
- AlternativeText
- ResourceFrame
Rules for common Attributes
The following rules apply to common attributes:
| Attribute | Rule |
|---|---|
id |
See description regarding technical IDs below |
version |
is always set to "1" |
responsibilitySetRef |
We use responsibilitySetRef in the following elements xxx |
nameOfClass |
We use nameOfClass in the XXXRef elements. |
IDs
IDs must be globally unique during importation (in the id-attribute).
They may also be partially or completely artificially generated. The persistence of these IDs between exports is then usually not guaranteed. However, for “primary” objects we expect object permanence. This is mentioned in the usage note of each element.
Important business level keys are stored in elements (KeyList, privateKeys/PrivateKey)in addition to the IDs.
It is important to note that internal or artificially generated IDs should not be used to extract content whenever business keys and attributes are available.
For readability and easy referencing, we will use the following principles:
- We use the class of the object to prefix the technical ID like
ch:1:TypeOfNotice:3"for aTypeOfNoticeelement. - We use appropriate business values to build technical IDs where available, e.g.
ch:1:TypeOfProductCategory:TERwhere the value ofShortNameof theTypeOfProductCategoryis used to build the ID, orch:1:Operator:11. - Where there is a compelling need for global stability, the ID will be a global ID.
All other defined attributes like created, changed, modification are not used. If we need one, we will inform about it in the table associated with the element.
Version
We will use version="1" in Switzerland. In some cases we use versionRef="1" instead, when the referenced object is not in the same file in references (XXXRef-elements). We no longer use any and expect to remove that semantic if possible. Also, the version (or versionRef) always must be present.
MultilingualString
Example
<Name lang="de">Train Express Regional
<Text lang="it">Train Express Regional</Text>
<Text lang="en">Train Express Regional</Text>
<Text lang="fr">Train Express Regional</Text>
</Name>
Purpose
NeTEx uses the type MultilingualString for descriptive text elements (e.g. Notice text, Name, ShortName etc.).
However, only one language can be set for a given element (e.g. <MultilingualString lang=”fr”>).
Additional languages are introduced through the AlternativeName and AlternativeText element.
Usage Notes
- For Organisations e.g. there are all languages present.
- The
StopPlacenames in Switzerland are language-independent.
Time Formatting and Journey after Midnight
The time format consists only of the hours, minutes (and seconds) of a 24-hour clock, e.g. 23:55:00.
Times that pass midnight of the current OperatingDay are marked with a DayOffset element.
If a ServiceJourney (in a particular Call) runs over midnight, then DayOffset must be set to 1.
FrameDefaults
Purpose
Holds default values for certain basic parameters.
Table
| Sub | Element | Usage | Card | Type | Description | Note |
|---|---|---|---|---|---|---|
| FrameDefaults | expected | 1..1 | unknown | |||
| + | DefaultLocale | mandatory | 1..1 | unknown | The default locale is German (de) for SBB and Swiss public transport. | |
| ++ | TimeZoneOffset | mandatory | 1..1 | unknown | We prefer times without the suf-fix “+hh:mm”. Instead we specify a default TimeZoneOffset (+2) and SummerTimeZoneOffset (+1) | |
| ++ | TimeZone | mandatory | 1..1 | unknown | ||
| ++ | SummerTimeZoneOffset | mandatory | 1..1 | unknown | We prefer times without the suf-fix “+hh:mm”. Instead we specify a default TimeZoneOffset (+2) and SummerTimeZoneOffset (+1) | |
| ++ | DefaultLanguage | mandatory | 1..1 | unknown | Is always set to “de” for SKI and Swiss public transport. | |
| + | DefaultLocationSystem | mandatory | 1..1 | unknown |
Example
<?xml version="1.0" encoding="UTF-8"?>
<FrameDefaults >
<DefaultLocale>
<!-- The default locale is German (de) for SBB and Swiss public transport. -->
<TimeZoneOffset>1</TimeZoneOffset>
<!-- We prefer times without the suf-fix "+hh:mm". Instead we specify a default TimeZoneOffset (+2) and SummerTimeZoneOffset (+1) -->
<TimeZone>Europe/Berlin</TimeZone>
<SummerTimeZoneOffset>2</SummerTimeZoneOffset>
<!-- We prefer times without the suf-fix "+hh:mm". Instead we specify a default TimeZoneOffset (+2) and SummerTimeZoneOffset (+1) -->
<DefaultLanguage>de</DefaultLanguage>
<!-- Is always set to “de” for SKI and Swiss public transport. -->
</DefaultLocale>
<DefaultLocationSystem>urn:ogc:def:crs:EPSG::4326</DefaultLocationSystem>
</FrameDefaults>
→ Template
Usage Notes
For values not set in FrameDefaults we use the values as indicated in the table and example above.
AlternativeName
Purpose
AlternativeName is used to provide an alternative (alias or translation) of a name, e.g. of
a StopPlace or Organisation.
For all other alternative texts use AlternativeText.
Table
| Sub | Element | Usage | Card | Type | Description | Note |
|---|---|---|---|---|---|---|
| AlternativeName | mandatory | 1..1 | unknown | In some cases we need translations or alias of the Name element. This is done with AlternativeName. | ||
| + | TypeOfName | optional | 1..1 | unknown | ||
| + | Name | mandatory | 1..1 | unknown | ||
| + | @lang | mandatory | 1..1 | xsd:string | Attribute lang |
Example
<?xml version="1.0" encoding="UTF-8"?>
<AlternativeName >
<!-- In some cases we need translations or alias of the Name element. This is done with AlternativeName. -->
<NameType>alias</NameType>
<TypeOfName>offical</TypeOfName>
<Name lang="de">Die Übersetzung des Namens.</Name>
</AlternativeName>
→ - Template
Usage Notes
We only allow the following values for NameType:
aliastranslation
AlternativeText
AlternativeTextis not used. We will useMultilingualString. This means that there are multiple<Text>elements with differentlang-attributes.
Purpose
The AlternativeText is a generic way to provide an alternative text (translation or alias). For example, it can be used for the translation of Notice texts.
Table
AlternativeText.md
Example
AlternativeText.xml
→ - Template
Usage Notes
The AlternativeText is part of a DataManagedObject and references the name of the node, for which it provides an alternative.
It contains the alternative text as an attribute of type MultilingualString which indicates the language.
In addition, the AlternativeText element may have a useForLanguage attribute to indicate a second language for which it may be used as
an acceptable presentation, if there is no native language alternative; normally this will be the same as the language
of the string, but might be different.
Alternative names (translations or aliases) of a StopPlace or Organisation are modelled with AlternativeNames.
ResourceFrame
Purpose
Contains shared resources used / referenced in other frames - organisations (Authoritiys and Operators), VehicleTypes, codespaces, and other common reference data.
See the following class diagram for the most important objects of the RESOURCE FRAME and their relationships to the other frames.
Contained Elements
- ResponsabilitySet
- TypeOfValue / ValueSets
- TypeOfNotice
- TypeOfProductCategory
- TypeOfService
- Organisation / Operator / Authority
- ServiceFacilitySet
- SiteFacilitySet
Table
| Sub | Element | Usage | Card | Type | Description | Note |
|---|---|---|---|---|---|---|
| ResourceFrame | mandatory | 1..1 | unknown | |||
| + | responsibilitySets | mandatory | 1..1 | unknown | RESPONSIBILITY SETs contained in RESOURCE FRAME. ResponsibilitySets are used for the cases in which the LegalEntity, the Operator and the organisation selling the tickets are different. | |
| ++ | ResponsibilitySet | mandatory | 1..1 | unknown | Each combination of Authority and Operator needs a ResponsibilitySet. | |
| + | typesOfValue | mandatory | 1..1 | unknown | Sets of TYPE OF VALUE contained in the RESOURCE FRAME. | |
| ++ | ValueSet | mandatory | 1..1 | unknown | ||
| + | organisations | mandatory | 1..1 | unknown | ORGANISATIONs contained in RESOURCE FRAME. Contains the relevant Operators and other Organisations. We currently face a problem that the same sboid might be reused for Operator and Authority. We will have to check, if we only define Operators, but ue them in Authority as well. TBD | |
| ++ | Operator | mandatory | 1..1 | unknown | We will use this organisation also in AuthorityRef. The problem is that the sboid can be used only once. | |
| + | siteFacilitySets | optional | 1..1 | unknown | Depending on the export/import part, there will be SiteFacilitySets to be included or not. | |
| ++ | SiteFacilitySet | optional | 1..1 | unknown | ||
| ++ | ServiceFacilitySet | optional | 1..1 | unknown |
Example
<?xml version="1.0" encoding="UTF-8"?>
<ResourceFrame id="ch:1:ResourceFrame" version="any">
<responsibilitySets>
<!-- RESPONSIBILITY SETs contained in RESOURCE FRAME. ResponsibilitySets are used for the cases in which the LegalEntity, the Operator and the organisation selling the tickets are different. -->
<ResponsibilitySet id="ch:1:ResponsbilitySet-gen" version="1">
<!-- Each combination of Authority and Operator needs a ResponsibilitySet. -->
</ResponsibilitySet>
</responsibilitySets>
<typesOfValue>
<!-- Sets of TYPE OF VALUE contained in the RESOURCE FRAME. -->
<ValueSet id="ch:1:ValueSet:notices" version="1" nameOfClass="TypeOfNotice">
<values>
<TypeOfNotice id="ch:1:TypeOfNotice:1" version="1">
<Name>Allgemeiner Hinweis</Name>
<PrivateCode>1</PrivateCode>
</TypeOfNotice>
<TypeOfNotice id="ch:1:TypeOfNotice:10" version="1">
<Name>Angebot</Name>
<PrivateCode>10</PrivateCode>
</TypeOfNotice>
</values>
</ValueSet>
<ValueSet id="ch:1:ValueSet:TypesOfProductCategory" version="1" nameOfClass="TypeOfProductCategory">
<values>
<TypeOfProductCategory id="ch:1:TypeOfProductCategory:TER" version="1">
<Name lang="de">Train Express Regional<Text lang="it">Train Express Regional</Text><Text lang="en">Train Express Regional</Text><Text lang="fr">Train Express Regional</Text></Name>
<ShortName>TER</ShortName>
</TypeOfProductCategory>
</values>
</ValueSet>
</typesOfValue>
<organisations>
<!-- ORGANISATIONs contained in RESOURCE FRAME. Contains the relevant Operators and other Organisations. We currently face a problem that the same sboid might be reused for Operator and Authority. We will have to check, if we only define Operators, but ue them in Authority as well. TBD -->
<Operator id="sboid" version="1">
<!-- We will use this organisation also in AuthorityRef. The problem is that the sboid can be used only once. -->
</Operator>
</organisations>
<siteFacilitySets>
<!-- Depending on the export/import part, there will be SiteFacilitySets to be included or not. -->
<SiteFacilitySet id="generated" version="1"/>
</siteFacilitySets>
<serviceFacilitySets>
<!-- Depending on the export/import part, there will be ServiceFacilitySets to be included. If there are ServiceJourneys we expect there to be some. -->
<ServiceFacilitySet id="generated" version="1"/>
</serviceFacilitySets>
</ResourceFrame>
→ - Template
Frame Relationships
Elements of the ResourceFrame can be referenced in other frames like SiteFrame, ServiceFrame, ServiceCalendarFrame
and/or TimetableFrame.
ResponsibilitySet
Purpose
The set of roles and organisations responsible for managing data, operations, or contractual obligations within a defined scope. We use this element to describe the different roles of the participating companies. For the most part, the company code is used to fully identify the provided services.
value of StakeholderRoleType |
Description |
|---|---|
EntityLegalOwnership |
Role of the concession company holding the concession for the original service |
Operation |
role of the operator company responsible for providing the transport service |
Table
| Sub | Element | Usage | Card | Type | Description | Note |
|---|---|---|---|---|---|---|
| ResponsibilitySet | mandatory | 1..1 | unknown | Each combination of Authority and Operator needs a ResponsibilitySet. EntitiyLegalOwnership ismandatory. All other roles are optional. However, we prefer to have the Operation part as well. If given Journeys are operated by a different Operator, then a different ResponsibilitySet should be referenced in the ServiceJourney from the Line. | ||
| + | Name | mandatory | 1..1 | unknown | ||
| + | PrivateCode | expected | 1..1 | unknown | ||
| + | roles | mandatory | 1..1 | unknown | ||
| ++ | ResponsibilityRoleAssignment | mandatory | 1..1 | unknown | ||
| +++ | StakeholderRoleType | mandatory | 1..1 | unknown | “EntityLegalOwnership” must be defined once and “Operator” should be too. | |
| +++ | ResponsibleOrganisationRef | mandatory | 1..1 | unknown |
Example
<?xml version="1.0" encoding="UTF-8"?>
<ResponsibilitySet id="ch:1:ResponsbilitySet-gen" version="1">
<!-- Each combination of Authority and Operator needs a ResponsibilitySet. EntitiyLegalOwnership ismandatory. All other roles are optional. However, we prefer to have the Operation part as well. If given Journeys are operated by a different Operator, then a different ResponsibilitySet should be referenced in the ServiceJourney from the Line. -->
<Name lang="de">Basler Verkehrsbetriebe</Name>
<PrivateCode>BVB</PrivateCode>
<roles>
<ResponsibilityRoleAssignment id="ch:1:ResponsibilityRoleAssignment:823_823:1" version="1">
<StakeholderRoleType>EntityLegalOwnership</StakeholderRoleType>
<!-- "EntityLegalOwnership" must be defined once and "Operator" should be too. -->
<ResponsibleOrganisationRef ref="ch:1:sboid:100622" version="1"/>
</ResponsibilityRoleAssignment>
<ResponsibilityRoleAssignment id="ch:1:ResponsibilityRoleAssignment:823_823:2" version="1">
<StakeholderRoleType>Operation</StakeholderRoleType>
<ResponsibleOrganisationRef ref="ch:1:sboid:100622" version="1"/>
</ResponsibilityRoleAssignment>
</roles>
</ResponsibilitySet>
→ - Template
Usage Notes
Services (e.g. replacement services) can be associated with different roles. These roles can be defined inside the ResponsibilitySet element.
Only the values defined below are allowed in Switzerland for StakeholderRoleType in ResponsbilityRoleAssignment:
OperationEntityLegalOwnershipFareManagementPlanning
FareManagement and Planning are currently not used. Not all roles must be filled.
id-attribute should be kept stable between exports.
TypeOf… / ValueSet
→ Glossary definition: TypeOf…
→ Glossary definition: ValueSet
Purpose
TypeOf… (examples: TypeOfNotice, TypeOfProductCategory, TypeOfService) are used for classification of NeTEx entities. They are listed in ValueSets as part of the ResourceFrame.
Usage Notes
We use TypeOfValue references in various Frames in objects including:
Notice: referencesTypeOfNoticeLineandServiceJourney: referencesTypeOfProductCategory- id-attribute needs to be kept stable between exports.
TypeOfNotice
Purpose
TypeOfNotice is used within a Notice to give information, what it is about. The table below shows the TypeOfNotice we use in Switzerland.
| PrivateCode | Name | Description |
|---|---|---|
| 1 | Allgemeiner Hinweis | General information text |
| 2 | Name of the train. Is not used, as this is stored in ServiceJourneyName. | |
| 3 | Quay and Quay section information. Is no longer used. Is put into Quay. | |
| 10 | Angebot | Most of the ServiceFacilitySet are also transmitted as Notice. On top of that we have multiple services and facilities in Switzerland that cannot be mapped to ServiceFacilitySets. This TypeOfNotice is used to deliver those special cases as Notices. |
| 11 | Postauto is divided into several regions. Will be omitted. If anything this will be done with different constructs. |
The following snippet is all that is defined for TypeOfNotice:
<ValueSet id="ch:1:ValueSet:notices" version="1" nameOfClass="TypeOfNotice">
<values>
<TypeOfNotice id="ch:1:TypeOfNotice:1" version="1">
<Name>Allgemeiner Hinweis</Name>
<PrivateCode>1</PrivateCode>
</TypeOfNotice>
<TypeOfNotice id="ch:1:TypeOfNotice:10" version="1">
<Name>Angebot</Name>
<PrivateCode>10</PrivateCode>
</TypeOfNotice>
</values>
</ValueSet>
TypeOfProductCategory
Purpose
For the ServiceJourneys exclusively provided in Switzerland, only the ProductCategories defined in the document 06 Harmonisierung Verkehrsmittel may be referenced. For ServiceJourneys provided in other countries or partially in Switzerland, there are no restrictions, provided that the category does not overlap with the ProductCategories defined for Switzerland.
Table
| Sub | Element | Usage | Card | Type | Description | Note |
|---|---|---|---|---|---|---|
| TypeOfProductCategory | mandatory | 1..1 | unknown | |||
| + | alternativeTexts | mandatory | 1..1 | unknown | For each language an AlternativeText is needed | |
| ++ | AlternativeText | mandatory | 1..1 | unknown | ||
| + | Name | mandatory | 1..1 | unknown | ||
| + | ShortName | mandatory | 1..1 | unknown |
Example
<?xml version="1.0" encoding="UTF-8"?>
<TypeOfProductCategory id="ch:1:TypeOfProductCategory:TER" version="any">
<alternativeTexts>
<!-- For each language an AlternativeText is needed -->
<AlternativeText attributeName="Name">
<Text lang="it">Train Express Regional</Text>
</AlternativeText>
<AlternativeText attributeName="Name">
<Text lang="en">Train Express Regional</Text>
</AlternativeText>
<AlternativeText attributeName="Name">
<Text lang="fr">Train Express Regional</Text>
</AlternativeText>
</alternativeTexts>
<Name lang="de">TER</Name>
<ShortName>TER</ShortName>
</TypeOfProductCategory>
→ Template
TypeOfService
TypeOfService is to be found within TimetableFrame.
Organisation / Operator / Authority
→ Glossary definition: Operator
→ Glossary definition: Authority
Purpose
A legally incorporated body associated with any aspect of public transportation. Authority and Operator are Organisations. An Operator provides public transport services under contract with an Authority. We don’t use Authority.
Table
| Sub | Element | Usage | Card | Type | Description | Note |
|---|---|---|---|---|---|---|
| Operator | mandatory | 1..1 | unknown | We will use this organisation also in AuthorityRef. The problem is that the sboid can be used only once. | ||
| + | keyList | expected | 1..1 | unknown | ||
| ++ | KeyValue | expected | 1..1 | unknown | ||
| + | privateCodes | expected | 1..1 | unknown | ||
| ++ | PrivateCode | expected | 1..1 | unknown | Busines organisation | |
| + | Name | expected | 1..1 | unknown | ||
| + | ShortName | expected | 1..1 | unknown | there may be cases, when it can’t be set. However, when no sboid is there, then ShortName must be filled (especially for foreign operators. | |
| + | parts | optional | 1..1 | unknown | ||
| +++ | administrativeZones | optional | 1..1 | unknown | ||
| ++++ | TransportAdministrativeZone | optional | 1..1 | unknown |
Example
<?xml version="1.0" encoding="UTF-8"?>
<Operator id="ch:1:sboid:100602" version="1">
<!-- We will use this organisation also in AuthorityRef. The problem is that the sboid can be used only once. -->
<keyList>
<KeyValue>
<Key>GO</Key>
<Value>801</Value>
</KeyValue>
<KeyValue>
<Key>SBOID</Key>
<Value>ch:1:sboid:100602</Value>
</KeyValue>
</keyList>
<privateCodes>
<PrivateCode type="GO">801</PrivateCode>
<!-- Busines organisation -->
<PrivateCode type="sboid">ch:1:sboid:100602</PrivateCode>
</privateCodes>
<PrivateCode>801</PrivateCode>
<Name>PostAuto AG</Name>
<ShortName>PAG</ShortName>
<!-- there may be cases, when it can't be set. However, when no sboid is there, then ShortName must be filled (especially for foreign operators. -->
<parts>
<OrganisationPart id="ch:1:OrganisationPart:801-5678" version="1">
<administrativeZones>
<TransportAdministrativeZone id="ch:1:TransportAdministrativeZone:801-5678" version="1">
<PrivateCode>5678</PrivateCode>
</TransportAdministrativeZone>
</administrativeZones>
</OrganisationPart>
</parts>
</Operator>
→ - Template
Usage Notes
Organisations located in Switzerland are identified by their SBOIDs (earlier GO-number ). in Switzerland. The TU-Code is to be used for operators of other countries.- The SBOID and GO number shall always also be stored in the
KeyListand inprivateCodes\PrivateCode.* OperatorRefon aLineis always the “Konzessionär”. - If a different
Operatoris running a givenServiceJourney, then this is reflected in theServiceJourneyhaving a differentOperatorRef. AuthorityandOrganisationare not used.- id-attribute needs to be kept stable between exports.
ServiceFacilitySet
Purpose
Set of Facilitiys available for a ServiceJourney or a JourneyPart.
Table
| Sub | Element | Usage | Card | Type | Description | Note |
|---|---|---|---|---|---|---|
| ServiceFacilitySet | expected | 1..1 | unknown | List of ServiceFacility. Be careful: not all are supported. Consult profile. Make sure to not generate identical ServiceFacilitySets. Reuse them. | ||
| + | Extensions | expected | 1..1 | unknown | Two elements used in HRDF for ordering facilities | |
| ++ | Priority | expected | 1..1 | unknown | ||
| + | Description | expected | 1..1 | unknown | ||
| ++ | Text | optional | 1..1 | unknown | ||
| + | FareClasses | optional | 1..1 | unknown | ||
| + | NuisanceFacilityList | optional | 1..1 | unknown | ||
| + | SanitaryFacilityList | optional | 1..1 | unknown | ||
| + | CouchetteFacilityList | optional | 1..1 | unknown | ||
| + | GroupBookingFacility | optional | 1..1 | unknown |
Example
<?xml version="1.0" encoding="UTF-8"?>
<ServiceFacilitySet id="ch:1:ServiceFacilitySet:A___2" version="1">
<!-- List of ServiceFacility. Be careful: not all are supported. Consult profile. Make sure to not generate identical ServiceFacilitySets. Reuse them. -->
<Extensions>
<!-- Two elements used in HRDF for ordering facilities -->
<Priority>1</Priority>
<Condition>4</Condition>
</Extensions>
<Description lang="de">Nur 2. Klasse<Text lang="en">2nd class only</Text><Text lang="fr">Seulement 2e classe</Text><Text lang="it">Solo 2a classe</Text></Description>
<FareClasses>secondClass</FareClasses>
<NuisanceFacilityList>animalsAllowed</NuisanceFacilityList>
<SanitaryFacilityList>toilet</SanitaryFacilityList>
<CouchetteFacilityList>wheelchair</CouchetteFacilityList>
<GroupBookingFacility>groupsAllowed</GroupBookingFacility>
</ServiceFacilitySet>
→ - Template
Usage Notes
- SKI uses the following groups to classify
ServiceFacilitys:- Accommodation facility
- Catering facility
- Fare classes
- Group booking facility
- Luggage carriage facility
- Mobility facility
- Nuisance facility
- Passenger communications facility
- Service reservation facility
- Ticketing facility
- Uic train rate
- The list is fromtime to time revised. The values and lists from the NeTEx standard are not updated.
- This means that a given Facility (e.g. restaurant or diaper changing table) is shown in the appropriate
subcategory
MealFacilityListorFamilyFacilityList, and a passenger information system can show these categories in a reasonable order. The categories themselves are from typexsd:list, meaning that the values of a category are a separated list of elements. - When transforming from HRDF to NeTEx. The
Facilityis often also copied as aNoticein textual form. - The details of the usage are defined in the mapping table for NeTEX 2.0.
- See also Use case on service facilities.
- id-attribute should be kept stable between exports.
SiteFacilitySet
Purpose
Set of Facilitiys available at a StopPlace, Quay or other site elements.
A SiteFacilitySet defines a set of facilities like sanitary facilities, ticket service, lockers etc. that can be
referenced to define facilities of a site.
Table
| Sub | Element | Usage | Card | Type | Description | Note |
|---|---|---|---|---|---|---|
| SiteFacilitySet | mandatory | 1..1 | unknown | List of SiteFacility. Be careful: not all are supported. Consult profile. Make sure to not generate identical SiteFacilitySets. Reuse them. There might be an overlap to ServiceFacilitySet, but they are used for different purposes. | ||
| + | validityConditions | optional | 1..1 | unknown | ||
| ++ | AvailabilityCondition | optional | 1..1 | unknown | ||
| + | Description | optional | 1..1 | unknown | Description is optional | |
| ++ | Text | optional | 1..1 | unknown | ||
| + | AssistanceFacilityList | optional | 1..1 | unknown | ||
| + | AccessibilityToolList | optional | 1..1 | unknown | ||
| + | SanitaryFacilityList | optional | 1..1 | unknown | ||
| + | TicketingServiceFacilityList | optional | 1..1 | unknown | ||
| + | EmergencyServiceList | optional | 1..1 | unknown | ||
| + | LuggageLockerFacilityList | optional | 1..1 | unknown | ||
| + | ParkingFacilityList | optional | 1..1 | unknown |
Example
<?xml version="1.0" encoding="UTF-8"?>
<SiteFacilitySet id="generated" version="1">
<!-- List of SiteFacility. Be careful: not all are supported. Consult profile. Make sure to not generate identical SiteFacilitySets. Reuse them. There might be an overlap to ServiceFacilitySet, but they are used for different purposes. -->
<validityConditions>
<AvailabilityCondition id="generated" version="1">
<FromDate>2026-03-30T12:00:00</FromDate>
<ToDate>2026-04-01T12:00:00</ToDate>
<ValidDayBits>01</ValidDayBits>
</AvailabilityCondition>
</validityConditions>
<Description lang="de">SiteFacilitySet Solothurn<!-- Description is optional --><Text lang="en">SiteFacilitySet Solothurn</Text></Description>
<AssistanceFacilityList>personalAssistance information boardingAssistance</AssistanceFacilityList>
<AccessibilityToolList>audioNavigator</AccessibilityToolList>
<SanitaryFacilityList>toilet babyChange</SanitaryFacilityList>
<TicketingServiceFacilityList>all reservations</TicketingServiceFacilityList>
<EmergencyServiceList>police firstAid</EmergencyServiceList>
<LuggageLockerFacilityList>lockers</LuggageLockerFacilityList>
<ParkingFacilityList>parkAndRidePark</ParkingFacilityList>
</SiteFacilitySet>
→ - Template
Usage Notes
- Make sure to not generate identical SiteFacilitySets. Reuse them.
- We currently don’t have many
SiteFacilitySetas this is not done in timetables yet. With accessibility and more information from Atlas, this may change. - We will keep the list of relevant values updated in mapping table for NeTEX 2.0.
- There may be an overlap between
SiteFacilitySetandServiceFacilitySet. However, they reference very different things: site elements and vehicles. - Sometimes “capabilities”/”limitations” are defined through combinations of what a stop and what a vehicle can do.
- In future also the use of
EquipmentandEquipmentPlacemay become more important. These are then actual pieces of equipment. This also means that theVehiclemust be known and referenced. - id-attribute should be kept stable between exports.
VehicleType
Purpose
A typified vehicle configuration (model or series) defining reusable characteristics such as capacity, dimensions, propulsion, and accessibility features.
Usage Notes
We currently don’t use VehicleType or VehicleModel. We will need those at some point.