Kurzbeschreibung
Der StopEvent-Service dient dazu, einen Abfahrts- oder Ankunftsmonitor zu konstruieren. Alle Fahrten ab einer Haltestelle und ihren zugeordneten Haltekanten werden einbezogen. Anders als beim Router werden jedoch keine benachbarten Haltestellen ausgegeben, wenn an der angefragten keine Resultate verfügbar sind.
Technische Beschreibung
API-Explorer
Sie können eigene Requests ausprobieren – direkter Link zum API-Explorer.
Request
Die Anfrage erfolgt mit einem OJPStopEventRequest, welche verschiedene Parameter für die Anfrage enthält, nachfolgend ein Beispiel von Bern:
<OJP xmlns="http://www.vdv.de/ojp" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.vdv.de/ojp" version="2.0">
<OJPRequest>
<siri:ServiceRequest>
<siri:ServiceRequestContext>
<siri:Language>de</siri:Language>
</siri:ServiceRequestContext>
<siri:RequestTimestamp>2025-02-11T14:11:26.795Z</siri:RequestTimestamp>
<siri:RequestorRef>SKIPlus</siri:RequestorRef>
<OJPStopEventRequest>
<siri:RequestTimestamp>2025-02-11T14:11:26.795Z</siri:RequestTimestamp>
<siri:MessageIdentifier>SER_1</siri:MessageIdentifier>
<Location>
<PlaceRef>
<siri:StopPointRef>8507000</siri:StopPointRef>
<Name>
<Text>Bern</Text>
</Name>
</PlaceRef>
<DepArrTime>2025-02-11T14:11:21.539Z</DepArrTime>
</Location>
<Params>
<NumberOfResults>10</NumberOfResults>
<StopEventType>departure</StopEventType>
<IncludePreviousCalls>true</IncludePreviousCalls>
<IncludeOnwardCalls>true</IncludeOnwardCalls>
<UseRealtimeData>full</UseRealtimeData>
</Params>
</OJPStopEventRequest>
</siri:ServiceRequest>
</OJPRequest>
</OJP>
Folgend die Parameter der OJPStopEventRequestStructure:
Element | Kardinalität | Beschreibung | Beispiel |
RequestTimestamp | 1:1 | Timestamp der Anfrage. Bevorzugt in Zulu Time. |
<siri:RequestTimestamp>2025-02-11T14:11:26.795Z</siri:RequestTimestamp> |
MessageIdentifier | 0:1 | Der Identifier der Message. Kann vom Benutzer gewählt werden. Kann im Supportfall von Nutzen sein. Dieser wird, wenn vorhanden, in der Response zurückgegeben. |
<siri:MessageIdentifier>SER_1</siri:MessageIdentifier> |
Location/PlaceRef | 0:1 | Am Besten die Verwendung eines StopPlaceRef. Location Name wird ignoriert.Achtung: Sowohl Didok wie auch SLOID können vorkommen. Mehr Infos. |
<PlaceRef> <siri:StopPointRef>8507000</siri:StopPointRef> <Name> <Text>Bern</Text> </Name> </PlaceRef> |
Location/DepArrTime | 0:1 | Die zu verwendende Zeit. Am Besten als Zulu-Time”Z” ist Zulu-Zeit (also zeitzonenunabhängig). Bei Z müssen unbedingt die Sekunden auch angegeben werden. Stimmt das Format nicht oder ist kein Z vorhanden, versucht das System, die Zeit als lokale Zeit zu interpretieren. |
<DepArrTime>2025-02-11T14:11:21.539Z</DepArrTime> |
Location/TimeAllowance | 0:1 | Zusätzliche Zeit, die benötigt wird, um diesen Ort zu erreichen/zu verlassen (z. B. max. 5 Minuten zu Fuss, aber 10 Minuten mit dem Fahrrad). xs:Duration. |
<Location> <PlaceRef> <siri:StopPointRef>8507000</siri:StopPointRef> <Name> <Text>Bern</Text> </Name> </PlaceRef> <TimeAllowance>PT5M</TimeAllowance> </Location>
|
Location/IndividualTransportOptions | 0:* | Optionen, um ein Haltestelle oder ein Ort zu erreichen oder zu verlassen.Erlaubte Modes (aktuell): walk, cycle Später: taxi, self-drive-car, others-drive-car, motorcycle, truck. Die Distanzen sind in Meter. Die Geschwindigkeit relativ zu normal (=100%). AdditionalTime ist zusätzliche Zeit bei diesem Modus. |
<IndividualTransportOptions> <Mode>walk</Mode> <MaxDistance>5000</MaxDistance> <MaxDuration>PT5M</MaxDuration> <MinDistance>0</MinDistance> <MinDuration>PT0M</MinDuration> <Speed>100</Speed> <AdditionalTime>PT10M</AdditionalTime> </IndividualTransportOptions>
|
/Params | 0:1 | die Parameter |
<Params> <StopEventType>both</StopEventType> <IncludePreviousCalls>true</IncludePreviousCalls> <IncludeOnwardCalls>true</IncludeOnwardCalls> <IncludeOperatingDays>true</IncludeOperatingDays> <UseRealtimeData>full</UseRealtimeData> </Params> |
Params des StopEventDataFilters
Element | Kardinalität | Beschreibung | Beispiel |
PtModeFilter | 0:1 | Filter nach Mode. Element Exclude gibt an, ob die Modes ein- oder ausgeschlossen werden sollen.Es können 1:* Mode hinzugefügt werden.
Siehe PtModeFilter unter Trip Service |
<PtModeFilter> <Mode> <Exclude>true</Exclude> <PtMode>bus</PtMode> <siri:BusSubmode>localBusService</siri:BusSubmode> </Mode> </PtModeFilter> |
LineFilter | 0:1 | Filter nach Linie. Element Exclude gibt an, ob die Linien ein- oder ausgeschlossen werden sollen.Es können 1:* Line hinzugefügt werden.
|
<LineFilter> <Line> <siri:LineRef>sbb:91018:A</siri:LineRef> <siri:DirectionRef>H</siri:DirectionRef> </Line> <Exclude>true</Exclude> </LineFilter> |
OperatorFilter | 0:1 | Filter nach Betreiber. Element Exclude gibt an, ob die Betreiber ein- oder ausgeschlossen werden sollen.Es können 1:* OperatorRef hinzugefügt werden. |
<OperatorFilter> <Exclude>false</Exclude> <siri:OperatorRef>11</siri:OperatorRef> </OperatorFilter>
|
NumberOfResults | 0:1 | Anzahl Resultate |
<NumberOfResults>10</NumberOfResults> |
StopEventType | 0:1 | Typ der StopEvents:
|
<StopEventType>both</StopEventType> |
IncludePreviousCalls | 0:1 | Sollen für die einzelnen Fahrten die vorangehenden Halte auch angegeben werden? |
<IncludePreviousCalls>true</IncludePreviousCalls> |
IncludeOnwardCalls | 0:1 | Sollen für die einzelnen Fahrten die anschliessenden Halte auch angegeben werden? |
<IncludeOnwardCalls>true</IncludeOnwardCalls> |
IncludeOperatingDays | 0:1 | Sollen Betriebstaginformation für diesen StopEvent auch eingefügt werden? |
<IncludeOperatingDays>true</IncludeOperatingDays> |
UseRealtimeData | 0:1 | Bestimmt wie Realtime berücksichtigt wird, full = alles; explanatory = auch verspätete und gestrichene Verbindungen (ausführlichste Variante); none = nur gemäss Fahrplan. |
<UseRealtimeData>explanatory</UseRealtimeData> |
Response
Das empfangene Resultat ist eine OJPStopEventDelivery Meldung, bestehend aus dem TripResponseContext und den verschiedenen TripResults und sieht wie angeführt aus:
<OJP xmlns:siri="http://www.siri.org.uk/siri" xmlns="http://www.vdv.de/ojp" version="2.0">
<OJPResponse>
<siri:ServiceDelivery>
<siri:ResponseTimestamp>2025-02-14T18:03:51.3185811+01:00</siri:ResponseTimestamp>
<siri:ProducerRef>MENTZ</siri:ProducerRef>
<OJPStopEventDelivery>
<siri:ResponseTimestamp>2025-02-14T18:03:51.3185821+01:00</siri:ResponseTimestamp>
<siri:RequestMessageRef>c5c59047-5c59-4ade-b635-9c942a0125ec</siri:RequestMessageRef>
<siri:DefaultLanguage>de</siri:DefaultLanguage>
<CalcTime>42</CalcTime>
<StopEventResponseContext>
<Places>
<Place>
<StopPlace>
<StopPlaceRef>8591178</StopPlaceRef>
<StopPlaceName>
<Text xml:lang="de">Zürich, Hardturm</Text>
</StopPlaceName>
<TopographicPlaceRef>23026261:27</TopographicPlaceRef>
</StopPlace>
<Name>
<Text xml:lang="de">Zürich, Hardturm</Text>
</Name>
<GeoPosition>
<siri:Longitude>8.50455</siri:Longitude>
<siri:Latitude>47.39415</siri:Latitude>
</GeoPosition>
</Place>
<Place>
<StopPoint>
<siri:StopPointRef>ch:1:sloid:91178::0</siri:StopPointRef>
<StopPointName>
<Text xml:lang="de">Zürich, Hardturm</Text>
</StopPointName>
<ParentRef>8591178</ParentRef>
<TopographicPlaceRef>23026261:27</TopographicPlaceRef>
</StopPoint>
<Name>
<Text xml:lang="de">Zürich, Hardturm</Text>
</Name>
<GeoPosition>
<siri:Longitude>8.50455</siri:Longitude>
<siri:Latitude>47.39415</siri:Latitude>
</GeoPosition>
</Place>
<Place>
<TopographicPlace>
<TopographicPlaceCode>23026261:27</TopographicPlaceCode>
<TopographicPlaceName>
<Text xml:lang="de">Zürich</Text>
</TopographicPlaceName>
</TopographicPlace>
<Name>
<Text xml:lang="de">Zürich</Text>
</Name>
<GeoPosition>
<siri:Longitude>8.50455</siri:Longitude>
<siri:Latitude>47.39415</siri:Latitude>
</GeoPosition>
</Place>
<!-- ... -->
<Place>
<StopPoint>
<siri:StopPointRef>ch:1:sloid:91178::3</siri:StopPointRef>
<StopPointName>
<Text xml:lang="de">Zürich, Hardturm</Text>
</StopPointName>
<ParentRef>8591178</ParentRef>
<TopographicPlaceRef>23026261:27</TopographicPlaceRef>
</StopPoint>
<Name>
<Text xml:lang="de">Zürich, Hardturm</Text>
</Name>
<GeoPosition>
<siri:Longitude>8.50429</siri:Longitude>
<siri:Latitude>47.39473</siri:Latitude>
</GeoPosition>
</Place>
</Places>
<Situations/>
</StopEventResponseContext>
<StopEventResult>
<StopEvent>
<PreviousCall>
<CallAtStop>
<siri:StopPointRef>ch:1:sloid:91178::0</siri:StopPointRef>
<StopPointName>
<Text xml:lang="de">Zürich, Hardturm</Text>
</StopPointName>
<ServiceDeparture>
<TimetabledTime>2025-02-17T08:33:00Z</TimetabledTime>
</ServiceDeparture>
<Order>1</Order>
</CallAtStop>
</PreviousCall>
<!-- ... -->
<ThisCall>
<CallAtStop>
<siri:StopPointRef>ch:1:sloid:30813::0</siri:StopPointRef>
<StopPointName>
<Text xml:lang="de">Zürich, Kreuzplatz</Text>
</StopPointName>
<ServiceDeparture>
<TimetabledTime>2025-02-17T09:01:00Z</TimetabledTime>
</ServiceDeparture>
<Order>19</Order>
</CallAtStop>
</ThisCall>
<OnwardCall>
<CallAtStop>
<siri:StopPointRef>ch:1:sloid:91119::0</siri:StopPointRef>
<StopPointName>
<Text xml:lang="de">Zürich, Englischviertelstrasse</Text>
</StopPointName>
<ServiceArrival>
<TimetabledTime>2025-02-17T09:02:00Z</TimetabledTime>
</ServiceArrival>
<ServiceDeparture>
<TimetabledTime>2025-02-17T09:03:00Z</TimetabledTime>
</ServiceDeparture>
<Order>20</Order>
</CallAtStop>
</OnwardCall>
<!-- ... -->
<OnwardCall>
<CallAtStop>
<siri:StopPointRef>ch:1:sloid:91233::1</siri:StopPointRef>
<StopPointName>
<Text xml:lang="de">Zürich, Klusplatz</Text>
</StopPointName>
<PlannedQuay>
<Text xml:lang="de">B</Text>
</PlannedQuay>
<ServiceArrival>
<TimetabledTime>2025-02-17T09:06:00Z</TimetabledTime>
</ServiceArrival>
</CallAtStop>
</OnwardCall>
<Service>
<Mode>
<PtMode>tram</PtMode>
<siri:TramSubmode>cityTram</siri:TramSubmode>
<Name>
<Text xml:lang="de">Tram</Text>
</Name>
<ShortName>
<Text xml:lang="de">T</Text>
</ShortName>
</Mode>
<ConventionalModeOfOperation>scheduled</ConventionalModeOfOperation>
<TrainNumber>4619</TrainNumber>
<siri:LineRef>ojp:91008:H</siri:LineRef>
<siri:OperatorRef>3849</siri:OperatorRef>
<PublicCode>Tram</PublicCode>
<PublishedServiceName>
<Text xml:lang="de">8</Text>
</PublishedServiceName>
<ProductCategory>
<Name>
<Text xml:lang="de">Tram</Text>
</Name>
<ShortName>
<Text xml:lang="de">T</Text>
</ShortName>
<ProductCategoryRef>2</ProductCategoryRef>
</ProductCategory>
<siri:DirectionRef>H</siri:DirectionRef>
<JourneyRef>ch:1:sjyid:100648:plan:3183eb5d-c26c-4ef4-972d-c92c4416363a</JourneyRef>
<OperatingDayRef>2025-02-17</OperatingDayRef>
<Cancelled>false</Cancelled>
<Unplanned>false</Unplanned>
<Deviation>false</Deviation>
<Attribute>
<UserText>
<Text xml:lang="de">Niederflureinstieg</Text>
</UserText>
<Code>A__NF</Code>
</Attribute>
<OriginStopPointRef>ch:1:sloid:91178::0</OriginStopPointRef>
<DestinationStopPointRef>ch:1:sloid:91233::1</DestinationStopPointRef>
<OriginText>
<Text xml:lang="de">Zürich, Hardturm</Text>
</OriginText>
<DestinationText>
<Text xml:lang="de">Zürich, Klusplatz</Text>
</DestinationText>
</Service>
<OperatingDays>
<From>2025-02-02</From>
<To>2025-12-12</To>
<Pattern>01111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100011110011111000111000111110011111001111100111110011110001111100101110011111001111100111110010111001111000011110011111001111100111110011111001111100111110011111001111100111110011111</Pattern>
</OperatingDays>
</StopEvent>
</StopEventResult>
<!-- ... -->
</OJPStopEventDelivery>
</siri:ServiceDelivery>
</OJPResponse>
</OJP>
Die Antwort ist in einer OJPStopEventDelivery enthalten, welche wie folgt aufgebaut ist:
Element | Kardinalität | Beschreibung | Beispiel |
siri:ResponseTimestamp | 1:1 | Der timestamp der Antwort |
<siri:ResponseTimestamp>2020-04-03T14:47:59Z</siri:ResponseTimestamp> |
siri:RequesteMessageRef | 0:1 | Hier wird die Message referenziert, die angefragt wurde |
<siri:RequestMessageRef>756</siri:RequestMessageRef> |
siri:DeliveryStatus | 0:1 | Der Status der Antwort, true bedeutet, die Anfrage wurde bearbeitet. |
<siri:Status>true</siri:Status> |
CalcTime | 0:1 | Die Berechnungszeit in Millisekunden |
<CalcTime>139</CalcTime> |
StopEventResponseContext | 0:1 | Hier werden Referenzinformationen wie die verwendeten Haltestellen zurück geliefert.Siehe separate Tabelle | |
StopEventResult | 0:* | Die effektiven Resultate. Siehe Bespiel weiter oben. |
<StopEventResult> <StopEvent> <PreviousCall> <CallAtStop> <siri:StopPointRef>ch:1:sloid:91178::0</siri:StopPointRef> <StopPointName> <Text xml:lang="de">Zürich, Hardturm</Text> </StopPointName> <ServiceDeparture> <TimetabledTime>2025-02-17T08:33:00Z</TimetabledTime> </ServiceDeparture> <Order>1</Order> </CallAtStop> </PreviousCall> <!-- ... --> <ThisCall> <!-- ... --> </ThisCall> <!-- ... --> <OnwardCall> <!-- ... --> </OnwardCall> |
StopEventResult/Id | 1:1 | Die ID des Resultats |
<ResultId>ID-5194D714-33A5-48B0-8895-BDCBAB540958</ResultId> |
StopEventResult/StopEvent | 1:1 | Die einzelnen FahrtenSiehe separate Tabelle |
ReponseContextStucture
Struktur mit reisebezogenen Antwortkontexten, die Sammlungen von Orten und Situationen als folgende Elemente enthalten:
- Operators
- Places
- Situations
Element | Kardinalität | Beschreibung | Beispiel |
Operators | 0:1 | Struktur für Operator-Objekte. Nur Operator-Objekte, auf die in der Antwort verwiesen wird, sollten ausgegeben werden. | n/a |
Places | 0:1 | In der Struktur sollten nur die Platzierungsobjekte aufgenommen werden, auf die in der Antwort verwiesen wird. |
<Places> <Place> <StopPlace> <StopPlaceRef>8507000</StopPlaceRef> <StopPlaceName> <Text xml:lang="de">Bern</Text> </StopPlaceName> <TopographicPlaceRef>23006351:1</TopographicPlaceRef> </StopPlace> <Name> <Text xml:lang="de">Bern</Text> </Name> <GeoPosition> <siri:Longitude>7.43772</siri:Longitude> <siri:Latitude>46.94929</siri:Latitude> </GeoPosition> </Place> <!-- ... --> </Places> |
Situations | 0:1 | Struktur für SIRI SX-Situationsobjekte. Nur Situationen, auf die in der Antwort Bezug genommen wird, sollten ausgegeben werden. |
<Situations> <PtSituation> <siri:CreationTime>2024-10-24T08:46:00Z</siri:CreationTime> <siri:ParticipantRef>ski-ddip-out-sx_prod</siri:ParticipantRef> <siri:SituationNumber>ch:1:sstid:100001:57f8d406-b6f7-420d-9a03-46eb48a4de24-1</siri:SituationNumber> <siri:Version>7</siri:Version> <siri:Source> <siri:SourceType>directReport</siri:SourceType> </siri:Source> <siri:ValidityPeriod> <siri:StartTime>2025-02-02T21:30:00Z</siri:StartTime> <siri:EndTime>2025-12-08T04:55:00Z</siri:EndTime> </siri:ValidityPeriod> <siri:AlertCause>unknown</siri:AlertCause> <siri:Priority>3</siri:Priority> <siri:ScopeType>stopPoint</siri:ScopeType> <siri:Language>de</siri:Language> <siri:PublishingActions> <siri:PublishingAction> <siri:PublishAtScope> <siri:ScopeType>stopPoint</siri:ScopeType> <siri:Affects/> </siri:PublishAtScope> <siri:PassengerInformationAction> <siri:ActionRef/> <siri:RecordedAtTime>2024-10-24T08:46:00Z</siri:RecordedAtTime> <siri:Perspective>stopPoint</siri:Perspective> <siri:TextualContent> <siri:SummaryContent> <siri:SummaryText xml:lang="de">Der Bahnverkehr zwischen Bern und Olten ist eingeschränkt.</siri:SummaryText> </siri:SummaryContent> <siri:ReasonContent> <siri:ReasonText xml:lang="de">Der Grund dafür sind Bauarbeiten.</siri:ReasonText> </siri:ReasonContent> <siri:DurationContent> <siri:DurationText xml:lang="de">Die Einschränkung dauert von 02.02.2025, 22:30 bis 03.02.2025, 05:55. Die Einschränkung dauert von 04.05.2025, 22:30 bis 05.05.2025, 05:55. Die Einschränkung dauert von 15.06.2025 bis 20.06.2025, jeweils von 22:30 bis 05:55. Die Einschränkung dauert von 22.06.2025 bis 27.06.2025, jeweils von 22:30 bis 05:55. Die Einschränkung dauert von 27.07.2025, 22:30 bis 28.07.2025, 05:55. Die Einschränkung dauert von 21.09.2025 bis 26.09.2025, jeweils von 22:30 bis 05:55. Die Einschränkung dauert von 28.09.2025 bis 03.10.2025, jeweils von 22:30 bis 05:55. Die Einschränkung dauert von 07.12.2025, 22:30 bis 08.12.2025, 05:55.</siri:DurationText> </siri:DurationContent> </siri:TextualContent> </siri:PassengerInformationAction> </siri:PublishingAction> </siri:PublishingActions> </PtSituation> |
StopEventStruktur
Das StopEvent besteht aus:
- PreviousCall(s): Wenn Parameter gewählt
- ThisCall: Der aktuell ausgewählte Halt
- OnwardCall(s): Zukünftige Halte auf der Fahrt
- Service: Informationen zur Fahrt
Element | Kardinalität | Beschreibung | Beispiel |
PreviousCall | 0:* | Die PreviousCall sind die Halte vor demjenigen, der angefragt wurde.Alle Information ist in einem CallAtStop. Siehe entsprechenden Abschnitt |
<PreviousCall> <CallAtStop> <siri:StopPointRef>8591142</siri:StopPointRef> <StopPointName> <Text>Zürich, Friedhof Enzenbühl</Text> </StopPointName> <ServiceArrival> <TimetabledTime>2020-04-03T15:32:00Z</TimetabledTime> </ServiceArrival> <ServiceDeparture> <TimetabledTime>2020-04-03T15:32:00Z</TimetabledTime> </ServiceDeparture> <Order>2</Order> </CallAtStop> </PreviousCall> |
ThisCall | 1:1 | Dies ist der Halt, um den es im Request geht.Alle Information ist in einem CallAtStop. Siehe entsprechenden Abschnitt |
<ThisCall> <CallAtStop> <siri:StopPointRef>8530813</siri:StopPointRef> <StopPointName> <Text>Zürich Kreuzplatz</Text> </StopPointName> <ServiceArrival> <TimetabledTime>2020-04-03T15:40:00Z</TimetabledTime> </ServiceArrival> <ServiceDeparture> <TimetabledTime>2020-04-03T15:40:00Z</TimetabledTime> </ServiceDeparture> <Order>9</Order> </CallAtStop> </ThisCall> |
OnwardCall | 0:* | Der OnwardCall sind die Halte nach dem aktuellen Halt, der im Request angefragt wurde.Alle Information ist in einem CallAtStop. Siehe entsprechenden Abschnitt |
<OnwardCall> <CallAtStop> <siri:StopPointRef>8591049</siri:StopPointRef> <StopPointName> <Text>Zürich, Auzelg</Text> </StopPointName> <ServiceArrival> <TimetabledTime>2020-04-03T16:16:00Z</TimetabledTime> </ServiceArrival> <Order>34</Order> </CallAtStop> </OnwardCall> |
Service | 1:1 | Der Service ist die eigentliche Information zur ganzen Fahrt. |
<Service> <OperatingDayRef>2020-04-03</OperatingDayRef> <JourneyRef>ch:1:sjyid:100001:627-001</JourneyRef> <siri:LineRef>sbb:91011:A</siri:LineRef> <siri:DirectionRef>R</siri:DirectionRef> <Mode> <PtMode>tram</PtMode> <siri:TramSubmode>cityTram</siri:TramSubmode> <Name> <Text xml:lang="de">Tram</Text> </Name> </Mode> <PublishedLineName> <Text>11</Text> </PublishedLineName> <OperatorRef>sbb:3849</OperatorRef> <OriginStopPointRef>8591315</OriginStopPointRef> <OriginText> <Text xml:lang="de">Zürich, Rehalp</Text> </OriginText> <DestinationStopPointRef>8591049</DestinationStopPointRef> <DestinationText> <Text xml:lang="de">Zürich, Auzelg</Text> </DestinationText> </Service> |
OperatingDays | 0:1 | Die Gültigkeit der Angegebenen Fahrt und das Pattern, an welchen Tagen diese Verbindung suchgeführt |
<OperatingDays> <From>2025-02-02</From> <To>2025-12-12</To> <Pattern>01111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100011110011111000111000111110011111001111100111110011110001111100101110011111001111100111110010111001111000011110011111001111100111110011111001111100111110011111001111100111110011111</Pattern> </OperatingDays> |
OperatingDays/From | 1:1 | Beschreibung |
<From>2025-02-02</From> |
OperatingDays/To | 1:1 | Beschreibung |
<To>2025-12-12</To> |
OperatingDays/Pattern | 1:1 | Weitere Informationen, wie das Pattern zu interpretieren ist, befindet sich hier: Linien-Kalender |
<Pattern>01111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100011110011111000111000111110011111001111100111110011110001111100101110011111001111100111110010111001111000011110011111001111100111110011111001111100111110011111001111100111110011111</Pattern> |
CallAtStopStruktur
Element | Kardinalität | Beschreibung | Beispiel |
siri:StopPointRef | 1:1 | Die Haltestellennummer. Im Moment ist es noch eine DiDok-Nummer. Es kann sich auch um eine NeTEx-Id oder um ein SLOID handeln.Achtung: Sowohl Didok wie auch sloid können vorkommen. Mehr Infos. |
<siri:StopPointRef>8530813</siri:StopPointRef> |
StopPointName | 1:1 | Der Name der Haltestelle |
<StopPointName> <Text>Zürich Kreuzplatz</Text> </StopPointName> |
PlannedQuay | 0:1 | Der geplante Steig |
<PlannedQuay> <Text xml:lang="de">1</Text> </PlannedQuay> |
EstimatedQuay | 0:1 | Der aktuelle Steig, wenn vorhanden |
<EstimatedQuay> <Text xml:lang="de">1</Text> </EstimatedQuay |
ServiceArrival | 0:1 | Der erste Halt hat kein Arrival. |
<ServiceArrival> <TimetabledTime>2020-04-03T15:40:00Z</TimetabledTime> <EstimatedTime>2020-04-03T15:40:00Z</EstimatedTime> </ServiceArrival> |
ServiceDeparture | 0:1 | Der letzte Halt hat kein Departure. |
<ServiceDeparture> <TimetabledTime>2020-04-03T15:40:00Z</TimetabledTime> <EstimatedTime>2020-04-03T15:40:00Z</EstimatedTime> </ServiceDeparture> |
Order | 1:1 | Die Reihenfolge der Haltestellen |
<Order>9</Order>
|
RequestStop | 0:1 | Halt auf Verlangen. Boolean.Nicht implementiert, geplant für eine zukünftige Version. | n/a |
UnplannedStop | 0:1 | Halt, der laut Planung nicht vorgesehen war. Boolean.Nicht implementiert, geplant für eine zukünftige Version. | n/a |
NotServicedStop | 0:1 | Entgegen der Planung findet kein Halt statt (Ausfälle). |
<NotServicedStop>true</NotServicedStop> |
NoBoardingAtStop | 0:1 | Das Einsteigen ist an dieser Haltestelle nicht möglich. |
<NoBoardingAtStop>true</NoBoardingAtStop> |
NoAlightingAtStop | 0:1 | Das Aussteigen ist an dieser Haltestelle nicht möglich. |
<NoAlightingAtStop>true</NoAlightingAtStop> |
Die ContinousServiceStructure
Element | Kardinalität | Beschreibung | Beispiel |
OperatingDayRef | 1:1 | Der relevante Betriebstag |
<OperatingDayRef>2020-04-03</OperatingDayRef> |
JourneyRef | 1:1 | Die ID der Fahrt. |
<JourneyRef>ch:1:sjyid:100001:627-001</JourneyRef> |
siri:LineRef | 1:1 | Die ID der Linie: |
<siri:LineRef>ojp:91021:H</siri:LineRef> |
siri:DirectionRef | 0:1 | Die ID der Richtung. |
<siri:DirectionRef>R</siri:DirectionRef> |
Mode | 1:1 | Der Verkehrsmodus.Die Liste der Modi findet sich beim LocationInformationRequest |
<Mode> <PtMode>tram</PtMode> <siri:TramSubmode>cityTram</siri:TramSubmode> <Name> <Text xml:lang="de">Tram</Text> </Name> </Mode> |
PublishedLineName | 1:1 | Der veröffentlichte Name der Liste |
<PublishedLineName> <Text>11</Text> </PublishedLineNam |
OperatorRef | 0:1 | Die Referenz auf den Betreiber.Achtung: wird sich noch verändern. |
<siri:OperatorRef>11</siri:OperatorRef> |
Attribute | 0:* | Attribute sind Eigenschaften meist auf Fahrten. Z.B. Niederflurbus, Bar, Reservation notwendig.Mandataory ist true, wenn das Attribut dem Benutzer unbedingt angezeigt werden muss. |
<Attribute> <Text> <Text xml:lang="de">Linie 31: Niederflureinstieg</Text> <Text> <Code>30</Code> <Mandatory>false</Mandatory> </Attribute> |
OrginStopPointRef | 0:1 | Die Didok-Nummer des Startpunkts.Achtung: Die id wird sich noch verändern. |
<OriginStopPointRef>8591315</OriginStopPointRef> |
OriginText | 0:1 | Der Name der Starthaltestelle. |
<OriginText> <Text xml:lang="de">Zürich, Rehalp</Text> </OriginText> |
DestinationStopPointRef | 0:1 | Die DiDok-Nummer der/ Zielhaltestelle.Achtung: Die id wird sich noch verändern. |
<DestinationStopPointRef>8591049</DestinationStopPointRef> |
DestinationText | 0:1 | Der Name der Zielhaltestelle. |
<DestinationText> <Text xml:lang="de">Zürich, Auzelg</Text> </DestinationText> |
Unplanned | 0:1 | Gibt an, ob es sich um eine zusätzliche, nicht im regulären Fahrplan aufgeführte Fahrt handelt. Boolean. |
<Unplanned>true</Unplanned> |
Cancelled | 0:1 | Ausfall einer Fahrt. Boolean. |
<Cancelled>true</Cancelled> |
Deviation | 0:1 | Gibt an, ob die Fahrt nicht gemäss dem Fahrplan ausgeführt wird.Geplant für eine zukünftige Version | n/a |
BookingArrangements | 0:1 | Das Feature wird nicht unterstützt. | n/a |
ParticipantRef | 1:1 | Dient zur Kommunikation von Störungen oder sonstigen aussergewöhnlichen Situationen.Geplant für eine zukünftige Version | n/a |
siri:SituationNumber | 1:1 | Dient zur Kommunikation von Störungen oder sonstigen aussergewöhnlichen Situationen.Geplant für eine zukünftige Version | n/a |
Weiterführende Angaben
Echtzeit
Wichtige Konzepte:
- Betriebstage: Tage an denen ein Zug verkehrt. Kann im Endeffekt mehr als 24h dauern. Notation allerdings DD-MM-YYYY als OperatingDays z.B. im Service/Mode.
- Zulu-Zeit: Entspricht der UTC-Zeit und wird so angegeben 2025-02-02T11:24:00Z, ansonsten dann ebenfalls also ISO 8601 Zeitangabe mit Zeitzonen-Abweichung 2025-02-02T09:24:00+0200. In der UTC-Zeit gibt es keine Sommerzeitumstellung. Ausgabe von Sekundenbruchteilen sind insbesondre bei Zeitstempel üblich.
- Hysterese: Im Bereich der Kundeninformation werden nur Änderungen weitergeleitet, die eine gewisse Grösse überschreiten. Dies geschieht mittels Hysterese. D.h. die Verspätungen werden nicht gepollt, sondern erst ab einer gewissen Änderung weitergeleitet. Abweichungen werden in 1/10 Minuten kommuniziert.
Echtzeit oder auch Realtime wird jeweils nur für den aktuellen Betriebstag ausgegeben. Die Abweichung wird jeweils in Bezug auf die StopPointRef angegeben, welches auch dem im Fahrplan vorhandenen Element entspricht, während eine StopPlaceRef einen Punkt in einem Bahnhof referenziert. In der Schweiz werden jeweils identische IDs für StopPointRef und StopPlaceRef verwendet.
Hier ein Beispiel mit Echtzeit anhand eines “CallAtStop”. Das gleiche Konzept kann auf alle Stellen im OJP angewendet werden, wo Abweichungen zum Fahrplan ausgegeben werden:
<CallAtStop>
<siri:StopPointRef>ch:1:sloid:91128::0</siri:StopPointRef>
<StopPointName>
<Text xml:lang="de">Zürich, Fernsehstudio</Text>
</StopPointName>
<ServiceArrival>
<TimetabledTime>2025-02-17T13:06:18Z</TimetabledTime>
<EstimatedTime>2025-02-17T13:05:54Z</EstimatedTime>
</ServiceArrival>
<ServiceDeparture>
<TimetabledTime>2025-02-17T13:06:30Z</TimetabledTime>
<EstimatedTime>2025-02-17T13:06:00Z</EstimatedTime>
</ServiceDeparture>
<Order>2</Order>
</CallAtStop>
Die Diskrepanz zwischen der “TimetabledTime” und der “EstimatedTime” ist die Abweichung der Echtzeit zum Fahrplan, diese wird auch angegeben wenn es sich z.B. um eine frühere Ankunft handelt. Deshalb ist es sinnvoll, Logik für die Ausgabe der Abweichung zu implementieren, so dass nur für den Kunden relevante Abweichung, wie eine Verspätung, ausgegeben werden.
Autotunnelzüge
<OJP xmlns="http://www.vdv.de/ojp" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xsi:schemaLocation="http://www.vdv.de/ojp" version="2.0">
<OJPRequest>
<siri:ServiceRequest>
<siri:ServiceRequestContext>
<siri:Language>de</siri:Language>
</siri:ServiceRequestContext>
<siri:RequestTimestamp>2025-02-17T08:03:02.813Z</siri:RequestTimestamp>
<siri:RequestorRef>SKIPlus_ATZ</siri:RequestorRef>
<OJPStopEventRequest>
<siri:RequestTimestamp>2025-02-17T08:03:02.813Z</siri:RequestTimestamp>
<Location>
<PlaceRef>
<siri:StopPointRef>8511171</siri:StopPointRef>
<Name>
<Text>Kandersteg Autoverlad</Text>
</Name>
</PlaceRef>
</Location>
<Params>
<IncludeAllRestrictedLines>true</IncludeAllRestrictedLines>
<NumberOfResults>10</NumberOfResults>
<StopEventType>departure</StopEventType>
<IncludePreviousCalls>true</IncludePreviousCalls>
<IncludeOnwardCalls>true</IncludeOnwardCalls>
<UseRealtimeData>full</UseRealtimeData>
</Params>
</OJPStopEventRequest>
</siri:ServiceRequest>
</OJPRequest>
</OJP>
Grossraumprofile (bei der BLS) sind anhand des GF-Attributs erkennbar:
<Attribute>
<Text>
<Text xml:lang="de">Grossraumprofil</Text>
</Text>
<Code>A__GF</Code>
</Attribute>