OJPStopEventRequest 2.0

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:

ElementKardinalitätBeschreibungBeispiel
RequestTimestamp1:1Timestamp der Anfrage. Bevorzugt in Zulu Time.
<siri:RequestTimestamp>2025-02-11T14:11:26.795Z</siri:RequestTimestamp>
MessageIdentifier0:1Der 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/PlaceRef0:1Am 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/DepArrTime0:1Die 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/TimeAllowance0:1Zusä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/IndividualTransportOptions0:*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>

 

/Params0:1die Parameter
<Params>
	<StopEventType>both</StopEventType>
	<IncludePreviousCalls>true</IncludePreviousCalls>
	<IncludeOnwardCalls>true</IncludeOnwardCalls>
	<IncludeOperatingDays>true</IncludeOperatingDays>
	<UseRealtimeData>full</UseRealtimeData>
</Params>

Params des StopEventDataFilters

ElementKardinalitätBeschreibungBeispiel
PtModeFilter0:1Filter 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>
LineFilter0:1Filter 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>
OperatorFilter0:1Filter 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>

 

NumberOfResults0:1Anzahl Resultate
<NumberOfResults>10</NumberOfResults>
StopEventType0:1Typ der StopEvents:

  • arrival
  • departure
  • both
<StopEventType>both</StopEventType>
IncludePreviousCalls0:1Sollen für die einzelnen Fahrten die vorangehenden Halte auch angegeben werden?
<IncludePreviousCalls>true</IncludePreviousCalls>
IncludeOnwardCalls0:1Sollen für die einzelnen Fahrten die anschliessenden Halte auch angegeben werden?
<IncludeOnwardCalls>true</IncludeOnwardCalls>
IncludeOperatingDays0:1Sollen Betriebstaginformation für diesen StopEvent auch eingefügt werden?
<IncludeOperatingDays>true</IncludeOperatingDays>
UseRealtimeData0:1Bestimmt 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:

ElementKardinalitätBeschreibungBeispiel
siri:ResponseTimestamp1:1Der timestamp der Antwort
<siri:ResponseTimestamp>2020-04-03T14:47:59Z</siri:ResponseTimestamp>
siri:RequesteMessageRef0:1Hier wird die Message referenziert, die angefragt wurde
<siri:RequestMessageRef>756</siri:RequestMessageRef>
siri:DeliveryStatus0:1Der Status der Antwort, true bedeutet, die Anfrage wurde bearbeitet.
<siri:Status>true</siri:Status>
CalcTime0:1Die Berechnungszeit in Millisekunden
<CalcTime>139</CalcTime>
StopEventResponseContext0:1Hier werden Referenzinformationen wie die verwendeten Haltestellen zurück geliefert.Siehe separate Tabelle
StopEventResult0:*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/Id1:1Die ID des Resultats
<ResultId>ID-5194D714-33A5-48B0-8895-BDCBAB540958</ResultId>
StopEventResult/StopEvent1:1Die einzelnen FahrtenSiehe separate Tabelle

ReponseContextStucture

Struktur mit reisebezogenen Antwortkontexten, die Sammlungen von Orten und Situationen als folgende Elemente enthalten:

  • Operators
  • Places
  • Situations
ElementKardinalitätBeschreibungBeispiel
Operators0:1Struktur für Operator-Objekte. Nur Operator-Objekte, auf die in der Antwort verwiesen wird, sollten ausgegeben werden.n/a
Places0:1In 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>
Situations0:1Struktur 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
ElementKardinalitätBeschreibungBeispiel
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>
ThisCall1:1Dies 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>
OnwardCall0:*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>
Service1:1Der 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>
OperatingDays0:1Die 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/From1:1Beschreibung
<From>2025-02-02</From>
OperatingDays/To1:1Beschreibung
<To>2025-12-12</To>
OperatingDays/Pattern1:1Weitere Informationen, wie das Pattern zu interpretieren ist, befindet sich hier: Linien-Kalender
<Pattern>01111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100111110011111001111100011110011111000111000111110011111001111100111110011110001111100101110011111001111100111110010111001111000011110011111001111100111110011111001111100111110011111001111100111110011111</Pattern>

CallAtStopStruktur

 

ElementKardinalitätBeschreibungBeispiel
siri:StopPointRef1:1Die 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>
StopPointName1:1Der Name der Haltestelle
<StopPointName>
    <Text>Zürich Kreuzplatz</Text>
