OJPTripRefineRequest 2.0

#AutoTranslate

Kurzbeschreibung

Mit dem TripRefineRequest kann ein Trip welcher vorgängig mit einem TripRequest gefunden wurde, aktualisiert werden. Es können jeweils der ganze Trip oder auch nur einzelne “Legs” vom Trip aktualisiert werden. Der TripRefineRequest wird insbesondere um sich ändernde Ankunfts- und Abfahrtszeiten abzufragen genutzt.

Technische Beschreibung

API-Explorer

Sie können Requests nach eigenen Wünschen anpassen und dazu die Vorlagen in der Open-API ausprobieren – direkter Link zum API-Explorer.

TripRefineRequest

Die zentrale Information, um einen TripRefineRequest zu senden sind die Trip-ID, die TimetabledTime und siri:StopPointRef und noch ein paar weiter Felder, die unten im Detail angegeben sind. Weitere Details zum Aufbau eines TripRefineRequest können der Beschreibung des TripRefineRequests beim VDV entnommen werden. Hier ein Beispiel für einen XSD konformen TripRefineRequest:

<?xml version="1.0" encoding="UTF-8"?>
<OJP xmlns="http://www.vdv.de/ojp" xmlns:siri="http://www.siri.org.uk/siri" version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/ojp OJP_changes_for_v1.1/OJP.xsd">
	<OJPRequest>
		<siri:ServiceRequest>
			<siri:RequestTimestamp>2025-01-16T15:32:24.500Z</siri:RequestTimestamp>
			<siri:RequestorRef>SKIPlusRegTests</siri:RequestorRef>
			<OJPTripRefineRequest xmlns="http://www.vdv.de/ojp" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/ojp OJP_changes_for_v1.1/OJP.xsd">
				<siri:RequestTimestamp>2025-01-16T15:32:24.500Z</siri:RequestTimestamp>
				<siri:MessageIdentifier>TRR-1</siri:MessageIdentifier>
				<RefineParams>
					<RefineLegRef/>
					<IncludeIntermediateStops>true</IncludeIntermediateStops>
				</RefineParams>
				<TripResult>
					<Id>ID-6F1F1CE3-AD63-44EA-82D7-72B1B5A1A9FA</Id>
					<Trip>
						<Id>ID-6F1F1CE3-AD63-44EA-82D7-72B1B5A1A9FA</Id>
						<Duration>PT55M6S</Duration>
						<StartTime>2025-04-15T05:26:30Z</StartTime>
						<EndTime>2025-04-15T06:21:36Z</EndTime>
						<Transfers>0</Transfers>
						<Leg>
							<Id>1</Id>
							<TimedLeg>
								<LegBoard>
									<siri:StopPointRef>ch:1:sloid:6208:2:3</siri:StopPointRef>
									<StopPointName>
										<Text xml:lang="de">Uzwil</Text>
									</StopPointName>
									<ServiceDeparture>
										<TimetabledTime>2025-04-15T05:25:00Z</TimetabledTime>
									</ServiceDeparture>
								</LegBoard>
								<LegAlight>
									<siri:StopPointRef>ch:1:sloid:3000:500:32</siri:StopPointRef>
									<StopPointName>
										<Text xml:lang="de">Zürich</Text>
									</StopPointName>
									<ServiceArrival>
										<TimetabledTime>2025-04-15T06:21:00Z</TimetabledTime>
									</ServiceArrival>
								</LegAlight>
								<Service>
									<OperatingDayRef>2025-04-15</OperatingDayRef>
									<JourneyRef>ch:1:sjyid:100001:710-001</JourneyRef>
									<siri:LineRef>ojp:91001:D</siri:LineRef>
									<siri:DirectionRef>H</siri:DirectionRef>
									<Mode>
										<PtMode>rail</PtMode>
									</Mode>
									<ProductCategory>
										<ProductCategoryRef>23</ProductCategoryRef>
									</ProductCategory>
									<PublishedServiceName>
										<Text>IC1</Text>
									</PublishedServiceName>
								</Service>
							</TimedLeg>
						</Leg>
					</Trip>
				</TripResult>
			</OJPTripRefineRequest>
		</siri:ServiceRequest>
	</OJPRequest>
</OJP>

Das System kann auch mit etwas weniger Informationen bereits einen Trip korrekt zuordnen, hier ein Beispiel TripRefineRequest, welcher nicht XSD konform ist, aber ebenfalls funktioniert:

