Derivation of ServiceJourney
In the Transmodel standard, ServiceJourney comes from VehicleJourney. It comes from Journey in NETEX, while it receives almost all members in VehicleJourney except VehicleJourneyPartsGroup is not one-to-one, but only partially. Except for TrainComponentLabelAssignment, all other elements are found in ServiceJourney, although they are grouped in other groups (eg. parts, timeDemandTypes). Why is this so depicted?
This is Transmodel 6 SERVICE JOURNEY ... so that looks similar to NeTEx no ?
In the netex_serviceJourney_version.xsd file, the ServiceJourney_VersionStructure derived from Journey_VersionStructure, instead of VehicleJourney_VersionStructure. Look at the DeadRun_VersionStructure, that's right. Below is a snippet of the file.
<xsd:complexType name="ServiceJourney_VersionStructure"> xsd:annotation xsd:documentationData type for a planned VEHICLE JOURNEY (Production Timetable Service).</xsd:documentation> </xsd:annotation> xsd:complexContent <xsd:extension base="Journey_VersionStructure"> <xsd:group ref="ServiceJourneyGroup"/> </xsd:extension> </xsd:complexContent> </xsd:complexType>
I agree the implementation is untidy. It is one of several places where mapping Transmodel entities to a XML single inheritance type hierarchy for NeTEx is problematic, especially if you consider the attributes (which Transmodel doesn't usually have to bother about) . The different concrete journeys (SERVICE JOURNEY, DEAD RUN, TEMPLATE SERVICE JOURNEY , SPECIAL SERVICE have different mixtures of properties and behaviour (e.g. timings, journey patterns, etc). Normally we try to create an XML group for each of the addition "Mixed in" traits. In this case, partly because Template journeys were an afterthought, the properties have got spread around, It would have helped a bit if we had though to introduced anadditional abstract concept "Timed journey" - but we cant really clean up now without some breakage.
Journey VehicleJourney TemplateServiceJournuney [TimedJourney] ServiceJourney TemplateServiceJourney DeadRun SpecialService
@Aurige This probably should be dealt with in the NWI. At least the problem needs to be documented somewhere. PS: This gives a real boost to the OJP TimedLeg discussion ;-)
Part 2 document updated