Skip to content

Commit

Permalink
Changes to booking arrangement (#525)
Browse files Browse the repository at this point in the history
* Changes to BookingArrangement

Answers to #216
Allow Multiple booking arrangements
BookingURL is now an InfoLink (allow for deep links and specififty of ios, android ...)

* Lint and update documentation tables

* BookingArrangement as first class object

Set of changes to make BookingArrangement a first class object, and to use bookingArrangements (and depracte all BookingArrangements)

* BookingArrangement in ressource Frame, and BookingArrangement constraints

Inclusionn of BookingArrangement in ressource Frame
Addition of BookingArrangement related constraints

* Lint and update documentation tables

* Update xsd/netex_part_1/part1_networkDescription/netex_flexibleNetwork_version.xsd

Co-authored-by: Stefan de Konink <[email protected]>

* Update xsd/netex_part_1/part1_networkDescription/netex_flexibleNetwork_version.xsd

Co-authored-by: Stefan de Konink <[email protected]>

* Update xsd/netex_part_1/part1_networkDescription/netex_flexibleNetwork_version.xsd

Co-authored-by: Stefan de Konink <[email protected]>

* Update xsd/netex_part_1/part1_networkDescription/netex_flexibleNetwork_version.xsd

Co-authored-by: Stefan de Konink <[email protected]>

* Generalisation to ServiceBookingArrangement

Generalisation of the Generalisation of BookingArrangement enhancement to ServiceBookingArrangement

* Lint and update documentation tables

* Add bookingArrangement example

---------

Co-authored-by: github-actions <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: Stefan de Konink <[email protected]>
  • Loading branch information
3 people authored Nov 6, 2023
1 parent a2d5aaf commit f441a62
Show file tree
Hide file tree
Showing 12 changed files with 275 additions and 27 deletions.
26 changes: 26 additions & 0 deletions examples/functions/bookingArrangements/generalframe.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
<?xml version="1.0" encoding="UTF-8"?>
<PublicationDelivery xmlns="http://www.netex.org.uk/netex" xmlns:siri="http://www.siri.org.uk/siri" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.0" xsi:schemaLocation="http://www.netex.org.uk/netex ../../../xsd/NeTEx_publication.xsd">
<PublicationTimestamp>2023-10-04T09:30:47.0Z</PublicationTimestamp>
<ParticipantRef>NDOV</ParticipantRef>
<dataObjects>
<GeneralFrame id="test:GeneralFrame:1" version="1.0">
<Name>BookingArrangement test</Name>
<members>
<BookingArrangement id="test:BookingArrangement:1" version="1.0">
<LatestBookingTime>16:00:00</LatestBookingTime>
<MinimumBookingPeriod>PT1H</MinimumBookingPeriod>
<BookingUrl>assitace.org.uk/wibledon</BookingUrl>
</BookingArrangement>
</members>
</GeneralFrame>
<ResourceFrame id="test:GeneralFrame:1" version="1.0">
<bookingArrangements>
<BookingArrangement id="test:BookingArrangement:2" version="1.0">
<LatestBookingTime>16:00:00</LatestBookingTime>
<MinimumBookingPeriod>PT1H</MinimumBookingPeriod>
<BookingUrl>assitace.org.uk/wibledon</BookingUrl>
</BookingArrangement>
</bookingArrangements>
</ResourceFrame>
</dataObjects>
</PublicationDelivery>
21 changes: 21 additions & 0 deletions xsd/NeTEx_publication.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -10932,6 +10932,27 @@ Correct COnstraints for PointOnRoute
<xsd:field xpath="@id"/>
<xsd:field xpath="@version"/>
</xsd:key>
<!-- =====BookingArrangement============================== -->
<!-- =====BookingArrangement unique========================== -->
<xsd:unique name="BookingArrangement_UniqueBy_Id_Version">
<xsd:annotation>
<xsd:documentation>Every [BookingArrangement Id + Version] must be unique within document.</xsd:documentation>
</xsd:annotation>
<xsd:selector xpath=".//netex:BookingArrangement"/>
<xsd:field xpath="@id"/>
<xsd:field xpath="@version"/>
</xsd:unique>
<!-- =====PricingService Key ========================== -->
<xsd:keyref name="BookingArrangement_KeyRef" refer="netex:BookingArrangement_AnyVersionedKey">
<xsd:selector xpath=".//netex:BookingArrangementRef"/>
<xsd:field xpath="@ref"/>
<xsd:field xpath="@version"/>
</xsd:keyref>
<xsd:key name="BookingArrangement_AnyVersionedKey">
<xsd:selector xpath=".//netex:BookingArrangement"/>
<xsd:field xpath="@id"/>
<xsd:field xpath="@version"/>
</xsd:key>
</xsd:element>
<!-- =====END OF CONSTRAINTS================= -->
<xsd:complexType name="PublicationDeliveryStructure">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -116,6 +116,7 @@ Rail transport, Roads and Road transport
<xsd:group ref="SchematicMapInFrameGroup"/>
<xsd:group ref="GeneralElementstInFrameGroup"/>
<xsd:group ref="SecurityListsInFrameGroup"/>
<xsd:group ref="BookingArrangementInFrameGroup"/>
</xsd:sequence>
</xsd:group>
<xsd:group name="DataManagementInFrameGroup">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -821,5 +821,31 @@ See ERA B.4 7037 Characteristic description code.</xsd:documentation>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- =================================================== -->
<!-- ===== Booking Arrangement ============================================== -->
<xsd:simpleType name="BookingArrangementIdType">
<xsd:annotation>
<xsd:documentation>Type for identifier of a BookingArrangement</xsd:documentation>
</xsd:annotation>
<xsd:restriction base="TypeOfValueIdType"/>
</xsd:simpleType>
<xsd:element name="BookingArrangementRef" type="BookingArrangementRefStructure">
<xsd:annotation>
<xsd:documentation>Reference to a BookingArrangement</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:complexType name="BookingArrangementRefStructure">
<xsd:annotation>
<xsd:documentation>Type for a reference to a BookingArrangement</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:restriction base="VersionOfObjectRefStructure">
<xsd:attribute name="ref" type="BookingArrangementIdType" use="required">
<xsd:annotation>
<xsd:documentation>Identifier of a BookingArrangement</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:restriction>
</xsd:simpleContent>
</xsd:complexType>
<!-- ======================================================================= -->
</xsd:schema>
Original file line number Diff line number Diff line change
Expand Up @@ -35,6 +35,8 @@
</Date>
<Date><Modified>2020-11-06</Modified>NewModes Allow reusable contacts.
</Date>
<Date><Modified>2023-10-17</Modified>Allow multiple Booking arrangements.
</Date>
<Description>
<p>NeTEx is a European CEN standard for the exchange of Public Transport data including timetables.</p>
<p>This sub-schema describes the Common Service Restriction Types.</p>
Expand Down Expand Up @@ -132,15 +134,52 @@ Rail transport, Roads and Road transport
</xsd:sequence>
</xsd:group>
<!-- ======================================================================= -->
<xsd:complexType name="BookingArrangementsStructure" abstract="false">
<xsd:element name="BookingArrangement" substitutionGroup="DataManagedObject">
<xsd:annotation>
<xsd:documentation>Type for BOOKING ARRANGEMENTs.</xsd:documentation>
<xsd:documentation>Description of a for BOOKING ARRANGEMENT</xsd:documentation>
</xsd:annotation>
<xsd:complexType>
<xsd:complexContent>
<xsd:restriction base="BookingArrangement_VersionStructure">
<xsd:sequence>
<xsd:sequence>
<xsd:group ref="EntityInVersionGroup" minOccurs="0"/>
</xsd:sequence>
<xsd:sequence>
<xsd:group ref="DataManagedObjectGroup"/>
</xsd:sequence>
<xsd:sequence>
<xsd:group ref="BookingArrangementGroup">
<xsd:annotation>
<xsd:documentation>Details for a BookingArrangement</xsd:documentation>
</xsd:annotation>
</xsd:group>
</xsd:sequence>
</xsd:sequence>
<xsd:attribute name="id" type="BookingArrangementIdType" use="required"/>
</xsd:restriction>
</xsd:complexContent>
</xsd:complexType>
</xsd:element>
<xsd:complexType name="BookingArrangement_VersionStructure" abstract="true">
<xsd:annotation>
<xsd:documentation>Type for a BookingArrangement</xsd:documentation>
</xsd:annotation>
<xsd:group ref="BookingArrangementsGroup"/>
<xsd:complexContent>
<xsd:extension base="DataManagedObjectStructure">
<xsd:sequence>
<xsd:group ref="BookingArrangementGroup">
<xsd:annotation>
<xsd:documentation>Details for BookingArrangement</xsd:documentation>
</xsd:annotation>
</xsd:group>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="BookingArrangementsGroup">
<xsd:group name="BookingArrangementGroup">
<xsd:annotation>
<xsd:documentation>Elements for BOOKING ARRANGEMENTs.</xsd:documentation>
<xsd:documentation>Elements for BOOKING ARRANGEMENTs</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="BookingContact" type="ContactStructure" minOccurs="0">
Expand Down Expand Up @@ -183,7 +222,7 @@ Rail transport, Roads and Road transport
<xsd:documentation>Maximum interval in advance of departure day or time that Service may be ordered. +V1.2..2</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="BookingUrl" type="xsd:anyURI" minOccurs="0">
<xsd:element name="BookingUrl" type="InfoLinkStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation>URL for booking. +V1.1</xsd:documentation>
</xsd:annotation>
Expand All @@ -195,17 +234,7 @@ Rail transport, Roads and Road transport
</xsd:element>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="ServiceBookingArrangementsStructure" abstract="false">
<xsd:annotation>
<xsd:documentation>Type for SERVICE BOOKING ARRANGEMENTs.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="BookingArrangementsStructure">
<xsd:group ref="ServiceBookingArrangementsGroup"/>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="ServiceBookingArrangementsGroup">
<xsd:group name="ServiceBookingArrangementGroup">
<xsd:annotation>
<xsd:documentation>Elements for SERVICE BOOKING ARRANGEMENTs.</xsd:documentation>
</xsd:annotation>
Expand All @@ -232,6 +261,80 @@ Rail transport, Roads and Road transport
</xsd:element>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="BookingArrangementRef_RelStructure">
<xsd:annotation>
<xsd:documentation>Type for a reference to a BookingArrangement</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="containmentAggregationStructure">
<xsd:choice>
<xsd:element ref="BookingArrangementRef"/>
<xsd:element ref="BookingArrangement"/>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:complexType name="bookingArrangements_RelStructure">
<xsd:annotation>
<xsd:documentation>Type for a list of BookingArrangements.</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="containmentAggregationStructure">
<xsd:choice maxOccurs="unbounded">
<xsd:element ref="BookingArrangementRef"/>
<xsd:element ref="BookingArrangement"/>
</xsd:choice>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:group name="BookingArrangementInFrameGroup">
<xsd:annotation>
<xsd:documentation>Elements for BOOKING ARRANGEMENTs frame.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="bookingArrangements" type="bookingArrangementsInFrame_RelStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation> BOOKING ARRANGEMENT in frame.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:group>
<xsd:complexType name="bookingArrangementsInFrame_RelStructure">
<xsd:annotation>
<xsd:documentation>Type for containment in frame of BOOKING ARRANGEMENTs</xsd:documentation>
</xsd:annotation>
<xsd:complexContent>
<xsd:extension base="containmentAggregationStructure">
<xsd:sequence>
<xsd:element ref="BookingArrangement" maxOccurs="unbounded"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<!-- =Deprecated structures for BookingArrangements (for backward compatibility only)========== -->
<xsd:complexType name="BookingArrangementsStructure" abstract="false">
<xsd:annotation>
<xsd:documentation>Type for BOOKING ARRANGEMENTs.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:group ref="BookingArrangementGroup"/>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="ServiceBookingArrangementsStructure" abstract="false">
<xsd:annotation>
<xsd:documentation>Type for SERVICE BOOKING ARRANGEMENTs.</xsd:documentation>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="ServiceBookingArrangement" maxOccurs="unbounded">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="BookingArrangement" type="BookingArrangementRef_RelStructure"/>
<xsd:group ref="ServiceBookingArrangementGroup"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<!-- ======================================================================= -->
<xsd:element name="TypeOfPaymentMethod" substitutionGroup="TypeOfValue">
<xsd:annotation>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -141,7 +141,12 @@
</xsd:element>
<xsd:element name="BookingArrangements" type="BookingArrangementsStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Booking conditions for ASSISTANCE BOOKING SERVICE.</xsd:documentation>
<xsd:documentation>Booking conditions for ASSISTANCE BOOKING SERVICE. DEPRECATED: use bookingArrangements</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="bookingArrangements" type="bookingArrangements_RelStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Set of possible Booking Arrangements for this booking service</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:group ref="AssistanceBookingServiceReferencesGroup">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,17 @@ Rail transport, Roads and Road transport
<xsd:documentation>Type of FLEXIBLE LINE.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:group ref="BookingArrangementsGroup"/>
<xsd:choice>
<xsd:annotation>
<xsd:documentation>BookingArrangementGroup direct use is DEPRECATED: please use bookingArrangements</xsd:documentation>
</xsd:annotation>
<xsd:group ref="BookingArrangementGroup"/>
<xsd:element name="bookingArrangements" type="bookingArrangements_RelStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Set of possible Booking Arrangements for this LINE.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:group>
<!-- ==FlexibleRoute============================================================ -->
Expand Down Expand Up @@ -337,7 +347,17 @@ Rail transport, Roads and Road transport
<xsd:documentation>Type of FLEXIBLE LINE.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:group ref="BookingArrangementsGroup"/>
<xsd:choice>
<xsd:annotation>
<xsd:documentation>BookingArrangementGroup direct use is DEPRECATED: please use bookingArrangements</xsd:documentation>
</xsd:annotation>
<xsd:group ref="BookingArrangementGroup"/>
<xsd:element name="bookingArrangements" type="bookingArrangements_RelStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Set of possible Booking Arrangements for this LINE.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -894,7 +894,12 @@ Rail transport, Roads and Road transport
</xsd:element>
<xsd:element name="BookingArrangements" type="BookingArrangementsStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Booking Arrangements for stop if different from those for SERVICE JOURNEY.</xsd:documentation>
<xsd:documentation>Booking Arrangements for stop if different from those for SERVICE JOURNEY. DEPRECATED: use bookingArrangements</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="bookingArrangements" type="bookingArrangements_RelStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Set of possible Booking Arrangements for stop if different from those for SERVICE JOURNEY. </xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:group ref="StopPointInPatternAdvertisementGroup">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -134,7 +134,17 @@ Rail transport, Roads and Road transport
<xsd:sequence>
<xsd:element ref="JourneyRef" minOccurs="0"/>
<xsd:group ref="FlexibleServiceCharacteristicsGroup"/>
<xsd:group ref="BookingArrangementsGroup"/>
<xsd:choice>
<xsd:annotation>
<xsd:documentation>Usage of BookingArrangementGroup is DEPRECATED: use bookingArrangements</xsd:documentation>
</xsd:annotation>
<xsd:group ref="BookingArrangementGroup"/>
<xsd:element name="bookingArrangements" type="bookingArrangements_RelStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Set of possible Booking Arrangements for stop if different from those for SERVICE JOURNEY. </xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:group>
<xsd:group name="FlexibleServiceCharacteristicsGroup">
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -416,7 +416,17 @@ The VIEW includes derived ancillary data from referenced entities.</xsd:document
<xsd:group ref="ServiceJourneyEndpointsGroup"/>
<xsd:group ref="ServiceJourneyAdvertisementGroup"/>
<xsd:group ref="FlexibleServiceCharacteristicsGroup"/>
<xsd:group ref="BookingArrangementsGroup"/>
<xsd:choice>
<xsd:annotation>
<xsd:documentation>Usage of BookingArrangementGroup is DEPRECATED: use bookingArrangements</xsd:documentation>
</xsd:annotation>
<xsd:group ref="BookingArrangementGroup"/>
<xsd:element name="bookingArrangements" type="bookingArrangements_RelStructure" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Set of possible Booking Arrangements for stop if different from those for SERVICE JOURNEY. </xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:choice>
</xsd:sequence>
</xsd:group>
<!-- ==Group of Services============================================================ -->
Expand Down
Loading

0 comments on commit f441a62

Please sign in to comment.