BT4PT-GeneralElementsV1-0

Module Info

Reference
BT4PT-GeneralElementsV1-0
Numeric OID
1.3.6.1.4.1.17218.1.2.1.1.0

Exports

This module explicitly exports all symbols.

Imports

This module does not import any symbols.

Assignments

GenericId

This data structure is used throughout this standard when encoding as identifier for some object, event, entity, etc. The exact values and their meaning are defined by the context in which the identifier is used.

When encoding an identifier, an implementation of this standard SHALL:

  1. encode using the idNum variant, if the value to be encoded is contains only numerical characters;
  2. encode using the idStr variant, if the value to be encoded is contains only alphanumerical character, or;
  3. encode using the idOct variant, if the value to be encoded is binary

The choice of variant has no differentiating effect on the value in equality comparisons. That is, 1234 encoded as an idNum is the exact same logical value as the string "1234" encoded as idStr, and the same logical value as the binary string '31323334'H.

CHOICE

The value of this choice may be one of the following:

idNum

To be used for numeric IDs.

INTEGER
idStr

To be used for alphanumeric IDs.

VisibleString
idOct

To be used for binary IDs, such as UUIDs.

OCTET STRING

CodeTable

This data structure is used throughout this standard to specify which dataset an identifier references. This avoids possible confusions between, e.g. station identifier 1312 being assigned to different stations in different national schemes.

SEQUENCE

This sequence contains the following fields:

owner

This field defines which organisation or entity controls or otherwise administers the dataset to which an identifier refers.

CHOICE

The value of this choice may be one of the following:

issuer

Identifiers are defined by the issuer. When decoding this variant SHALL be dereferenced to the contextually relevant CompanyCode. When encoding, this variant SHALL be preferred over the variant Company where possible, to save encoding space.

NULL
productOwner

Identifiers are defined by the product owner. When decoding this variant SHALL be dereferenced to the contextually relevant CompanyCode. When encoding, this variant SHALL be preferred over the variant Company where possible, to save encoding space.

NULL
carrier

Identifiers are defined by the carrier. When decoding this variant SHALL be dereferenced to the contextually relevant CompanyCode. When encoding, this variant SHALL be preferred over the variant company where possible, to save encoding space. If there are multiple possible contextually relevant carriers, this variant SHALL NOT be used, as its meaning is then ambiguous.

NULL
area

Identifiers are defined by entity responsible for the relevant 'Concerned Area'. When decoding this variant SHALL be dereferenced to the contextually relevant NUTSArea. If there are multiple possible contextually relevant concerned areas, this variant SHALL NOT be used, as its meaning is then ambiguous.

This variant SHALL NOT be used for an identifier before it is registered with [insert registration authority]. The registration authority will make a determination on whether the suggested dataset can accurately be considered a regional dataset, covering all possible identifiers in a given context for multi-modality in that area.

NULL
national

Identifiers are defined a national authority for a country. This field contains the ISO 3166-1 numeric code of that country.

This variant SHALL NOT be used for an identifier before it is registered with [insert registration authority]. The registration authority will make a determination on whether the suggested dataset can accurately be considered a national dataset, covering all possible identifiers in a given context for multi-modality in that country.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: 0

The value must be less than or equal to: 999

company

Identifiers are defined by the given company.

CompanyCode
version Default value defined

This field is used in case of multiple datasets being maintained by the same entity for the same purpose, to differentiate between them. Examples could include BeispielBahn having two different possible identifiers for a station.

Note: this field is not used to differentiate between different datasets used by the same entity for different purposes. That is, the dataset of, e.g., BeispielBahn for areas and for stations may both be given version 0. It is evident from the context in which this structure is used, to which dataset the identifier refers.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: 0

The value must be less than or equal to: 255

This field, when unset, defaults to the following value: 0

CODE-TABLE-IDENTIFIER

OBJECT CLASS

This object class has the following fields:

&table

This field accepts any value of the following type:

CodeTable

This field must be unique within an object set.

GenericCode

Parameterised

This assignment is parameterised, accepting the following parameters:

IdType
TableSet
CODE-TABLE-IDENTIFIER
SEQUENCE

This sequence contains the following fields:

codeTable

Denotes to which dataset the identifier references.

CodeTable

This type is constrained in the following way:

Table

The value must come from the &table column of the object set: Parameter TableSet

