Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Proposal for an extension of ClassInFrameRef #650

Open
wants to merge 14 commits into
base: next
Choose a base branch
from
135 changes: 135 additions & 0 deletions examples/functions/basic/ClassInFrame.xml
Original file line number Diff line number Diff line change
@@ -0,0 +1,135 @@
<?xml version="1.0" encoding="UTF-8"?>
<PublicationDelivery xmlns:acsb="http://www.ifopt.org.uk/acsb" xmlns:ifopt="http://www.ifopt.org.uk/ifopt" xmlns="http://www.netex.org.uk/netex" xmlns:gml="http://www.opengis.net/gml/3.2" 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>2001-12-17T09:30:47.0Z</PublicationTimestamp>
<ParticipantRef>SYS001</ParticipantRef>
<dataObjects>
<CompositeFrame version="1" created="2009-12-02T00:00:00Z" id="RATP:Neptune:CompositeFrame:100110107">
<Name>NEPTUNE Mapping Frame</Name>
<TypeOfFrameRef version="01" ref="Neptune:TypeOfFrame:CompositeFrame"/>
<codespaces>
<Codespace id="ratp_pivi_data">
<Xmlns>RATP_PIVI</Xmlns>
<XmlnsUrl>http://www.ratp.fr/ratp</XmlnsUrl>
<Description>RATP datas</Description>
</Codespace>
</codespaces>
<FrameDefaults>
<DefaultCodespaceRef ref="ratp_pivi_data"/>
<DefaultLocale>
<TimeZoneOffset>-1</TimeZoneOffset>
<SummerTimeZoneOffset>-2</SummerTimeZoneOffset>
<DefaultLanguage>fr</DefaultLanguage>
</DefaultLocale>
<DefaultLocationSystem>EPSG:4326</DefaultLocationSystem>
</FrameDefaults>
<frames>
<ResourceFrame version="any" id="Neptune:ResourceFrame:FrameProfile01">
<Name>RATP--Neptune-Line Profile </Name>
<codespaces>
<Codespace id="neptune_data">
<Xmlns>Neptune</Xmlns>
<XmlnsUrl>http://www.Neptune.fr/Neptune</XmlnsUrl>
<Description>Neptune data </Description>
</Codespace>
</codespaces>
<FrameDefaults>
<DefaultCodespaceRef ref="neptune_data"/>
</FrameDefaults>
<typesOfValue>
<TypeOfValidity version="01" id="Neptune:TypeOfValidity:WeeklyPlanned">
<Name>Weekley export of Neptune Planned data</Name>
<Periodicity>P7D</Periodicity>
<Nature>planned</Nature>
</TypeOfValidity>
<TypeOfFrame version="01" id="Neptune:TypeOfFrame:CompositeFrame">
<Name>Neptune Profile: Composite Frame </Name>
<Description>RATP--Neptune-Line-xxxxxx frames will be composite frame containing Service, Timetable (and Service Calendar) and Resource frames with all the usual NEPTUNE attributes filled in, for a given line xxxxx.</Description>
<TypeOfValidityRef version="01" ref="Neptune:TypeOfValidity:WeeklyPlanned"/>
<FrameClassRef nameOfClass="CompositeFrame"/>
<classes>
<ClassInFrameRef nameOfClass="AvailabilityCondition" classRefType="memberReferences"/>
</classes>
<includes>
<TypeOfFrame version="01" id="Neptune:TypeOfFrame:TimeTableFrame">
<Name>Neptune Profile:ServiceCalendar Frame </Name>
<FrameClassRef nameOfClass="TimeTableFrame"/>
<classes>
<ClassInFrameRef classRefType="members" nameOfClass="TimeTableFrame">
<ClassElement nameOfElement="passingTimes" use="required"/>
<ClassElement nameOfElement="calls" use="prohibited"/>
</ClassInFrameRef>
<ClassInFrameRef classRefType="members" nameOfClass="ServiceJourney"/>
<ClassInFrameRef classRefType="members" nameOfClass="JourneyPart"/>
</classes>
</TypeOfFrame>
<TypeOfFrame version="01" id="Neptune:TypeOfFrame:ServiceFrame">
<Name>Neptune Profile: Service Frame </Name>
<FrameClassRef nameOfClass="ServiceFrame"/>
<classes>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="ScheduledStopPoint"/>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="ServicePattern"/>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="Network"/>
<ClassInFrame>
<attributes>
<ClassAttributeInFrame name="Name">
<Mandatory>required</Mandatory>
</ClassAttributeInFrame>
<ClassAttributeInFrame name="lines">
<Mandatory>required</Mandatory>
</ClassAttributeInFrame>
</attributes>
</ClassInFrame>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="RoutePoint"/>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="RouteLink"/>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="Line"/>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="Route"/>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="Direction"/>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="TariffZone"/>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="PassengerStopAssignment">
<ClassElement nameOfElement="BoardingPosition" use="prohibited"/>
</ClassInFrameRef>
</classes>
</TypeOfFrame>
<TypeOfFrame version="01" id="Neptune:TypeOfFrame:SiteFrame">
<Name>Neptune Profile: Site Frame </Name>
<FrameClassRef nameOfClass="SiteFrame"/>
<classes>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="StopPlace"/>
</classes>
</TypeOfFrame>
<TypeOfFrame version="01" id="Neptune:TypeOfFrame:ServiceCalendarFrame">
<Name>Neptune Profile:ServceCalendar Frame </Name>
<FrameClassRef nameOfClass="ServiceCalendarFrame"/>
<classes>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="ServiceCalendar"/>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="DayType"/>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="DayTypeAssignment"/>
</classes>
</TypeOfFrame>
<TypeOfFrame version="01" id="Neptune:TypeOfFrame:ResourceFrame">
<Name>Neptune Profile: Resource Frame </Name>
<FrameClassRef nameOfClass="ResourceFrame"/>
<classes>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="TypeOfFrame"/>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="Operator"/>
<ClassInFrameRef classRefType="memberReferences" nameOfClass="Authority"/>
</classes>
</TypeOfFrame>
</includes>
</TypeOfFrame>
</typesOfValue>
<organisations>
<!-- NEPTUNE [mapping:variable] : Operator.version mapped to NEPTUNE Company->ObjectVersion -->
<Operator version="1" id="RATP_PIVI:Company:100">
<!-- NEPTUNE [mapping:variable] : Operator->id mapped to NEPTUNE Company->ObjectId -->
<!-- NEPTUNE [mapping:variable] : Operator->name mapped to NEPTUNE Company->RegistrationNumber -->
<CompanyNumber>100</CompanyNumber>
<!-- NEPTUNE [mapping:variable] : Operator->name mapped to NEPTUNE Company->name -->
<Name>RATP</Name>
</Operator>
</organisations>
</ResourceFrame>
</frames>
</CompositeFrame>
</dataObjects>
</PublicationDelivery>
36 changes: 24 additions & 12 deletions examples/standards/epip/epip_common_profile.xml
Original file line number Diff line number Diff line change
Expand Up @@ -878,9 +878,12 @@
<Name>Network and schedule data for a single line.</Name>
<FrameClassRef nameOfClass="CompositeFrame"/>
<classes>
<ClassInFrameRef nameOfClass="DataManagedObject">Use Common definitions</ClassInFrameRef>
<ClassInFrameRef nameOfClass="VersionFrame">Use Common definitions</ClassInFrameRef>
<ClassInFrameRef nameOfClass="ResourceFrame">Use Common definitions</ClassInFrameRef>
<ClassInFrameRef nameOfClass="DataManagedObject"/>
<!-- Use Common definitions -->
<ClassInFrameRef nameOfClass="VersionFrame"/>
<!-- Use Common definitions -->
<ClassInFrameRef nameOfClass="ResourceFrame"/>
<!-- Use Common definitions -->
<!-- Specific -->
<ClassInFrame nameOfClass="EU_PI_LINE_OFFER.SiteFrame-EU_PI_STOP">
<ClassRefType>all</ClassRefType>
Expand Down Expand Up @@ -918,14 +921,21 @@
<FrameClassRef nameOfClass="CompositeFrame"/>
<classes>
<!-- SUPERCLASSES -->
<ClassInFrameRef nameOfClass="DataManagedObject">Use Common definitions</ClassInFrameRef>
<ClassInFrameRef nameOfClass="VersionFrame">Use Common definitions</ClassInFrameRef>
<ClassInFrameRef nameOfClass="DataManagedObject"/>
<!-- Use Common definitions -->
<ClassInFrameRef nameOfClass="VersionFrame"/>
<!-- Use Common definitions -->
<!-- CONTENTS -->
<ClassInFrameRef nameOfClass="EU_PI_LINE_OFFER.ResourceFrame" classRefType="all">epip:EU_PI_COMMON</ClassInFrameRef>
<ClassInFrameRef nameOfClass="EU_PI_LINE_OFFER.SiteFrame" classRefType="all">epip:EU_PI_STOP</ClassInFrameRef>
<ClassInFrameRef nameOfClass="EU_PI_LINE_NETWORK.ServicFrame" classRefType="all">epip:EU_PI_NETWORK</ClassInFrameRef>
<ClassInFrameRef nameOfClass="EU_PI_LINE_TIMETABLE.TimetableFrame" classRefType="all">epip:EU_PI_TIMETABLE</ClassInFrameRef>
<ClassInFrameRef nameOfClass="EU_PI_LINE_CALENDAR.ServiceCalendarFrame" classRefType="all">epip:EU_PI_CALENDAR</ClassInFrameRef>
<ClassInFrameRef nameOfClass="EU_PI_LINE_OFFER.ResourceFrame" classRefType="all"/>
<!-- epip:EU_PI_COMMON-->
<ClassInFrameRef nameOfClass="EU_PI_LINE_OFFER.SiteFrame" classRefType="all"/>
<!-- epip:EU_PI_STOP -->
<ClassInFrameRef nameOfClass="EU_PI_LINE_NETWORK.ServicFrame" classRefType="all"/>
<!-- epip:EU_PI_NETWORK -->
<ClassInFrameRef nameOfClass="EU_PI_LINE_TIMETABLE.TimetableFrame" classRefType="all"/>
<!-- epip:EU_PI_TIMETABLE -->
<ClassInFrameRef nameOfClass="EU_PI_LINE_CALENDAR.ServiceCalendarFrame" classRefType="all"/>
<!-- epip:EU_PI_CALENDAR -->
<ClassInFrameRef nameOfClass="EU_PI_LINE_OFFER.ResourceFrameEU_PI_METADATA" classRefType="all"/>
</classes>
<includes>
Expand All @@ -943,8 +953,10 @@
<FrameClassRef nameOfClass="CompositeFrame"/>
<classes>
<!-- SUPERCLASSES -->
<ClassInFrameRef nameOfClass="DataManagedObject">Use Common definitions</ClassInFrameRef>
<ClassInFrameRef nameOfClass="VersionFrame">Use Common definitions</ClassInFrameRef>
<ClassInFrameRef nameOfClass="DataManagedObject"/>
<!-- Use Common definitions -->
<ClassInFrameRef nameOfClass="VersionFrame"/>
<!-- Use Common definitions -->
<!-- CONTENTS -->
<ClassInFrameRef nameOfClass="EU_PI_LINE_OFFER.ResourceFrame.EU_PI_COMMON" classRefType="all"/>
<ClassInFrameRef nameOfClass="EU_PI_LINE_OFFER.SiteFrame.EU_PI_STOP" classRefType="all"/>
Expand Down
51 changes: 35 additions & 16 deletions xsd/netex_framework/netex_responsibility/netex_entity_support.xsd
Original file line number Diff line number Diff line change
Expand Up @@ -122,15 +122,34 @@ Rail transport, Roads and Road transport
<xsd:annotation>
<xsd:documentation>Type for a reference to the Class of a ENTITY.</xsd:documentation>
</xsd:annotation>
<xsd:simpleContent>
<xsd:extension base="xsd:string">
<xsd:attribute name="nameOfClass" type="NameOfClass" use="required">
<xsd:annotation>
<xsd:documentation>Name of referenced Class.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:extension>
</xsd:simpleContent>
<xsd:sequence>
<xsd:element name="ClassElement" type="ClassElementStructure" minOccurs="0" maxOccurs="unbounded"/>
</xsd:sequence>
<xsd:attribute name="nameOfClass" type="NameOfClass" use="required">
<xsd:annotation>
<xsd:documentation>Name of referenced class.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="use" type="MandatoryEnumeration" default="optional">
skinkie marked this conversation as resolved.
Show resolved Hide resolved
<xsd:annotation>
<xsd:documentation>Whether the member is required, optional or prohibited.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<xsd:complexType name="ClassElementStructure">
<xsd:annotation>
<xsd:documentation>An element in an ENTITY.</xsd:documentation>
</xsd:annotation>
<xsd:attribute name="nameOfElement" type="NameOfClass" use="required">
<xsd:annotation>
<xsd:documentation>Name of referenced class.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
<xsd:attribute name="use" type="MandatoryEnumeration" default="optional">
<xsd:annotation>
<xsd:documentation>Whether the member is required, optional or prohibited.</xsd:documentation>
</xsd:annotation>
</xsd:attribute>
</xsd:complexType>
<!-- ==== Entity Class =================================================================== -->
<xsd:element name="ClassInFrameRef" type="ClassInFrameRefStructure" substitutionGroup="ClassRef">
Expand Down Expand Up @@ -159,17 +178,17 @@ Rail transport, Roads and Road transport
<xsd:restriction base="xsd:normalizedString">
<xsd:enumeration value="members">
<xsd:annotation>
<xsd:documentation source="comment">Include elements that meet selection criteria (e.g. validity condition).</xsd:documentation>
<xsd:documentation>Include elements that meet selection criteria (e.g. validity condition).</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="memberReferences">
<xsd:annotation>
<xsd:documentation source="Comment">Include elements that are referenced by primary element. E.g. TYPES OF VALUE, OPERATOR etc.</xsd:documentation>
<xsd:documentation>Include elements that are referenced by primary element. E.g. TYPES OF VALUE, OPERATOR etc.</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="all">
<xsd:annotation>
<xsd:documentation source="comment">Include all elements.</xsd:documentation>
<xsd:documentation>Include all elements.</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
Expand All @@ -181,17 +200,17 @@ Rail transport, Roads and Road transport
<xsd:restriction base="xsd:normalizedString">
<xsd:enumeration value="required">
<xsd:annotation>
<xsd:documentation source="comment">Include elements that meet selection criteria (e.g. validity condition).</xsd:documentation>
<xsd:documentation source="comment">Required.</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="optional">
<xsd:annotation>
<xsd:documentation source="Comment">Include elements that are referenced by primary element. E.g. TYPES OF VALUE, OPERATOR etc.</xsd:documentation>
<xsd:documentation source="Comment">Optional.</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
<xsd:enumeration value="notAllowed">
<xsd:enumeration value="prohibited">
<xsd:annotation>
<xsd:documentation source="comment">Include all elements.</xsd:documentation>
<xsd:documentation source="comment">Not allowed.</xsd:documentation>
</xsd:annotation>
</xsd:enumeration>
</xsd:restriction>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -493,7 +493,7 @@ Rail transport, Roads and Road transport
</xsd:element>
<xsd:element name="Mandatory" type="MandatoryEnumeration" default="optional" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Whether element is required, optional or not allowed.</xsd:documentation>
<xsd:documentation>Whether element is required, optional or prohibited.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="attributes" minOccurs="0">
Expand Down Expand Up @@ -549,7 +549,7 @@ Rail transport, Roads and Road transport
</xsd:element>
<xsd:element name="Mandatory" type="MandatoryEnumeration" default="optional" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Whether element is required, optional or not allowed.</xsd:documentation>
<xsd:documentation>Whether element is required, optional or prohibited.</xsd:documentation>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
Expand All @@ -573,7 +573,7 @@ Rail transport, Roads and Road transport
<xsd:element ref="RelationshipRef"/>
<xsd:element name="Mandatory" type="MandatoryEnumeration" default="optional" minOccurs="0">
<xsd:annotation>
<xsd:documentation>Whether relationship is required, optional or not allowed.</xsd:documentation>
<xsd:documentation>Whether relationship is required, optional or prohibited.</xsd:documentation>
</xsd:annotation>
</xsd:element>
<xsd:element name="Containment" type="ContainmentEnumeration" default="both" minOccurs="0">
Expand Down