OJPTripRefineRequest 2.0

#AutoTranslate

Descrizione breve

Con TripRefineRequest è possibile aggiornare una corsa che in precedenza è stata trovata con una TripRequest. È possibile aggiornare l’intero viaggio o anche solo singole tratte del viaggio. TripRefineRequest viene utilizzato in particolare per interrogare gli orari di arrivo e partenza modificati.

Descrizione tecnica

API Explorer

Puoi personalizzare le richieste a tuo piacimento e provare i modelli nell’API Open – link diretto all’API Explorer.

TripRefineRequest

Le informazioni centrali per inviare una TripRefineRequest sono l’ID di Trip, la TimetabledTime e siri:StopPointRef e qualche altro paio di campi in dettaglio sotto. Maggiori dettagli sulla struttura di una TripRefineRequest sono riportati nella descrizione del TripRefineRequests presso VDV dall’utente. Ecco un esempio di TripRefineRequest conforme a XSD:

<?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>

Il sistema è in grado di attribuire correttamente un Trip anche con un numero leggermente inferiore di informazioni. Ecco un esempio di TripRefineRequest non conforme a XSD, ma che funziona anch’esso:

<?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>

Nel secondo esempio i seguenti parametri sono stati omessi: Anche tutti i «RefineParams», «Duration», «StartTime», «EndTime», i «Transfers», tutti gli «StopPointName» presenti, «PublishedServiceName» e il parametro «Mode» possono essere vuoti. Tutti questi parametri non vengono utilizzati per trovare la corsa corretta e richiedere i dati aggiornati.

Descrizione dei parametri

Gli elementi della OJPTripRefineRequestStructure:

Elemento Cardinalità Descrizione Esempio
siri:RequestTimestamp 1:1 Timestamp della richiesta. Preferito in Zulu Time.
<siri:RequestTimestamp>2025-02-18T15:41:28.717Z</siri:RequestTimestamp>
siri:MessageIdentifier 0:1 L’identificativo della segnalazione. Preferibilmente di tipo crescente.
<siri:MessageIdentifier>SER-1a</siri:MessageIdentifier>
RefineParams 0:1 Opzioni per gestire l’aggiornamento.
<RefineParams>
TripResult 1:1 Il Trip da aggiornare (perfezionare). Esempio, vedere sopra!
TripResponseContext 0:1 Contesto che contiene oggetti a cui si fa riferimento all’interno della risposta.

RefineParams/ RefineLegRef 0:* Si riferisce alle leg che devono essere perfezionate dal server. Se non vengono specificate, tutte le leg vengono perfezionate (se il sistema in questione è in grado di perfezionarle).

RefineParams/ UseRealtimeData 0:1 Determina come viene preso in considerazione il tempo reale, full = tutto; explanatory = anche collegamenti in ritardo e cancellati (variante più dettagliata); none = solo secondo l’orario. <UseRealtimeData>explanatory</UseRealtimeData>
RefineParams/ IncludePlacesContext 0:1 Fornisce il contesto locale. L’impostazione predefinita è true, con false la risposta è più snella. <IncludePlacesContext>false</InlcudePlacesContext>
RefineParams/ IncludeLegProjection 0:1 Se il risultato deve includere la proiezione geografica (coordinate) delle singole tratte parziali. <IncludeLegProjection>true</IncludeLegProjection>
RefineParams/ IncludeIntermediateStops 0:1 Se il risultato deve includere fermate intermedie tra la fermata di salita e quella di discesa. <IncludeIntermediateStops>true</IncludeIntermediateStops>
RefineParams/ IncludeAllRestrictedLines 0:1 Potrebbero esserci linee con restrizioni particolari e non aperte al pubblico. Ad esempio scuolabus o navette aziendali. Impostando questo segno di spunta, il router prenderà in considerazione anche linee limitate. <IncludeAllRestrictedLines>true</IncludeAllRestrictedLines>
RefineParams/ IncludeTurnDescription 0:1 Una descrizione dettagliata del percorso con PathGuidance viene fornita per ogni walk-in e, se disponibile, anche per i transfer-legs. <IncludeTurnDescription>true</IncludeTurnDescription>

Altri parametri che hanno un effetto limitante sui mezzi di trasporto o sull’itinerario di viaggio non sono stati implementati. Viene solamente aggiornato il viaggio richiesto. Per questo motivo, altri parametri non menzionati sono inefficaci.

TripRefineResponse

I dettagli dei singoli parametri possono essere desunti dalle descrizioni riportate nella sezione Trip Request vengono prelevati, che TripRefineDelivery è in gran parte identica al Trip Delivery.