id

The identifier, as defined by the dataset referenced in codeTable.

Parameter IdType

CompanyCode

This data structure is used throughout this standard when referring to the various organisations or authorities responsible for the various aspects of ticketing and carriage of passengers. In Transmodel terms it identifies a TRANSPORT ORGANIZATION (EN 12896-1:2016 § 5.6.8).

CHOICE

The value of this choice may be one of the following:

orgCode

For companies within the EU this field SHALL be their ERA assigned Organisation Code, as available from teleref.era.europa.eu. For others this field SHALL be their UIC assigned RICS, as available from uic.org/support-activities/it/rics.

VisibleString

This type is constrained in the following way:

Intersection

All the following must be true:

Size

The length of the value must exactly: 4

AND

Permitted alphabet

The characters in the string value must satisfy the following constraint:

Union

Any of the following can be true:

Range

The value must be greater than or equal to: A

The value must be less than or equal to: Z

OR

Range

The value must be greater than or equal to: 0

The value must be less than or equal to: 9

otherCode

This variant is to be used when a company does not have an ERA Organisation Code nor a RICS. It SHALL NOT be used when a company has an ERA Org Code or RICS assigned to it, except where the situation requires identifying the company within the context of a local coding system.

SEQUENCE

This sequence contains the following fields:

format

The company identifier format is constructed according to one of the following options:

  1. The literal character + (U+002B, PLUS SIGN), concatenated with a 2-character uppercase ISO-3166 country code, concatenated with a string chosen by the national standards body of that country.
  2. The literal character _ (U+005F, LOW LINE), concatenated with a 4-character ERA Organisation Code or RICS, concatenated with a string chosen by that company.
  3. The literal character * (U+002A, ASTERISK), concatenated with privately chosen string. Note: this variant has no guarantees of avoiding clashes in assignment, and SHOULD NOT be used unless no other option is available. If an organisation has a ERA Organisation Code or a RICS, this variant SHALL NOT be used.
  4. Any other string, as assigned in this standard. Unregistered values of this variant SHALL NOT be used.

The 1st and 2nd variant SHOULD be registered before their first use. The 4th variant SHALL be registered before its first use. Registrations SHALL be made with [insert registration authority].

VisibleString

This type is constrained in the following way:

Intersection

All the following must be true:

Size

The length of the value must be greater than or equal to: 1

The length of the value must be less than or equal to: 8

AND

Inverse

Any value, except any satisfying the following:

Union

Any of the following can be true:

Single value

The value must be exactly: !I

OR

Single value

The value must be exactly: !C

OR

Single value

The value must be exactly: !P

This type is constrained in the following way:

Table

The value must come from the &id column of the object set: CompanyCodeFormats

code

The meaning of this field is defined by value of format.

VisibleString

This type is constrained in the following way:

Size

The length of the value must be greater than or equal to: 1

The length of the value must be less than or equal to: 8

COMPANY-CODE-FORMAT

OBJECT CLASS

This object class has the following fields:

&id

This field accepts any value of the following type:

VisibleString

This type is constrained in the following way:

Intersection

All the following must be true:

Size

The length of the value must be greater than or equal to: 1

The length of the value must be less than or equal to: 8

AND

Inverse

Any value, except any satisfying the following:

Union

Any of the following can be true:

Single value

The value must be exactly: !I

OR

Single value

The value must be exactly: !C

OR

Single value

The value must be exactly: !P

This field must be unique within an object set.

CompanyCodeFormats

When a company does not have an ERA Organisation Code, an entry from this list SHALL be used to signify which alternative dataset is being used to identify the company.

The entries in this list are managed by [insert registration authority].

OBJECT SET

This object set has the following members:

&id
+DEVDV
+GBNOC
+CHSBOID
Other members may be added at runtime.

CompanyConstraint

SEQUENCE

This sequence contains the following fields:

securityProvider
BOOLEAN
permitted Optional
SEQUENCE OF

This type is constrained in the following way:

Size

The length of the value must be greater than or equal to: 1

The length of the value must be less than or equal to: 32

CompanyCode

UnicodeText

This data structure is used throughout this standard for the encoding of text which is intended to be displayed to a human being. This standard utilises the Unicode character set for such purposes.

