Feature Plan - Help NeTEx consumers to skip unchanged resources

Feature Plan - Help NeTEx consumers to skip unchanged resources

Provide timestamps for each NeTEx resource

IN PRODUCTION

The Chouette NeTEx export uses the internal model timestamp to define the NeTex changed/created attribute on (almost) all export NeTEx resources:

<Line id=".." created="2019-11-01T19:54:58Z" changed="2024-10-13T10:14:19Z" ...> <Route id=".." created="2019-11-23T11:42:29Z" changed="2019-11-23T11:42:29Z" ...> <ServiceJourneyPattern id="..." created="2022-10-02T13:26:38Z" changed="2022-10-02T16:20:07Z" ...> <ServiceJourney id="..." created="2019-11-23T11:42:29Z" changed="2019-11-23T11:42:29Z" ...> <DayType id="..." created="2019-12-06T15:28:15Z" changed="2020-04-23T09:33:31Z" ...> <Operator id="..." created="2024-08-14T07:31:51Z" changed="2024-10-13T10:14:11Z" ...> <StopPlace id="..." created="2021-03-09T21:04:40Z" changed="2022-09-01T19:29:33Z" ...> <Quay id="..." created="2021-03-09T21:04:30Z" changed="2022-09-01T19:29:57Z" ...>

These attributes can help the NeTex consumers to skip unchanged NeTEx resources since their last NeTEx processing.

Provide last change in NeTEx Frame

For each NeTEx Frame, the Chouette NeTEx export adds a changed attribute with the latest/maximum changed/created timestamp of any NeTEx resource contained in this Frame

<GeneralFrame id="FR:GeneralFrame:NETEX_LIGNE-AB:LOC" changed="2024-10-13T10:14:19Z"> <TypeOfFrameRef ref="FR:TypeOfFrame:NETEX_LIGNE:"/> <members> <Line id="..." created="2019-11-01T19:54:58Z" changed="2024-10-13T10:14:19Z" version="any"> <!-- ... --> </Line> <Route id="..." created="2019-11-23T11:42:29Z" changed="2019-11-23T11:42:29Z" version="any"> <!-- ... --> </Route> <members> </GeneralFrame>

When a CompositeFrame is present, its changed attribute is the latest/maximum changed timestamp of inner frames:

<CompositeFrame id="enRoute:CompositeFrame:1" changed="2024-10-13T10:14:19Z" version="any"> <SiteFrame id="enRoute:SiteFrame:1" changed="2022-09-01T19:29:33Z" version="any"> <stopPlaces> <StopPlace id="FUR_CREEK_RES" created="2019-11-01T19:54:58Z" changed="2022-09-01T19:29:33Z" version="any"> <!-- ... --> </StopPlace> </stopPlaces> </SiteFrame> <TimetableFrame id="enRoute:TimetableFrame:1" changed="2024-10-13T10:14:19Z" version="any"> <vehicleJourneys> <ServiceJourney id="AAMV1" created="2019-11-01T19:54:58Z" changed="2024-10-13T10:14:19Z" version="any"> <!-- ... --> </ServiceJourney> </vehicleJourneys> </TimetableFrame> </CompositeFrame>

These attributes can help the NeTex consumers to skip whole NeTEx Frames (and so entire files) when no inner resource has been changed since their last NeTEx processing.