</StopPointName>
PlannedQuay0:1Der geplante Steig
<PlannedQuay>
    <Text xml:lang="de">1</Text>
</PlannedQuay>
EstimatedQuay0:1Der aktuelle Steig, wenn vorhanden
<EstimatedQuay>
    <Text xml:lang="de">1</Text>
</EstimatedQuay
ServiceArrival0:1Der erste Halt hat kein Arrival.
<ServiceArrival>
    <TimetabledTime>2020-04-03T15:40:00Z</TimetabledTime>
    <EstimatedTime>2020-04-03T15:40:00Z</EstimatedTime>
</ServiceArrival>
ServiceDeparture0:1Der letzte Halt hat kein Departure.
<ServiceDeparture>
    <TimetabledTime>2020-04-03T15:40:00Z</TimetabledTime>
    <EstimatedTime>2020-04-03T15:40:00Z</EstimatedTime>
</ServiceDeparture>
Order1:1Die Reihenfolge der Haltestellen
<Order>9</Order>

 

RequestStop0:1Halt auf Verlangen. Boolean.Nicht implementiert, geplant für eine zukünftige Version.n/a
UnplannedStop0:1Halt, der laut Planung nicht vorgesehen war. Boolean.Nicht implementiert, geplant für eine zukünftige Version.n/a
NotServicedStop0:1Entgegen der Planung findet kein Halt statt (Ausfälle).
<NotServicedStop>true</NotServicedStop>
NoBoardingAtStop0:1Das Einsteigen ist an dieser Haltestelle nicht möglich.
<NoBoardingAtStop>true</NoBoardingAtStop>
NoAlightingAtStop0:1Das Aussteigen ist an dieser Haltestelle nicht möglich.
<NoAlightingAtStop>true</NoAlightingAtStop>

Die ContinousServiceStructure

ElementKardinalitätBeschreibungBeispiel
OperatingDayRef1:1Der relevante Betriebstag
<OperatingDayRef>2020-04-03</OperatingDayRef>
JourneyRef1:1Die ID der Fahrt.
<JourneyRef>ch:1:sjyid:100001:627-001</JourneyRef>
siri:LineRef1:1Die ID der Linie:
<siri:LineRef>ojp:91021:H</siri:LineRef>
siri:DirectionRef0:1Die ID der Richtung.
<siri:DirectionRef>R</siri:DirectionRef>
Mode1:1Der 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>
PublishedLineName1:1Der veröffentlichte Name der Liste
<PublishedLineName>
    <Text>11</Text>
</PublishedLineNam
OperatorRef0:1Die Referenz auf den Betreiber.Achtung: wird sich noch verändern.
<siri:OperatorRef>11</siri:OperatorRef>
Attribute0:*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>
OrginStopPointRef0:1Die Didok-Nummer des Startpunkts.Achtung: Die id wird sich noch verändern.
<OriginStopPointRef>8591315</OriginStopPointRef>
OriginText0:1Der Name der Starthaltestelle.
<OriginText>
    <Text xml:lang="de">Zürich, Rehalp</Text>
</OriginText>
DestinationStopPointRef0:1Die DiDok-Nummer der/ Zielhaltestelle.Achtung: Die id wird sich noch verändern.
<DestinationStopPointRef>8591049</DestinationStopPointRef>
DestinationText0:1Der Name der Zielhaltestelle.
<DestinationText>
    <Text xml:lang="de">Zürich, Auzelg</Text>
</DestinationText>
Unplanned0:1Gibt an, ob es sich um eine zusätzliche, nicht im regulären Fahrplan aufgeführte Fahrt handelt. Boolean.
<Unplanned>true</Unplanned>
Cancelled0:1Ausfall einer Fahrt. Boolean.
<Cancelled>true</Cancelled>
Deviation0:1Gibt an, ob die Fahrt nicht gemäss dem Fahrplan ausgeführt wird.Geplant für eine zukünftige Versionn/a
BookingArrangements0:1Das Feature wird nicht unterstützt.n/a
ParticipantRef1:1Dient zur Kommunikation von Störungen oder sonstigen aussergewöhnlichen Situationen.Geplant für eine zukünftige Versionn/a
siri:SituationNumber1:1Dient zur Kommunikation von Störungen oder sonstigen aussergewöhnlichen Situationen.Geplant für eine zukünftige Versionn/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>