Implementations of this standard SHALL be compliant to DIN 91379, with regards to processing text in this structure. That is, they are able to handle (store, transfer, recall, and represent) all characters as specified in DIN 91379 without error.

SEQUENCE

This sequence contains the following fields:

text

The textual data, encoded according to the Standard Compression Scheme for Unicode (SCSU). All Unicode text, before being fed into the SCSU compressor, SHALL be in Normalisation Form C.

For encoders than only ever output US-ASCII and ISO 8859-1 (Latin-1) between U+0020 and U+00FF, no special handling is required to generate SCSU data, the Latin-1 encoding is already valid SCSU. All decoders MUST be able to handle the full SCSU specification when reading and parsing data.

If you are unsure which implementation to use, the International Components for Unicode is the recommended implementation of SCSU, although it is by no means required.

OCTET STRING
language

The IANA language subtag of the text.

VisibleString

This type is constrained in the following way:

Intersection

All the following must be true:

Size

The length of the value must exactly: 2

AND

Permitted alphabet

The characters in the string value must satisfy the following constraint:

Range

The value must be greater than or equal to: a

The value must be less than or equal to: z

Name

This data structure is used fo the encoding of a person's name. The encoding considerations and rules of UnicodeText apply equally to this structure.

When comparing names with identity documents, or when a Latinized representation of a name is required, the system SHALL transliterate according to ICAO 9303 Part 3, specifically sections 4.6 and 6. The text stored in the ticket SHOULD be in its original script, with transliteration performed by the reading device. The reading device SHOULD show both the original script, and the Latinized form.

The language field, if present, SHALL be used to select to correct Latinization of Cyrillic characters. The relevant languages for special considerations in ICAO 9303 Latinization are:

  • be: Belarusian
  • bg: Bulgarian
  • uk: Ukrainian
  • mk: Macedonian
  • sr: Serbian

The language field MAY also be used to influence other transliterations, e.g. the different handling of diaereses by language.

All 3 name parts are encoded with SCSU compression (as per UnicodeText). The language tag applies to all 3 name parts. That is, the name parts are to be construed as 3 UnicodeText SEQUENCEs with the same language tag set.

SEQUENCE

This sequence contains the following fields:

forename Optional

The forename(s) of the person.

OCTET STRING
middleName Optional

The middle name(s) of the person, if applicable.

OCTET STRING
surname Optional

The surname(s) of the person. In the case of a mononym, this field SHALL contain the name, and the forename and middleName fields SHALL be unset.

OCTET STRING
language Optional

The IANA language subtag of the names' language.

VisibleString

This type is constrained in the following way:

Intersection

All the following must be true:

Size

The length of the value must exactly: 2

AND

Permitted alphabet

The characters in the string value must satisfy the following constraint:

Range

The value must be greater than or equal to: a

The value must be less than or equal to: z

Station

This data structure is used to identify a station, stop, or other such boarding/alighting point. In Transmodel terms, it identifies a STOP PLACE (EN 12896-2:2016 § 5.4.3).

SEQUENCE

This sequence contains the following fields:

station

Contains the identifier used for the station.

CHOICE

The value of this choice may be one of the following:

eraPlc

Identification of the station by its ERA assigned Primary Location Code, as per teleref.era.europa.eu. This variant SHALL be used when a station has such a code assigned.

Note: a PLC is not equivalent to a UIC station ID, an IBNR (Internationale/Interne Bahnhofsnummer), nor a MERITS reservation code. Although there may be some equivalence between these numbers in certain countries, these are identifiers for separate systems and are not interchangeable.

SEQUENCE

This sequence contains the following fields:

country

The ISO 3166-1 numeric code of the country of the PLC.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: 0

The value must be less than or equal to: 999

locationCode

The national part of the PLC.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: 1

The value must be less than or equal to: 99999

generic

If a station does not have an ERA Primary Location Code assigned, this variant is to be used. This variant SHALL NOT be used when a station has as assigned ERA Primary Location Code.

GenericCode

This type is concretely parameterised with the following:

IdType
GenericId
TableSet
StationCodeTables
stationName Optional

This field MAY be used to provide a human-readable name for the station, to assist in cases where the device reading a ticket does not have the appropriate dataset to deference the identifier encoded in station.

This field SHALL NOT be processed automatically, including, but not limited to, string matching the provided station to a dataset. It SHALL only be used for display to a human being.

UnicodeText

StationCodeTables