<?xml version="1.0" encoding="UTF-8"?>
<OJP xmlns="http://www.vdv.de/ojp" xmlns:siri="http://www.siri.org.uk/siri" version="2.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/ojp OJP_changes_for_v1.1/OJP.xsd">
	<OJPRequest>
		<siri:ServiceRequest>
			<siri:RequestTimestamp>2025-01-16T15:32:24.500Z</siri:RequestTimestamp>
			<siri:RequestorRef>SKIPlusRegTests</siri:RequestorRef>
			<OJPTripRefineRequest xmlns="http://www.vdv.de/ojp" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.vdv.de/ojp OJP_changes_for_v1.1/OJP.xsd">
				<siri:RequestTimestamp>2025-01-16T15:32:24.500Z</siri:RequestTimestamp>
				<siri:MessageIdentifier>TRR-1</siri:MessageIdentifier>
				<TripResult>
					<Trip>
						<Id>ID-6F1F1CE3-AD63-44EA-82D7-72B1B5A1A9FA</Id>
						<Leg>
							<Id>1</Id>
							<TimedLeg>
								<LegBoard>
									<siri:StopPointRef>ch:1:sloid:6208:2:3</siri:StopPointRef>
									<ServiceDeparture>
										<TimetabledTime>2025-04-15T05:25:00Z</TimetabledTime>
									</ServiceDeparture>
								</LegBoard>
								<LegAlight>
									<siri:StopPointRef>ch:1:sloid:3000:500:32</siri:StopPointRef>
									<ServiceArrival>
										<TimetabledTime>2025-04-15T06:21:00Z</TimetabledTime>
									</ServiceArrival>
								</LegAlight>
								<Service>
									<OperatingDayRef>2025-04-15</OperatingDayRef>
									<JourneyRef>ch:1:sjyid:100001:710-001</JourneyRef>
									<siri:LineRef>ojp:91001:D</siri:LineRef>
									<siri:DirectionRef>H</siri:DirectionRef>
									<Mode/>
									<ProductCategory>
										<ProductCategoryRef>23</ProductCategoryRef>
									</ProductCategory>
								</Service>
							</TimedLeg>
						</Leg>
					</Trip>
				</TripResult>
			</OJPTripRefineRequest>
		</siri:ServiceRequest>
	</OJPRequest>
</OJP>

Folgende Parameter wurden beim zweiten Beispiel weggelassen: Sämtliche “RefineParams”, die “Duration”, die “StartTime”, die “EndTime”, die “Transfers”, alle vorkommenden “StopPointName”, die “PublishedServiceName” und der Parameter “Mode” kann ebenfalls leer sein. Alle diese Parameter werden für das auffinden des korrekten Trips, um die aktuellen Daten abzufragen, nicht verwendet.

Beschreibung der Parameter

Die Elemente der OJPTripRefineRequestStructure:

ElementKardinalitätBeschreibungBeispiel
siri:RequestTimestamp1:1Timestamp der Anfrage. Bevorzugt in Zulu Time.
<siri:RequestTimestamp>2025-02-18T15:41:28.717Z</siri:RequestTimestamp>
siri:MessageIdentifier0:1Der Identifier der Meldung. Bevorzugt stetig steigend.
<siri:MessageIdentifier>SER-1a</siri:MessageIdentifier>
RefineParams0:1Optionen um die Aktualisierung zu steuern.
<RefineParams>
TripResult1:1Der Trip, welcher aktualisiert (refined) werden soll.Beispiel, siehe oben!
TripResponseContext0:1Kontext, der Objekte enthält, auf die innerhalb der Antwort referenziert wird.

RefineParams/ RefineLegRef0:*Bezieht sich auf die Legs, die vom Server verfeinert werden sollen. Sind keine angegeben, werden alle Legs verfeinert (sofern das betreffende System sie verfeinern kann).

RefineParams/ 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>
RefineParams/ IncludePlacesContext0:1Liefert den Ortskontext mit. Default ist true, mit false fällt die Antwort schlanker aus.<IncludePlacesContext>false</InlcudePlacesContext>
RefineParams/ IncludeLegProjection0:1Ob das Ergebnis die geografische Projektion (Koordinaten) der einzelnen Teilstrecken beinhalten soll.<IncludeLegProjection>true</IncludeLegProjection>
RefineParams/ IncludeIntermediateStops0:1Ob Zwischenhalte, zwischen Einstiegs- und Ausstiegshaltestelle, im Ergebnis enthalten sein sollen.<IncludeIntermediateStops>true</IncludeIntermediateStops>
RefineParams/ IncludeAllRestrictedLines0:1Es könnte Linien geben, die besondere Einschränkungen haben und nicht allgemein für die Öffentlichkeit zugänglich sind. Zum Beispiel Schulbusse oder Firmenshuttles. Wenn dieses Flag gesetzt ist, berücksichtigt der Router auch eingeschränkte Linien.<IncludeAllRestrictedLines>true</IncludeAllRestrictedLines>
RefineParams/ IncludeTurnDescription0:1Eine detaillierte Wegbeschreibung mit PathGuidance wird für jedes Walk- und wenn vorhanden auch für Transfer-Legs ausgegeben.<IncludeTurnDescription>true</IncludeTurnDescription>

Weitere Parameter die auf Transportmittel oder die Reiseroute eine einschränkende Wirkung haben wurden nicht implementiert. Es wird lediglich die angefragte Reise aktualisiert. Deshalb sind weitere hier nicht erwähnten Parameter ohne Effekt.

TripRefineResponse

Die Details der einzelnen Parameter können den Beschreibungen beim TripRequest entnommen werden, die TripRefineDelivery ist grösstenteils identisch mit der TripDelivery.