When a Station does not have an ERA Primary Location Code, an entry from this list SHALL be used to signify which alternative dataset is being used to identify the station.

The entries in this list are managed by [insert registration authority].

OBJECT SET

This object set has the following members:

&table
SEQUENCE
owner
Choice variant company Choice variant orgCode 1170
version
0
SEQUENCE
owner
Choice variant national 826
version
0
SEQUENCE
owner
Choice variant national 276
version
0
SEQUENCE
owner
Choice variant national 756
version
0
Other members may be added at runtime.

StationSet

SEQUENCE

This sequence contains the following fields:

set
CHOICE

The value of this choice may be one of the following:

groupPrimary

Where a station group is defined a number of stations grouped together with a primary station.

Station
list

Explicitly listing all stations in a group.

SEQUENCE OF Station
setNameUTF8 Optional
UnicodeText

LineId

This data structure is used to identify a service line, for which many services may run in a day. In Transmodel terms, it identifies a LINE (EN 12896-2:2016 § 5.3.7.4).

CHOICE

The value of this choice may be one of the following:

publicIdentifier

An end-user-visible (i.e. published in timetables) identifier for the line.

SEQUENCE

This sequence contains the following fields:

id

The identifier of the line; e.g. "RE1", "S1", etc.

VisibleString

This type is constrained in the following way:

Permitted alphabet

The characters in the string value must satisfy the following constraint:

Union

Any of the following can be true:

Range

The value must be greater than or equal to: A

The value must be less than or equal to: Z

OR

Range

The value must be greater than or equal to: 0

The value must be less than or equal to: 9

carrier

The carrier that operates the line.

CompanyCode
generic

A non-end-user-visible identifier for the line.

GenericCode

This type is concretely parameterised with the following:

IdType
GenericId
TableSet
LineIdCodeTables

LineIdCodeTables

When a LineId is being identified with a non-end-user-visible identifier, an entry from this list SHALL be used to signify which dataset is being used to identify the line.

The entries in this list are managed by [insert registration authority].

OBJECT SET

This object set has the following members:

&table
SEQUENCE
owner
Choice variant national 276
version
0
SEQUENCE
owner
Choice variant national 756
version
0
Other members may be added at runtime.

TransportId

This data structure is used to identify a singular transport service, ideally unique within a day. In Transmodel terms, it identifies a SERVICE JOURNEY (EN 12896-3:2016 § 5.3.2).

CHOICE

The value of this choice may be one of the following:

publicIdentifier

An end-user-visible (i.e. published in timetables) identifier for the service.

SEQUENCE

This sequence contains the following fields:

id

The identifier of the service; e.g. "ICE107", etc.

VisibleString

This type is constrained in the following way:

Permitted alphabet

The characters in the string value must satisfy the following constraint:

Union

Any of the following can be true:

Range

The value must be greater than or equal to: A

The value must be less than or equal to: Z

OR

Range

The value must be greater than or equal to: 0

The value must be less than or equal to: 9

carrier

The carrier that operates the service.

CompanyCode
generic
GenericCode

This type is concretely parameterised with the following:

IdType
GenericId
TableSet
TransportIdCodeTables

TransportIdCodeTables

When a TransportId is being identified with a non-end-user-visible identifier, an entry from this list SHALL be used to signify which dataset is being used to identify the service.

The entries in this list are managed by [insert registration authority].

OBJECT SET

This object set has the following members:

&table
SEQUENCE
owner
Choice variant national 276
version
0
SEQUENCE
owner
Choice variant company Choice variant orgCode 1170
version
0
SEQUENCE
owner
Choice variant national 756
version
0
Other members may be added at runtime.

NUTSArea

This structure identifies a geographic area defined under the Nomenclature of Territorial Units for Statistics (Regulation EC 1059/2003), or a compatible system for those countries outside of the NUTS system.

Divisions all the way down to the Local Administrative Unit are permitted. LAUs must be appended to their NUTS3 code, e.g. 270942 for Emmendingen, Stadt is coded with the subdivision 133270942. Functional Administrative Unit codes are not permitted.

NUTS codes are only defined for members of the EU, the EFTA, and EU candidate countries. For those countries outside the NUTS system:

  • the UK maintains a compatible system since Brexit called the International Territorial Level;
  • otherwise, use the the OECD Territorial Region Codes.
  • if none of the above applies for a country, a choice of suitable system SHALL be defined by a future revision of this specification. Users of this specification SHALL NOT make their own determination of a compatible system. Countries without a suitable system MAY be identified only with the omission of the subdivision field.
SEQUENCE

This sequence contains the following fields:

country

The ISO 3166-1 numeric code of the country of the area.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: 0

The value must be less than or equal to: 999

subdivision Optional

The NUTS code, without the country-code prefix. If this field is unset, the structure refers to the entire country.

VisibleString

This type is constrained in the following way:

Permitted alphabet

The characters in the string value must satisfy the following constraint:

Union

Any of the following can be true:

Range

The value must be greater than or equal to: A

The value must be less than or equal to: Z

OR

Range

The value must be greater than or equal to: 1

The value must be less than or equal to: 9

AreaSet

This structure identifies one or more areas of geographic validity, e.g. fare zones.

CHOICE

The value of this choice may be one of the following:

nuts

A list of European NUTS codes, or compatible. This variant SHOULD be used over the generic variant where possible.

generic

A list of area identifiers defined in terms of an identified code list.

The same rules of equivalence under equality comparisons that apply to GenericId apply here as well, except to the idBit variant. Lists which contain the same values but in a different order are also equivalent.

GenericCode

This type is concretely parameterised with the following:

IdType
CHOICE

The value of this choice may be one of the following:

idNum

To be used for numeric IDs.

idStr

To be used for alphanumeric IDs.

idOct

To be used for binary IDs.

idBit

An encoding in which each area is encoded as one bit. That is, when a bit is set the area/zone is included in the AreaSet, when it is not set the area/zone is excluded from the AreaSet.

For example, where bit n (with bit 0 being right-most bit) encodes zone n+1, the value '10101110010'B encodes zones 2, 5, 6, 7, 9 and 11.

BIT STRING
TableSet
AreaCodeTables

AreaCodeTables

When an AreaSet is being identified with a non-NUTS identifier, an entry from this list SHALL be used to signify which dataset is being used to identify the area.

The entries in this list are managed by [insert registration authority].

OBJECT SET

This object set has the following members:

&table
SEQUENCE
owner
Choice variant national 208
version
0
Other members may be added at runtime.

CoachPlaces

This data structure is used to locate seats/places within a coach/carriage. It is used, for example, when encoding a seat reservation barcode. The data SHALL be construed according to ERA TEL TSI B.5.

SEQUENCE

This sequence contains the following fields:

coach Optional

A human readable number/letter/identifier of the coach/carriage within one transport service.

VisibleString
placeNumber Optional

Individual places within the above coach.

SEQUENCE OF PlaceNumber
details Optional

This field MAY be used to provide more details about the seats/places, in accordance with ERA TEL TSI B.5.

PlaceDetails
placeDescription Optional

This field MAY contain a human-readable description of the place, if it cannot be represented using any of the other above fields.

UnicodeText

PlaceNumber

This data structure identifies an individual seat/place within a single coach/carriage.

CHOICE

The value of this choice may be one of the following:

placeNum

This variant SHALL be used when the seat/place identifier is a number.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: 1

The value must be less than or equal to: 999

placeIA5

This variant SHALL be used when the seat/place identifier is not a number.

VisibleString

PlaceDetails

This data structure provides additional details about a seat/place/compartment, according to ERA TEL TSI B.5.

SEQUENCE

This sequence contains the following fields:

coachType

This field SHALL contain a value per ERA TEL TSI Code List B.5.51.1.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: 0

The value must be less than or equal to: 99

compartmentType

This field SHALL contain a value per ERA TEL TSI Code List B.5.51.2.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: 0

The value must be less than or equal to: 99

specialOffers

This field SHALL contain a value per ERA TEL TSI Code List B.5.51.3.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: 0

The value must be less than or equal to: 99

description Optional

This field MAY contain a human-readable description of any details about the seat/place that can't be represented with the above fields.

UnicodeText

GeoCoordinate

This data structure is used to represent points on the globe. It SHALL contain a latitude and longitude as measurements compatible with the World Geodetic System 1984, as used by GPS navigation satellites.

SEQUENCE

This sequence contains the following fields:

position

The exact point being referenced if no accuracy is given, or the centre of the possible circle of positions if accuracy is given.

GeoPosition
accuracy Optional

If known, the accuracy of the measurement given in position. If the degrees of accuracy is more than 0.1 degrees, this value SHALL not be provided.

GeoAccuracy

GeoAccuracy

This enumeration is used to describe the accuracy of a geographic position measurement, in terms of variance range from the given centre coördinate.

To convert between meters of accuracy and degrees of accuracy, an implementation SHALL:

  1. Let the earth's circumference be 40,075,016.7 meters, per WGS84.
  2. Let the meters per degree at a given latitude be the cosine of the latitude in radians, times the earth's circumference, divided by 360. That is, the following formula: M = cos(latitude * π / 180) * 40075016.7 / 360.
  3. The degrees of accuracy is the meters of accuracy divided by the meters per degree at the latitude. That is, the following formula A = meters of accuracy / M.
ENUMERATED

The value of this enumeration may have one of the following values:

tenthMilliDegree

Value: 0

The value A is less than or equal to 0.0001 degrees.

milliDegree

Value: 1

The value A is less than or equal to 0.001 degrees.

centiDegree

Value: 2

The value A is less than or equal to 0.01 degrees.

deciDegree

Value: 3

The value A is less than or equal to 0.1 degrees.

GeoPosition

This data structure describes an exact point on the earth's surface.

Implementations SHALL take into account the useful number of significant places (e.g. based upon the measurement accuracy) in a coördinate, and SHALL select the smallest variant suitable (i.e. least number of decimal places represented), to provide an encoding of the position in as few bits as possible.

CHOICE

The value of this choice may be one of the following:

tenthMilliDegree

This variant is used to represent coördinates down to the 4th decimal place (0.0001 degrees).

SEQUENCE

This sequence contains the following fields:

longitude

This field SHALL be populated with the degrees of longitude, multiplied by 10,000.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: -1800000

The value must be less than or equal to: 1800000

latitude

This field SHALL be populated with the degrees of latitude, multiplied by 10,000.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: -900000

The value must be less than or equal to: 900000

milliDegree

This variant is used to represent coördinates down to the 3rd decimal place (0.001 degrees).

SEQUENCE

This sequence contains the following fields:

longitude

This field SHALL be populated with the degrees of longitude, multiplied by 1000.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: -180000

The value must be less than or equal to: 180000

latitude

This field SHALL be populated with the degrees of latitude, multiplied by 1000.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: -90000

The value must be less than or equal to: 90000

centiDegree

This variant is used to represent coördinates down to the 2nd decimal place (0.01 degrees).

SEQUENCE

This sequence contains the following fields:

longitude

This field SHALL be populated with the degrees of longitude, multiplied by 100.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: -18000

The value must be less than or equal to: 18000

latitude

This field SHALL be populated with the degrees of latitude, multiplied by 100.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: -9000

The value must be less than or equal to: 9000

deciDegree

This variant is used to represent coördinates down to the 1st decimal place (0.1 degrees).

SEQUENCE

This sequence contains the following fields:

longitude

This field SHALL be populated with the degrees of longitude, multiplied by 10.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: -1800

The value must be less than or equal to: 1800

latitude

This field SHALL be populated with the degrees of latitude, multiplied by 10.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: -900

The value must be less than or equal to: 900

Timestamp

This data structure is used to represent a timestamp, expressed in UTC. Implementations SHALL convert any local times to UTC before encoding them into this structure.

SEQUENCE

This sequence contains the following fields:

year

The year of the timestamp.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: 2026

The value must be less than or equal to: 2281

day

The number of the day in the above year, where the 1st of January is day number 1.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: 1

The value must be less than or equal to: 366

time

The number of minutes into the above day, where 0 minutes is 00:00 and 1439 minutes is 23:59.

INTEGER

This type is constrained in the following way:

Range

The value must be greater than or equal to: 0

The value must be less than or equal to: 1439

SharedVehicleVariety

This enumeration is used to describe the variety of a shared vehicle. Its values are taken from NeTEx's PersonalVehicleCategory (CEN/TS 16614-5:2022 § 10.1.4.3.4.2).

ENUMERATED

The value of this enumeration may have one of the following values:

scooter

Value: 0

Scooter - small wheeled low mobile platform.

bicycle

Value: 1

Bicycle.

tricycle

Value: 2

Tricycle.

tandem

Value: 3

Tandem bicycle.

moped

Value: 4

Moped (Small motorbike).

motorcycle

Value: 5

Motorcycle.

quadbike

Value: 6

Motorcycle.

car

Value: 7

Car of any size.

microCar

Value: 8

Extremely small vehicle.

miniCar

Value: 9

Very small vehicle.

smallCar

Value: 10

Small vehicle.

mediumCar

Value: 11

Compact vehicle.

largeCar

Value: 12

Large vehicle.

minivan

Value: 13

Minivan.

transporter

Value: 14

Large people transporter / minibus.

snowmobile

Value: 15

Snowmobile.

other

Value: 16

Other category.

SharedVehiclePropulsionType

This enumeration is used to describe the propulsion method of a shared vehicle. Its values are taken from NeTEx's PropulsionType (CEN/TS 16614-5:2022 § 10.1.4.3.2.2).

ENUMERATED

The value of this enumeration may have one of the following values:

combustion

Value: 0

Internal combustion of any sort.

hybrid

Value: 1

Electric/Combustion Hybrid.

human

Value: 2

Human powered (pedal, scoot etc).

electricAssist

Value: 3

Human power with electric assistance.

other

Value: 4

Other power.

SharedVehicleReturnConstraint

This enumeration is used to describe the return constraints of a shared Vehicle. Its values are taken from the General Bikeshare Feed Specification version 3.0.

ENUMERATED

The value of this enumeration may have one of the following values:

freeFloating

Value: 0

The vehicle can be returned anywhere permitted within the service area.

roundtripStation

Value: 1

The vehicle has to be returned to the same station from which it was initially rented.

anyStation

Value: 2

The vehicle has to be returned to any station within the service area.

hybrid

Value: 3

The vehicle can be returned to any station, or anywhere else permitted within the service area.

DATA-ELEMENT

This class defines data element formats for use in extensible data containers used throughout this standard.

Each object of this class identifies a data element format and specifies the ASN.1 type used to represent its contents, the encoding rules used to encode those contents, and the type used to express constraints on its values in certificates.

Data element formats are identified by their id. This permits additional data element formats to be defined without modifying the structures in which they are carried.

OBJECT CLASS

This object class has the following fields:

&id

The data element identifier format is constructed according to one of the following options:

  1. The literal character + (U+002B, PLUS SIGN), concatenated with a 2-character uppercase ISO-3166 country code, concatenated with a string chosen by the national standards body of that country.
  2. The literal character _ (U+005F, LOW LINE), concatenated with a 4-character ERA Organisation Code or RICS, concatenated with a string chosen by that company.
  3. The literal character string !I (U+0021, EXCLAMATION MARK, U+0049, Latin Capital Letter I), concatenated with a string chosen by the issuer. This variant SHALL be construed as equivalent to the corresponding 2nd variant. It SHALL be used where possible to avoid repetition of the issuer's company code. It SHALL NOT be used where its meaning could be ambiguous.
  4. The literal character string !C (U+0021, EXCLAMATION MARK, U+0043, Latin Capital Letter C), concatenated with a string chosen by the carrier. This variant SHALL be construed as equivalent to the corresponding 2nd variant. It SHALL be used where possible to avoid repetition of the carriers's company code. It SHALL NOT be used where its meaning could be ambiguous, for example when multiple carriers are involved.
  5. The literal character string !P (U+0021, EXCLAMATION MARK, U+0050, Latin Capital Letter P), concatenated with a string chosen by the product owner. This variant SHALL be construed as equivalent to the corresponding 2nd variant. It SHALL be used where possible to avoid repetition of the product owners's company code. It SHALL NOT be used where its meaning could be ambiguous.
  6. The literal character * (U+002A, ASTERISK), concatenated with privately chosen string. Note: this variant has no guarantees of avoiding clashes in assignment, and SHOULD NOT be used unless no other option is available. If an organisation has a ERA Organisation Code or a RICS, this variant SHALL NOT be used.
  7. Any other string, as assigned in this standard. Unregistered values of this variant SHALL NOT be used.

The 1st and 2nd variant SHOULD be registered before their first use. The 4th, 5th, and 6th variants cannot be registered, as they are equivalent to the corresponding 2nd variant. The 8th variant SHALL be registered before its first use. Registrations SHALL be made with [insert registration authority].

This field accepts any value of the following type:

VisibleString

This type is constrained in the following way:

Size

The length of the value must be greater than or equal to: 1

The length of the value must be less than or equal to: 8

This field must be unique within an object set.

&Type

The data structure that describes the contents of this data element.

This field accepts any concrete type.

&encoding

An object identifier specifying which of the ASN.1 encoding rules used to encode Type into an OCTET STRING for the placing of this data element into a barcode.

This field accepts any value of the following type:

OBJECT IDENTIFIER
&Constraints

A data structure to be used within a certificate to place constraints on the possible values of a data element of this variety. It SHALL be encoded into an OCTET STRING for inclusion in the certificate as specified by encoding object identifier. It MAY be the null type, if no constraints ever need to be placed on the data element.

This field accepts any concrete type.

Data

Parameterised

Generic data container.

This assignment is parameterised, accepting the following parameters:

ElementSet

Set of DATA-ELEMENT objects that are permitted as contents. This set SHOULD be extensible.

DATA-ELEMENT
SEQUENCE

This sequence contains the following fields:

critical

This field signifies the criticality of this data element.

If the data format is not recognised, or can't be processed, and it is marked critical, the ticket SHALL be treated as invalid; otherwise, an implementation SHALL ignore extensions not understood.

BOOLEAN
format

This field identifies which type of data element is encoded. Its value is used to identify which type is contained within the value field, and what encoding has been used for it.

VisibleString

This type is constrained in the following way:

Size

The length of the value must be greater than or equal to: 1

The length of the value must be less than or equal to: 8

This type is constrained in the following way:

Table

The value must come from the &id column of the object set: Parameter ElementSet

value

This field contains the type identified by the format field, encoded according to the encoding given in the corresponding DATA-ELEMENT object.

OCTET STRING

This type is constrained in the following way:

Contents

The value must be an encoding of the following type:

ANY

This type is constrained in the following way:

Table

The value must come from the &Type column of the object set: Parameter ElementSet
The row is selected by the value of the fields: format

DataAuthorization

Parameterised

This assignment is parameterised, accepting the following parameters:

ElementSet
DATA-ELEMENT
SEQUENCE OF

This type is constrained in the following way:

Size

The length of the value must be greater than or equal to: 1

The length of the value must be less than or equal to: 64

DataAuthorizationEntry

This type is concretely parameterised with the following:

ElementSet
Parameter ElementSet

DataAuthorizationEntry

Parameterised

This assignment is parameterised, accepting the following parameters:

ElementSet
DATA-ELEMENT
SEQUENCE

This sequence contains the following fields:

format
VisibleString

This type is constrained in the following way:

Size

The length of the value must be greater than or equal to: 1

The length of the value must be less than or equal to: 8

This type is constrained in the following way:

Table

The value must come from the &id column of the object set: Parameter ElementSet

constraint
OCTET STRING

This type is constrained in the following way:

Contents

The value must be an encoding of the following type:

ANY

This type is constrained in the following way:

Table

The value must come from the &Constraints column of the object set: Parameter ElementSet
The row is selected by the value of the fields: format

DSSSignature

Parameterised

A generic container for the conveyance of Digital Signature Scheme signatures, i.e. ECDSA.

This assignment is parameterised, accepting the following parameters:

len

The length, in bytes, of each of r and s. That is, half the total signature length.

INTEGER
SEQUENCE

This sequence contains the following fields:

r

The output r of the DSS signature process.

OCTET STRING

This type is constrained in the following way:

Size

The length of the value must exactly: Parameter len

s

The output s of the DSS signature process.

OCTET STRING

This type is constrained in the following way:

Size

The length of the value must exactly: Parameter len

ECPublicKey

Parameterised

This assignment is parameterised, accepting the following parameters:

len

The length, in bytes, required to represent the X coördinate on a curve.

INTEGER
SEQUENCE

This sequence contains the following fields:

yIsOdd

An indicator of the Y coördinate of the elliptic curve point being odd or even. This field SHALL be FALSE if the first byte of the SEC 1 compressed encoding of this point would be 02h, and SHALL be TRUE if the first byte of the SEC 1 compressed encoding of this point would be 03h.

BOOLEAN
x

The X coördinate of the elliptic curve point.

OCTET STRING

This type is constrained in the following way:

Size

The length of the value must exactly: Parameter len