Truck parking

DATEX II scheme

<!-- CEN 16157 Part 6:2014 profile, 31/10/2104 -->
<xs:schema elementFormDefault="qualified" attributeFormDefault="unqualified" xmlns:D2LogicalModel="http://datex2.eu/schema/2/2_0" version="2.3" targetNamespace="http://datex2.eu/schema/2/2_0" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:complexType name="_AreaExtensionType">
    <xs:sequence>
      <xs:element name="areaExtended" type="D2LogicalModel:AreaExtended" minOccurs="0" />
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="_ChargeBandVersionedReference">
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:VersionedReference">
        <xs:attribute name="targetClass" use="required" fixed="ChargeBand" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="_ContactDetailsVersionedReference">
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:VersionedReference">
        <xs:attribute name="targetClass" use="required" fixed="ContactDetails" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="_ExtensionType">
    <xs:sequence>
      <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="_GenericPublicationExtensionType">
    <xs:sequence>
      <xs:element name="parkingTablePublication" type="D2LogicalModel:ParkingTablePublication" minOccurs="0" />
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="_GroupOfParkingSpaces">
    <xs:sequence>
      <xs:element name="parkingSpaceBasics" type="D2LogicalModel:ParkingSpaceBasics" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="groupIndex" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_GroupOfParkingSpacesParkingSpaceIndexParkingSpace">
    <xs:sequence>
      <xs:element name="parkingSpace" type="D2LogicalModel:ParkingSpace" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="parkingSpaceIndex" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_IntermediatePointOnLinearElement">
    <xs:sequence>
      <xs:element name="referent" type="D2LogicalModel:Referent" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="index" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_LocationContainedInItinerary">
    <xs:sequence>
      <xs:element name="location" type="D2LogicalModel:Location" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="index" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_ParkingAccessReference">
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Reference">
        <xs:attribute name="targetClass" use="required" fixed="ParkingAccess" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="_ParkingRecordEquipmentOrServiceFacilityIndexParkingEquipmentOrServiceFacility">
    <xs:sequence>
      <xs:element name="parkingEquipmentOrServiceFacility" type="D2LogicalModel:ParkingEquipmentOrServiceFacility" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="equipmentOrServiceFacilityIndex" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_ParkingRecordVersionedReference">
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:VersionedReference">
        <xs:attribute name="targetClass" use="required" fixed="ParkingRecord" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="_ParkingRouteDetailsVersionedReference">
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:VersionedReference">
        <xs:attribute name="targetClass" use="required" fixed="ParkingRouteDetails" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="_ParkingSiteScenarioIndexParkingUsageScenario">
    <xs:sequence>
      <xs:element name="parkingUsageScenario" type="D2LogicalModel:ParkingUsageScenario" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="scenarioIndex" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_ParkingSpace">
    <xs:sequence>
      <xs:element name="parkingSpaceBasics" type="D2LogicalModel:ParkingSpaceBasics" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="parkingSpaceIndex" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_ParkingSpaceBasicsEquipmentOrServiceFacilityIndexParkingEquipmentOrServiceFacility">
    <xs:sequence>
      <xs:element name="parkingEquipmentOrServiceFacility" type="D2LogicalModel:ParkingEquipmentOrServiceFacility" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="equipmentOrServiceFacilityIndex" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_ParkingSpaceBasicsScenarioIndexParkingUsageScenario">
    <xs:sequence>
      <xs:element name="parkingUsageScenario" type="D2LogicalModel:ParkingUsageScenario" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="scenarioIndex" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_PeriodExtensionType">
    <xs:sequence>
      <xs:element name="periodExtended" type="D2LogicalModel:PeriodExtended" minOccurs="0" />
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="_PointExtensionType">
    <xs:sequence>
      <xs:element name="pointExtended" type="D2LogicalModel:PointExtended" minOccurs="0" />
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="_PolygonAreaIndexPointCoordinates">
    <xs:sequence>
      <xs:element name="pointCoordinates" type="D2LogicalModel:PointCoordinates" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="index" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_PredefinedItineraryVersionedReference">
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:VersionedReference">
        <xs:attribute name="targetClass" use="required" fixed="PredefinedItinerary" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="_PredefinedLocationVersionedReference">
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:VersionedReference">
        <xs:attribute name="targetClass" use="required" fixed="PredefinedLocation" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="_PredefinedNonOrderedLocationGroupVersionedReference">
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:VersionedReference">
        <xs:attribute name="targetClass" use="required" fixed="PredefinedNonOrderedLocationGroup" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="_VehicleCharacteristicsExtensionType">
    <xs:sequence>
      <xs:element name="vehicleCharacteristicsExtended" type="D2LogicalModel:VehicleCharacteristicsExtended" minOccurs="0" />
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="_VmsUnitRecordVersionedReference">
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:VersionedReference">
        <xs:attribute name="targetClass" use="required" fixed="VmsUnitRecord" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AcceptedPaymentCards">
    <xs:annotation>
      <xs:documentation>Use this class to describe details in case acceptedMeansOfPayment is set to 'paymentCard'.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="paymentCards" type="D2LogicalModel:PaymentCardTypesEnum" minOccurs="1" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>List of accepted payment cards.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="otherPaymentCards" type="D2LogicalModel:String" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Further accepted payment cards.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="paymentCardBrands" type="D2LogicalModel:PaymentCardBrandsEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>List of accepted brands for payment cards.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="otherPaymentCardBrands" type="D2LogicalModel:String" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Further accepted brands of payment cards.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="acceptedPaymentCardsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="AccessCategoryEnum">
    <xs:annotation>
      <xs:documentation>Specifies the category of the access.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="vehicleEntranceAndExit">
        <xs:annotation>
          <xs:documentation>An entrance and exit for vehicles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vehicleEntrance">
        <xs:annotation>
          <xs:documentation>An entrance for vehicles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vehicleExit">
        <xs:annotation>
          <xs:documentation>An exit for vehicles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pedestrianEntranceAndExit">
        <xs:annotation>
          <xs:documentation>An entrance and exit for pedestrian.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pedestrianEntrance">
        <xs:annotation>
          <xs:documentation>An entrance for pedestrian.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pedestrianExit">
        <xs:annotation>
          <xs:documentation>An exit for pedestrian.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="emergencyExit">
        <xs:annotation>
          <xs:documentation>An exit that can be used by pedestrians in case of emergency (i.e. among others easy to access and signed).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unspecified">
        <xs:annotation>
          <xs:documentation>The category of this access is not specified any further.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="AccessEquipmentEnum">
    <xs:annotation>
      <xs:documentation>Specifies additional equipment for this access.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="barrier">
        <xs:annotation>
          <xs:documentation>There is a barrier on this entrance or exit. Usually access is granted through tickets, buttons or electronic systems.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trafficSignal">
        <xs:annotation>
          <xs:documentation>There is a traffic signal installation controlling this access.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ticketButtonMachine">
        <xs:annotation>
          <xs:documentation>A machine at this entrance provides a parking ticket by pressing a button.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ticketCardMachine">
        <xs:annotation>
          <xs:documentation>A machine at this entrance provides a parking ticket by inserting some payment or identity card.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="payAndExitMachine">
        <xs:annotation>
          <xs:documentation>A machine at this exit enables payment directly by inserting a payment or identity card.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="AccessibilityEnum">
    <xs:annotation>
      <xs:documentation>Special forms of accessibility, easements and marking for handicapped people.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="barrierFreeAccessible">
        <xs:annotation>
          <xs:documentation>Accessible without any steps or other barriers. This is not as strong as handicappedAccessible.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="handicappedAccessible">
        <xs:annotation>
          <xs:documentation>Accessible for handicapped people. Wheelchair accessible is a special form of it.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="wheelChairAccessible">
        <xs:annotation>
          <xs:documentation>Accessible by people in a wheelchair.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="handicappedEasements">
        <xs:annotation>
          <xs:documentation>There are special easements for handicapped people, like handrails or handicapped-friendly furniture.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="orientationSystemForBlindPeople">
        <xs:annotation>
          <xs:documentation>There is some orientation system, which helps blind or visually impaired people. Examples might be some acoustic system or tactile paving.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="handicappedMarked">
        <xs:annotation>
          <xs:documentation>There is a visible mark for the privilege of handicapped or disabled people (e.g. a wheelchair symbol).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="none">
        <xs:annotation>
          <xs:documentation>No form of special accessibility, i.e. usually not convenient for handicapped people, e.g. because of steps or barriers.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>It is unknown, whether there is a special form of accessibility.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="AffectedCarriagewayAndLanes">
    <xs:annotation>
      <xs:documentation>Supplementary positional information which details carriageway and lane locations. Several instances may exist where the element being described extends over more than one carriageway.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="carriageway" type="D2LogicalModel:CarriagewayEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates the section of carriageway to which the location relates.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="lane" type="D2LogicalModel:LaneEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Indicates the specific lane to which the location relates.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="footpath" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates whether the pedestrian footpath is the subject or part of the subject of the location. (True = footpath is subject)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="lengthAffected" type="D2LogicalModel:MetresAsFloat" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>This indicates the length of road measured in metres affected by the associated traffic element.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="affectedCarriagewayAndLanesExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AlertCArea">
    <xs:annotation>
      <xs:documentation>An area defined by reference to a predefined ALERT-C location table.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alertCLocationCountryCode" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>EBU country code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCLocationTableNumber" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Number allocated to an ALERT-C table in a country. Ref. EN ISO 14819-3 for the allocation of a location table number.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCLocationTableVersion" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Version number associated with an ALERT-C table reference.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="areaLocation" type="D2LogicalModel:AlertCLocation">
        <xs:annotation>
          <xs:documentation>Area location defined by a specific Alert-C location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCAreaExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AlertCDirection">
    <xs:annotation>
      <xs:documentation>The direction of traffic flow along the road to which the information relates.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alertCDirectionCoded" type="D2LogicalModel:AlertCDirectionEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The direction of traffic flow to which the situation, traffic data or information is related. Positive is in the direction of coding of the road.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCDirectionNamed" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>ALERT-C name of a direction e.g. Brussels -&gt; Lille.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCDirectionSense" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates for circular routes (i.e. valid only for ring roads) the sense in which navigation should be made from the primary location to the secondary location, to avoid ambiguity. TRUE indicates positive RDS direction, i.e. direction of coding of road.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCDirectionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="AlertCDirectionEnum">
    <xs:annotation>
      <xs:documentation>The direction of traffic flow concerned by a situation or traffic data. In ALERT-C the positive (resp. negative) direction corresponds to the positive offset direction within the RDS location table.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="both">
        <xs:annotation>
          <xs:documentation>Indicates that both directions of traffic flow are affected by the situation or relate to the traffic data.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="negative">
        <xs:annotation>
          <xs:documentation>The direction of traffic flow concerned by a situation or traffic data. In ALERT-C the negative direction corresponds to the negative offset direction within the RDS location table.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="positive">
        <xs:annotation>
          <xs:documentation>The direction of traffic flow concerned by a situation or traffic data. In ALERT-C the positive direction corresponds to the positive offset direction within the RDS location table.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="AlertCLinear" abstract="true">
    <xs:annotation>
      <xs:documentation>A linear section along a road defined between two points on the road by reference to a pre-defined ALERT-C location table.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alertCLocationCountryCode" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>EBU country code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCLocationTableNumber" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Number allocated to an ALERT-C table in a country. Ref. EN ISO 14819-3 for the allocation of a location table number.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCLocationTableVersion" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Version number associated with an ALERT-C table reference.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCLinearExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AlertCLinearByCode">
    <xs:annotation>
      <xs:documentation>A linear section along a road defined by reference to a linear section in a pre-defined ALERT-C location table.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:AlertCLinear">
        <xs:sequence>
          <xs:element name="alertCDirection" type="D2LogicalModel:AlertCDirection" />
          <xs:element name="locationCodeForLinearLocation" type="D2LogicalModel:AlertCLocation">
            <xs:annotation>
              <xs:documentation>Linear location defined by a specific Alert-C location.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="alertCLinearByCodeExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AlertCLocation">
    <xs:annotation>
      <xs:documentation>Identification of a specific point, linear or area location in an ALERT-C location table.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alertCLocationName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Name of ALERT-C location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="specificLocation" type="D2LogicalModel:AlertCLocationCode" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Unique code within the ALERT-C location table which identifies the specific point, linear or area location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="AlertCLocationCode">
    <xs:annotation>
      <xs:documentation>A positive integer number (between 1 and 63,487) which uniquely identifies a pre-defined Alert C location defined within an Alert-C table.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:NonNegativeInteger" />
  </xs:simpleType>
  <xs:complexType name="AlertCMethod2Linear">
    <xs:annotation>
      <xs:documentation>A linear section along a road between two points, Primary and Secondary, which are pre-defined in an ALERT-C location table. Direction is FROM the Secondary point TO the Primary point, i.e. the Primary point is downstream of the Secondary point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:AlertCLinear">
        <xs:sequence>
          <xs:element name="alertCDirection" type="D2LogicalModel:AlertCDirection" />
          <xs:element name="alertCMethod2PrimaryPointLocation" type="D2LogicalModel:AlertCMethod2PrimaryPointLocation" />
          <xs:element name="alertCMethod2SecondaryPointLocation" type="D2LogicalModel:AlertCMethod2SecondaryPointLocation" />
          <xs:element name="alertCMethod2LinearExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AlertCMethod2Point">
    <xs:annotation>
      <xs:documentation>A single point on the road network defined by reference to a point in a pre-defined ALERT-C location table and which has an associated direction of traffic flow.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:AlertCPoint">
        <xs:sequence>
          <xs:element name="alertCDirection" type="D2LogicalModel:AlertCDirection" />
          <xs:element name="alertCMethod2PrimaryPointLocation" type="D2LogicalModel:AlertCMethod2PrimaryPointLocation" />
          <xs:element name="alertCMethod2PointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AlertCMethod2PrimaryPointLocation">
    <xs:annotation>
      <xs:documentation>The point (called Primary point) which is either a single point or at the downstream end of a linear road section. The point is specified by a reference to a point in a pre-defined ALERT-C location table.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alertCLocation" type="D2LogicalModel:AlertCLocation" />
      <xs:element name="alertCMethod2PrimaryPointLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AlertCMethod2SecondaryPointLocation">
    <xs:annotation>
      <xs:documentation>The point (called Secondary point) which is at the upstream end of a linear road section. The point is specified by a reference to a point in a pre-defined ALERT-C location table.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alertCLocation" type="D2LogicalModel:AlertCLocation" />
      <xs:element name="alertCMethod2SecondaryPointLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AlertCMethod4Linear">
    <xs:annotation>
      <xs:documentation>A linear section along a road between two points, Primary and Secondary, which are pre-defined ALERT-C locations plus offset distance. Direction is FROM the Secondary point TO the Primary point, i.e. the Primary point is downstream of the Secondary point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:AlertCLinear">
        <xs:sequence>
          <xs:element name="alertCDirection" type="D2LogicalModel:AlertCDirection" />
          <xs:element name="alertCMethod4PrimaryPointLocation" type="D2LogicalModel:AlertCMethod4PrimaryPointLocation" />
          <xs:element name="alertCMethod4SecondaryPointLocation" type="D2LogicalModel:AlertCMethod4SecondaryPointLocation" />
          <xs:element name="alertCMethod4LinearExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AlertCMethod4Point">
    <xs:annotation>
      <xs:documentation>A single point on the road network defined by reference to a point in a pre-defined ALERT-C location table plus an offset distance and which has an associated direction of traffic flow.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:AlertCPoint">
        <xs:sequence>
          <xs:element name="alertCDirection" type="D2LogicalModel:AlertCDirection" />
          <xs:element name="alertCMethod4PrimaryPointLocation" type="D2LogicalModel:AlertCMethod4PrimaryPointLocation" />
          <xs:element name="alertCMethod4PointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AlertCMethod4PrimaryPointLocation">
    <xs:annotation>
      <xs:documentation>The point (called Primary point) which is either a single point or at the downstream end of a linear road section. The point is specified by a reference to a point in a pre-defined ALERT-C location table plus a non-negative offset distance.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alertCLocation" type="D2LogicalModel:AlertCLocation" />
      <xs:element name="offsetDistance" type="D2LogicalModel:OffsetDistance" />
      <xs:element name="alertCMethod4PrimaryPointLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AlertCMethod4SecondaryPointLocation">
    <xs:annotation>
      <xs:documentation>The point (called Secondary point) which is at the upstream end of a linear road section. The point is specified by a reference to a point in a pre-defined Alert-C location table plus a non-negative offset distance.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alertCLocation" type="D2LogicalModel:AlertCLocation" />
      <xs:element name="offsetDistance" type="D2LogicalModel:OffsetDistance" />
      <xs:element name="alertCMethod4SecondaryPointLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AlertCPoint" abstract="true">
    <xs:annotation>
      <xs:documentation>A single point on the road network defined by reference to a pre-defined ALERT-C location table and which has an associated direction of traffic flow.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alertCLocationCountryCode" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>EBU country code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCLocationTableNumber" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Number allocated to an ALERT-C table in a country. Ref. EN ISO 14819-3 for the allocation of a location table number.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCLocationTableVersion" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Version number associated with an ALERT-C table reference.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCPointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="AmountOfMoney">
    <xs:annotation>
      <xs:documentation>A monetary value expressed to two decimal places.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Decimal">
      <xs:totalDigits value="8" />
      <xs:fractionDigits value="2" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Ampere">
    <xs:annotation>
      <xs:documentation>Ampere.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Float" />
  </xs:simpleType>
  <xs:complexType name="Area">
    <xs:annotation>
      <xs:documentation>A geographic or geometric defined area which may be qualified by height information to provide additional geospatial discrimination (e.g. for snow in an area but only above a certain altitude).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Location">
        <xs:sequence>
          <xs:element name="alertCArea" type="D2LogicalModel:AlertCArea" minOccurs="0" />
          <xs:element name="tpegAreaLocation" type="D2LogicalModel:TpegAreaLocation" minOccurs="0" />
          <xs:element name="areaExtension" type="D2LogicalModel:_AreaExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AreaDestination">
    <xs:annotation>
      <xs:documentation>The specification of the destination of a defined route or itinerary which is an area.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Destination">
        <xs:sequence>
          <xs:element name="area" type="D2LogicalModel:Area" />
          <xs:element name="areaDestinationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AreaExtended">
    <xs:annotation>
      <xs:documentation>Extension class for area used in parking publication extension.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="namedArea" type="D2LogicalModel:NamedArea" minOccurs="0" />
      <xs:element name="polygonArea" type="D2LogicalModel:PolygonArea" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="AreaOfInterestEnum">
    <xs:annotation>
      <xs:documentation>Types of areas of interest.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="continentWide">
        <xs:annotation>
          <xs:documentation>Area of the whole European continent.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="national">
        <xs:annotation>
          <xs:documentation>Whole area of the specific country.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="neighbouringCountries">
        <xs:annotation>
          <xs:documentation>Area of countries which are neighbouring the one specified.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="notSpecified">
        <xs:annotation>
          <xs:documentation>Non specified area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="regional">
        <xs:annotation>
          <xs:documentation>Area of the local region.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="AvailabilityEnum">
    <xs:annotation>
      <xs:documentation>An enumeration which states if something is available or not.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="available">
        <xs:annotation>
          <xs:documentation>The element in question is available.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="notAvailable">
        <xs:annotation>
          <xs:documentation>The element in question is not available.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>There is no information about whether the element in question is available or not.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Boolean">
    <xs:annotation>
      <xs:documentation>Boolean has the value space required to support the mathematical concept of binary-valued logic: {true, false}. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:boolean" />
  </xs:simpleType>
  <xs:simpleType name="CarriagewayEnum">
    <xs:annotation>
      <xs:documentation>List of descriptors identifying specific carriageway details.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="connectingCarriageway">
        <xs:annotation>
          <xs:documentation>On the connecting carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="entrySlipRoad">
        <xs:annotation>
          <xs:documentation>On the entry slip road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="exitSlipRoad">
        <xs:annotation>
          <xs:documentation>On the exit slip road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="flyover">
        <xs:annotation>
          <xs:documentation>On the flyover, i.e. the section of road passing over another.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="leftHandFeederRoad">
        <xs:annotation>
          <xs:documentation>On the left hand feeder road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="leftHandParallelCarriageway">
        <xs:annotation>
          <xs:documentation>On the left hand parallel carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mainCarriageway">
        <xs:annotation>
          <xs:documentation>On the main carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="oppositeCarriageway">
        <xs:annotation>
          <xs:documentation>On the opposite carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="parallelCarriageway">
        <xs:annotation>
          <xs:documentation>On the adjacent parallel carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rightHandFeederRoad">
        <xs:annotation>
          <xs:documentation>On the right hand feeder road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rightHandParallelCarriageway">
        <xs:annotation>
          <xs:documentation>On the right hand parallel carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roundabout">
        <xs:annotation>
          <xs:documentation>On the roundabout.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="serviceRoad">
        <xs:annotation>
          <xs:documentation>On the adjacent service road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="slipRoads">
        <xs:annotation>
          <xs:documentation>On the slip roads.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="underpass">
        <xs:annotation>
          <xs:documentation>On the underpass, i.e. the section of road passing under another.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Charge">
    <xs:annotation>
      <xs:documentation>A particular charge for a specified interval belonging a charge band.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="charge" type="D2LogicalModel:AmountOfMoney" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Charge for the specified interval (for vehicle of defined characteristics, if any specified) up to the maximum defined duration and during the defined period(s).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="chargeInterval" type="D2LogicalModel:Seconds" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Interval for which the charge applies (e.g. charge applies for 2 hours (to specify in seconds)). If no interval is specified, the price is valid for the whole period (kind of flat fee).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="chargeType" type="D2LogicalModel:ChargeTypeEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The type of charge. Day- week- month- and year-charges can be specified without this enumeration by specifying the interval.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="chargeTypeDescription" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Additional description for this kind of charge type, especially if the enumeration does not fit.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="maxIterationsOfCharge" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>This charge must not be applied more often within this charge band than specified in this attribute. Thus it is possible to specify the first hour for free, for example.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="minIterationsOfCharge" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>This charge must be applied within this charge band at least as often as specified in this attribute. Thus it is possible to specify the first hour in an expensive manner, for example.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="chargeOrderIndex" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A non-unique index which forms an order for applying charges, i.e. a charge may never be applied afterwards a charge with a higher index. For same indices there is no order-restriction. You can skip charges unless their 'minIterationsOfCharge' is not &gt; 0.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="timePeriodOfDay" type="D2LogicalModel:TimePeriodOfDay" minOccurs="0">
        <xs:annotation>
          <xs:documentation>The TimePeriodOfDay limits the validity of the charge to this period (e.g. night-tariffs).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="chargeExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ChargeBand">
    <xs:annotation>
      <xs:documentation>A charge band in accordance with the specified conditions, possibly up to a maximum duration, during a specified period and for a vehicle of specified characteristics (in case of parking).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="chargeCurrency" type="D2LogicalModel:CurrencyEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A three-character code according to ISO 4217 for the currency in which the parking charge is specified (e.g. EUR, GBP, SEK, CZK).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="maximumDuration" type="D2LogicalModel:Seconds" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The maximum duration (e.g. of parking) for which the specified charge is applicable.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="chargeBandName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Name for this charge band.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="applicableForUser" type="D2LogicalModel:UserTypeEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Limitation to a set of special users.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="charge" type="D2LogicalModel:Charge" maxOccurs="unbounded" />
      <xs:element name="applicableForPeriod" type="D2LogicalModel:OverallPeriod" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Charge band limitation on a (complex) period, described by the validity model.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="applicableForVehicles" type="D2LogicalModel:VehicleCharacteristics" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Charge band limitation on a set of vehicles described by their characteristics.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingPermit" type="D2LogicalModel:ParkingPermit" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="chargeBandExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required" />
    <xs:attribute name="version" type="xs:string" use="required" />
  </xs:complexType>
  <xs:complexType name="ChargeBandByReference">
    <xs:annotation>
      <xs:documentation>Using (a) prior defined charge band(s), identified by its reference.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="chargeBandReference" type="D2LogicalModel:_ChargeBandVersionedReference" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A reference to a charge band.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="chargeBandByReferenceExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ChargeTypeEnum">
    <xs:annotation>
      <xs:documentation>Charge type</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="minimum">
        <xs:annotation>
          <xs:documentation>Minimum price for the given interval.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="maximum">
        <xs:annotation>
          <xs:documentation>Maximum price for the given interval.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="additionalIntervalPrice">
        <xs:annotation>
          <xs:documentation>Price for all intervals following the first interval.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="seasonTicket">
        <xs:annotation>
          <xs:documentation>Season ticket.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="temporaryPrice">
        <xs:annotation>
          <xs:documentation>Temporary price.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="firstIntervalPrice">
        <xs:annotation>
          <xs:documentation>Price for the first interval, e.g. the first hour. See also 'additional'.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="freeParking">
        <xs:annotation>
          <xs:documentation>Free Parking. Set charge to 0.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="flat">
        <xs:annotation>
          <xs:documentation>Flat fee.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ChargingStationUsageTypeEnum">
    <xs:annotation>
      <xs:documentation>Type of usage for electric charging station(s).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="electricVehicle">
        <xs:annotation>
          <xs:documentation>Charging of electric vehicles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="motorhomeOrCaravanSupply">
        <xs:annotation>
          <xs:documentation>Supply for motorhomes or caravans.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="electricBikeOrMotorcycle">
        <xs:annotation>
          <xs:documentation>Charging of E-Bikes or E-Motorcycles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lorryPowerConsumption">
        <xs:annotation>
          <xs:documentation>Supply for lorries with power consumption, e.g. for refrigerated goods transports.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="electricalDevices">
        <xs:annotation>
          <xs:documentation>Provides a plug for electrical devices (e.g. shaver, mobile phones, hair dryer, ...)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other usage for the electric charging stations.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ComparisonOperatorEnum">
    <xs:annotation>
      <xs:documentation>Logical comparison operations.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="equalTo">
        <xs:annotation>
          <xs:documentation>Logical comparison operator of "equal to".</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="greaterThan">
        <xs:annotation>
          <xs:documentation>Logical comparison operator of "greater than".</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="greaterThanOrEqualTo">
        <xs:annotation>
          <xs:documentation>Logical comparison operator of "greater than or equal to".</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lessThan">
        <xs:annotation>
          <xs:documentation>Logical comparison operator of "less than".</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lessThanOrEqualTo">
        <xs:annotation>
          <xs:documentation>Logical comparison operator of "less than or equal to".</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ConfidentialityValueEnum">
    <xs:annotation>
      <xs:documentation>Values of confidentiality.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="internalUse">
        <xs:annotation>
          <xs:documentation>For internal use only of the recipient organisation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noRestriction">
        <xs:annotation>
          <xs:documentation>No restriction on usage.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restrictedToAuthorities">
        <xs:annotation>
          <xs:documentation>Restricted for use only by authorities.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restrictedToAuthoritiesAndTrafficOperators">
        <xs:annotation>
          <xs:documentation>Restricted for use only by authorities and traffic operators.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restrictedToAuthoritiesTrafficOperatorsAndPublishers">
        <xs:annotation>
          <xs:documentation>Restricted for use only by authorities, traffic operators and publishers (service providers).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restrictedToAuthoritiesTrafficOperatorsAndVms">
        <xs:annotation>
          <xs:documentation>Restricted for use only by authorities, traffic operators, publishers (service providers) and variable message signs.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Contact">
    <xs:annotation>
      <xs:documentation>Address and contact information about some person, service or the parking site, provided in detail or via reference.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="contactUnknown" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>When true, the contact for the selected role and/or timeframe is unknown. Don't use the specialisations in this case.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="contactNotDefined" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>When true, there is currently no contact defined for the selected role and/or timeframe. Don't use the specialisations in this case.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="validityOfContact" type="D2LogicalModel:OverallPeriod" minOccurs="0" />
      <xs:element name="contactExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ContactByReference">
    <xs:annotation>
      <xs:documentation>Contact information that is addressed via a reference.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Contact">
        <xs:sequence>
          <xs:element name="contactReference" type="D2LogicalModel:_ContactDetailsVersionedReference" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Contact information provided by a reference.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactByReferenceExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ContactDetails">
    <xs:annotation>
      <xs:documentation>Details for some person, service or the parking site itself, especially address information.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Contact">
        <xs:sequence>
          <xs:element name="contactOrganisationName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Name of the organisation or service. Do not use this attribute in combination with role "parkingSiteAddress".</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactPersonName" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Name of the contact person.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactPersonFirstName" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>First name of the contact person.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactPersonPosition" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The position of the contact person.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactDetailsLanguage" type="D2LogicalModel:Language" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Language(s) this contact is able to speak resp. understand.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactDetailsAddress" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Complete address of the contact. Alternatively use the separate fields to describe the address.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactDetailsStreet" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Street of the contact.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactDetailsHouseNumber" type="D2LogicalModel:String" minOccurs="0" maxOccurs="2">
            <xs:annotation>
              <xs:documentation>House number of the contact. Supports a multiplicity up to two, to specify lower and upper numbers.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactDetailsPostcode" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Postcode of the contact.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactDetailsCity" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>City of the contact.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="country" type="D2LogicalModel:CountryEnum" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>ISO 3166-1 two character country code.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactDetailsTelephoneNumber" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Telephone Number of contact.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactDetailsFax" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Fax of the contact.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactDetailsEMail" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>E-Mail address of the contact.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="urlLinkAddress" type="D2LogicalModel:Url" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A Uniform Resource Locator (URL) address pointing to a resource available on the Internet from where further relevant information may be obtained.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactDetailsLogoUrl" type="D2LogicalModel:Url" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Url to define a logo of this contact.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="available24hours" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Specifies if the availability is 24 hours a day. If omitted, this information is unknown or heterogeneous.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactDetailsResponsibility" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Specification of what service or equipment the contact is responsible for.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactDetailsMoreInfo" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Additional information relating to the contact.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="publishingAgreement" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Indication, whether the contact accepted publishing its contact information.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="contactDetailsOwnership" type="D2LogicalModel:OwnershipTypeEnum" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Information if the contact in question is a private or public institution.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="groupOfLocations" type="D2LogicalModel:GroupOfLocations" minOccurs="0" />
          <xs:element name="contactDetailsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
        <xs:attribute name="id" type="xs:string" use="required" />
        <xs:attribute name="version" type="xs:string" use="required" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="CountryEnum">
    <xs:annotation>
      <xs:documentation>List of countries.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="at">
        <xs:annotation>
          <xs:documentation>Austria</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="be">
        <xs:annotation>
          <xs:documentation>Belgium</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bg">
        <xs:annotation>
          <xs:documentation>Bulgaria</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ch">
        <xs:annotation>
          <xs:documentation>Switzerland</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="cs">
        <xs:annotation>
          <xs:documentation>Serbia and Montenegro</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="cy">
        <xs:annotation>
          <xs:documentation>Cyprus</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="cz">
        <xs:annotation>
          <xs:documentation>Czech Republic</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="de">
        <xs:annotation>
          <xs:documentation>Germany</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="dk">
        <xs:annotation>
          <xs:documentation>Denmark</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ee">
        <xs:annotation>
          <xs:documentation>Estonia</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="es">
        <xs:annotation>
          <xs:documentation>Spain</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fi">
        <xs:annotation>
          <xs:documentation>Finland</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fo">
        <xs:annotation>
          <xs:documentation>Faroe Islands</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fr">
        <xs:annotation>
          <xs:documentation>France</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="gb">
        <xs:annotation>
          <xs:documentation>Great Britain</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="gg">
        <xs:annotation>
          <xs:documentation>Guernsey</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="gi">
        <xs:annotation>
          <xs:documentation>Gibraltar</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="gr">
        <xs:annotation>
          <xs:documentation>Greece</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hr">
        <xs:annotation>
          <xs:documentation>Croatia</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hu">
        <xs:annotation>
          <xs:documentation>Hungary</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ie">
        <xs:annotation>
          <xs:documentation>Ireland</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="im">
        <xs:annotation>
          <xs:documentation>Isle Of Man</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="is">
        <xs:annotation>
          <xs:documentation>Iceland</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="it">
        <xs:annotation>
          <xs:documentation>Italy</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="je">
        <xs:annotation>
          <xs:documentation>Jersey</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="li">
        <xs:annotation>
          <xs:documentation>Lichtenstein</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lt">
        <xs:annotation>
          <xs:documentation>Lithuania</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lu">
        <xs:annotation>
          <xs:documentation>Luxembourg</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lv">
        <xs:annotation>
          <xs:documentation>Latvia</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ma">
        <xs:annotation>
          <xs:documentation>Morocco</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mc">
        <xs:annotation>
          <xs:documentation>Monaco</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mk">
        <xs:annotation>
          <xs:documentation>Macedonia</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mt">
        <xs:annotation>
          <xs:documentation>Malta</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nl">
        <xs:annotation>
          <xs:documentation>Netherlands</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="no">
        <xs:annotation>
          <xs:documentation>Norway</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pl">
        <xs:annotation>
          <xs:documentation>Poland</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pt">
        <xs:annotation>
          <xs:documentation>Portugal</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ro">
        <xs:annotation>
          <xs:documentation>Romania</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="se">
        <xs:annotation>
          <xs:documentation>Sweden</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="si">
        <xs:annotation>
          <xs:documentation>Slovenia</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sk">
        <xs:annotation>
          <xs:documentation>Slovakia</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sm">
        <xs:annotation>
          <xs:documentation>San Marino</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tr">
        <xs:annotation>
          <xs:documentation>Turkey</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="va">
        <xs:annotation>
          <xs:documentation>Vatican City State</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other than as defined in this enumeration.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="CubicMetres">
    <xs:annotation>
      <xs:documentation>A volumetric measure defined in cubic metres.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Float" />
  </xs:simpleType>
  <xs:simpleType name="CurrencyEnum">
    <xs:annotation>
      <xs:documentation>Three letter code defining the currency according to ISO 4217 (e.g. EUR for Euro). This enumeration only contains European currencies including the US dollar.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="eur">
        <xs:annotation>
          <xs:documentation>Euro</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="all">
        <xs:annotation>
          <xs:documentation>Lek (Albania)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="amd">
        <xs:annotation>
          <xs:documentation>Armeniam Dram</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="azn">
        <xs:annotation>
          <xs:documentation>Azerbaijanian Manat</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bam">
        <xs:annotation>
          <xs:documentation>Convertible Mark (Bosnia and Herzogowina)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bgn">
        <xs:annotation>
          <xs:documentation>Bulgarian Lev</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="byr">
        <xs:annotation>
          <xs:documentation>Belarussian Ruble</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="chf">
        <xs:annotation>
          <xs:documentation>Swiss Franc</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="czk">
        <xs:annotation>
          <xs:documentation>Czech Koruna</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="dkk">
        <xs:annotation>
          <xs:documentation>Danish Krone</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="gbp">
        <xs:annotation>
          <xs:documentation>Pound Sterling</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="gel">
        <xs:annotation>
          <xs:documentation>Lari (Georgia)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hrk">
        <xs:annotation>
          <xs:documentation>Croatian Kuna</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="huf">
        <xs:annotation>
          <xs:documentation>Forint (Hungary)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="isk">
        <xs:annotation>
          <xs:documentation>Iceland Krona</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ltl">
        <xs:annotation>
          <xs:documentation>Litas (Lithuania)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mdl">
        <xs:annotation>
          <xs:documentation>Moldovan Leu</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mkd">
        <xs:annotation>
          <xs:documentation>Denar</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nok">
        <xs:annotation>
          <xs:documentation>Norwegian Krone</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pln">
        <xs:annotation>
          <xs:documentation>Zloty</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ron">
        <xs:annotation>
          <xs:documentation>New Romanian Leu</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rsd">
        <xs:annotation>
          <xs:documentation>Serbian Dinar</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rub">
        <xs:annotation>
          <xs:documentation>Russian Ruble</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sek">
        <xs:annotation>
          <xs:documentation>Swedish Krona</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="try">
        <xs:annotation>
          <xs:documentation>Turkish Lira</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="uah">
        <xs:annotation>
          <xs:documentation>Hryvnia (Ukraine)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="usd">
        <xs:annotation>
          <xs:documentation>US Dollar</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Another currency.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="d2LogicalModel" type="D2LogicalModel:D2LogicalModel">
    <xs:unique name="_d2LogicalModelParkingRouteDetailsConstraint">
      <xs:selector xpath=".//D2LogicalModel:parkingRouteDetails" />
      <xs:field xpath="@id" />
      <xs:field xpath="@version" />
    </xs:unique>
    <xs:unique name="_d2LogicalModelParkingTableConstraint">
      <xs:selector xpath=".//D2LogicalModel:parkingTable" />
      <xs:field xpath="@id" />
      <xs:field xpath="@version" />
    </xs:unique>
    <xs:unique name="_d2LogicalModelContactDetailsConstraint">
      <xs:selector xpath=".//D2LogicalModel:contactDetails" />
      <xs:field xpath="@id" />
      <xs:field xpath="@version" />
    </xs:unique>
    <xs:unique name="_d2LogicalModelParkingAccessConstraint">
      <xs:selector xpath=".//D2LogicalModel:parkingAccess" />
      <xs:field xpath="@id" />
    </xs:unique>
    <xs:unique name="_d2LogicalModelParkingRecordConstraint">
      <xs:selector xpath=".//D2LogicalModel:parkingRecord" />
      <xs:field xpath="@id" />
      <xs:field xpath="@version" />
    </xs:unique>
    <xs:unique name="_d2LogicalModelChargeBandConstraint">
      <xs:selector xpath=".//D2LogicalModel:chargeBand" />
      <xs:field xpath="@id" />
      <xs:field xpath="@version" />
    </xs:unique>
  </xs:element>
  <xs:complexType name="D2LogicalModel">
    <xs:annotation>
      <xs:documentation>The DATEX II logical model comprising exchange, content payload and management sub-models.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="exchange" type="D2LogicalModel:Exchange" />
      <xs:element name="payloadPublication" type="D2LogicalModel:PayloadPublication" minOccurs="0" />
      <xs:element name="d2LogicalModelExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="modelBaseVersion" use="required" fixed="2" />
  </xs:complexType>
  <xs:simpleType name="DangerousGoodsRegulationsEnum">
    <xs:annotation>
      <xs:documentation>Types of dangerous goods regulations.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="adr">
        <xs:annotation>
          <xs:documentation>European agreement on the international carriage of dangerous goods on road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="iataIcao">
        <xs:annotation>
          <xs:documentation>Regulations covering the international transportation of dangerous goods issued by the International Air Transport Association and the International Civil Aviation Organisation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="imoImdg">
        <xs:annotation>
          <xs:documentation>Regulations regarding the transportation of dangerous goods on ocean-going vessels issued by the International Maritime Organisation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="railroadDangerousGoodsBook">
        <xs:annotation>
          <xs:documentation>International regulations concerning the international carriage of dangerous goods by rail.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Date">
    <xs:annotation>
      <xs:documentation>A combination of year, month and day integer-valued properties plus an optional timezone property. It represents an interval of exactly one day, beginning on the first moment of the day in the timezone, i.e. '00:00:00' up to but not including '24:00:00'.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:date" />
  </xs:simpleType>
  <xs:simpleType name="DateTime">
    <xs:annotation>
      <xs:documentation>A combination of integer-valued year, month, day, hour, minute properties, a decimal-valued second property and a time zone property from which it is possible to determine the local time, the equivalent UTC time and the time zone offset from UTC.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:dateTime" />
  </xs:simpleType>
  <xs:simpleType name="DayEnum">
    <xs:annotation>
      <xs:documentation>Days of the week.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="monday">
        <xs:annotation>
          <xs:documentation>Monday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tuesday">
        <xs:annotation>
          <xs:documentation>Tuesday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="wednesday">
        <xs:annotation>
          <xs:documentation>Wednesday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="thursday">
        <xs:annotation>
          <xs:documentation>Thursday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="friday">
        <xs:annotation>
          <xs:documentation>Friday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="saturday">
        <xs:annotation>
          <xs:documentation>Saturday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sunday">
        <xs:annotation>
          <xs:documentation>Sunday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="DayWeekMonth">
    <xs:annotation>
      <xs:documentation>Specification of periods defined by the intersection of days, weeks and months.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="applicableDay" type="D2LogicalModel:DayEnum" minOccurs="0" maxOccurs="7">
        <xs:annotation>
          <xs:documentation>Applicable day of the week. "All days of the week" is expressed by non-inclusion of this attribute.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="applicableWeek" type="D2LogicalModel:WeekOfMonthEnum" minOccurs="0" maxOccurs="5">
        <xs:annotation>
          <xs:documentation>Applicable week of the month (1 to 5).  "All weeks of the month" is expressed by non-inclusion of this attribute.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="applicableMonth" type="D2LogicalModel:MonthOfYearEnum" minOccurs="0" maxOccurs="12">
        <xs:annotation>
          <xs:documentation>Applicable month of the year.  "All months of the year" is expressed by non-inclusion of this attribute.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dayWeekMonthExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="Decimal">
    <xs:annotation>
      <xs:documentation>A decimal number whose value space is the set of numbers that can be obtained by multiplying an integer by a non-positive power of ten, i.e., expressible as i × 10^-n where i and n are integers and n &gt;= 0.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:decimal" />
  </xs:simpleType>
  <xs:complexType name="DedicatedAccess">
    <xs:annotation>
      <xs:documentation>Reference to an access of any type (vehicles, pedestrian, ...).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="dedicatedAccess" type="D2LogicalModel:_ParkingAccessReference" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specifies a reference to an access, object (i.e. an entrance, an exit or both). A Point location and further characteristics can be specified for those objects.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="distanceFromParkingSpace" type="D2LogicalModel:MetresAsNonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Distance from this access to the parking space or group of parking spaces. Especially interesting for handicapped people on the one hand or in case of the need of changing the side of a motorway.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dedicatedAccessExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Destination" abstract="true">
    <xs:annotation>
      <xs:documentation>The specification a destination. This may be either a point location or an area location.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="destinationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Dimension">
    <xs:annotation>
      <xs:documentation>A component that provides dimension information. The product of width and height must not be necessarily be the square footage (e.g. in multi-storey buildings or when some zones are not part of the square footage).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="dimensionLength" type="D2LogicalModel:MetresAsFloat" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Length.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dimensionWidth" type="D2LogicalModel:MetresAsFloat" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Width.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dimensionHeight" type="D2LogicalModel:MetresAsFloat" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Height.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dimensionUsableArea" type="D2LogicalModel:SquareMetres" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The area measured in square metres, that is available for some specific purpose.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dimensionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="DirectionEnum">
    <xs:annotation>
      <xs:documentation>List of directions of travel.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="allDirections">
        <xs:annotation>
          <xs:documentation>All directions (where more than two are applicable) at this point on the road network.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bothWays">
        <xs:annotation>
          <xs:documentation>Both directions that are applicable at this point on the road network.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="clockwise">
        <xs:annotation>
          <xs:documentation>Clockwise.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="anticlockwise">
        <xs:annotation>
          <xs:documentation>Anti-clockwise.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="innerRing">
        <xs:annotation>
          <xs:documentation>Inner ring direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="outerRing">
        <xs:annotation>
          <xs:documentation>Outer ring direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="northBound">
        <xs:annotation>
          <xs:documentation>North bound general direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="northEastBound">
        <xs:annotation>
          <xs:documentation>North east bound general direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="eastBound">
        <xs:annotation>
          <xs:documentation>East bound general direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="southEastBound">
        <xs:annotation>
          <xs:documentation>South east bound general direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="southBound">
        <xs:annotation>
          <xs:documentation>South bound general direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="southWestBound">
        <xs:annotation>
          <xs:documentation>South west bound general direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="westBound">
        <xs:annotation>
          <xs:documentation>West bound general direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="northWestBound">
        <xs:annotation>
          <xs:documentation>North west bound general direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="inboundTowardsTown">
        <xs:annotation>
          <xs:documentation>Heading towards town centre direction of travel.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="outboundFromTown">
        <xs:annotation>
          <xs:documentation>Heading out of or away from the town centre direction of travel.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Direction is unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="opposite">
        <xs:annotation>
          <xs:documentation>Opposite direction to the normal direction of flow at this point on the road network.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other than as defined in this enumeration.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="DistanceAlongLinearElement" abstract="true">
    <xs:annotation>
      <xs:documentation>Distance of a point along a linear element either measured from the start node or a defined referent on that linear element, where the start node is relative to the element definition rather than the direction of traffic flow.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="distanceAlongLinearElementExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="DistanceFromLinearElementReferent">
    <xs:annotation>
      <xs:documentation>Distance of a point along a linear element measured from a "from referent" on the linear element, in the sense relative to the linear element definition rather than the direction of traffic flow or optionally towards a "towards referent".</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DistanceAlongLinearElement">
        <xs:sequence>
          <xs:element name="distanceAlong" type="D2LogicalModel:MetresAsFloat" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A measure of distance along a linear element.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="fromReferent" type="D2LogicalModel:Referent">
            <xs:annotation>
              <xs:documentation>A known location along the linear element from which the distanceAlong is measured, termed the "fromReferent" in ISO 19148. </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="towardsReferent" type="D2LogicalModel:Referent" minOccurs="0">
            <xs:annotation>
              <xs:documentation>A known location along the linear element towards which the distanceAlong is measured, termed the "towardsReferent" in ISO 19148.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="distanceFromLinearElementReferentExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="DistanceFromLinearElementStart">
    <xs:annotation>
      <xs:documentation>Distance of a point along a linear element measured from the start node of the linear element, where start node is relative to the element definition rather than the direction of traffic flow.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DistanceAlongLinearElement">
        <xs:sequence>
          <xs:element name="distanceAlong" type="D2LogicalModel:MetresAsFloat" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A measure of distance along a linear element.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="distanceFromLinearElementStartExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ElectricCharging">
    <xs:annotation>
      <xs:documentation>Additional information for the equipment 'electricChargingStation'. This component refers to the number of charging stations specified in the attribute 'numberOfEquipmentOrServiceFacilities'.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="chargingStationUsageType" type="D2LogicalModel:ChargingStationUsageTypeEnum" minOccurs="1" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Usage type of the electric charging station(s).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="chargingStationModelType" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Model type of the electric charging station(s). Brand or company information can be specified in 'ParkingEquipmentOrServiceFacility'. For more than one type of model, use several instances of 'ParkingEquipmentOrServiceFacility'.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="maximumCurrent" type="D2LogicalModel:Ampere" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The maximum current of the electric charging station(s) (in Ampere).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="voltage" type="D2LogicalModel:Volt" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Available Voltage(s) of the electric charging station(s).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="chargingStationConnectorType" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Connector type(s) for the electric charging station(s).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="numberOfChargingPoints" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Number of vehicles or devices, which can be charged simultaneously (sum over all electric charing stations specified with the 'numberOf...' attribute). If omitted, 1 charging point per station is assumed.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="electricChargingExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Equipment">
    <xs:annotation>
      <xs:documentation>One type of equipment, that is available on the parking site.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:ParkingEquipmentOrServiceFacility">
        <xs:sequence>
          <xs:element name="equipmentType" type="D2LogicalModel:EquipmentTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>One type of equipment, that is available on the parking site.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="electricCharging" type="D2LogicalModel:ElectricCharging" minOccurs="0" />
          <xs:element name="equipmentExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="EquipmentTypeEnum">
    <xs:annotation>
      <xs:documentation>Equipment available on the parking or parking space or grouped parking spaces.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="toilet">
        <xs:annotation>
          <xs:documentation>Indicates, whether there are toilets available.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="shower">
        <xs:annotation>
          <xs:documentation>Indicates, whether there are shower facilities available.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="informationPoint">
        <xs:annotation>
          <xs:documentation>An information point with employees.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="informatonStele">
        <xs:annotation>
          <xs:documentation>An unmanned information point.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="internetTerminal">
        <xs:annotation>
          <xs:documentation>Public internet terminal. Charges may be specified using the TariffsAndPayment section.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="internetWireless">
        <xs:annotation>
          <xs:documentation>Public wireless internet. Specifying an amount would be the number of hotspots/access points. Charges may be specified using the TariffsAndPayment section.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="payDesk">
        <xs:annotation>
          <xs:documentation>A possibility to pay for parking (with employees).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="paymentMachine">
        <xs:annotation>
          <xs:documentation>A parking ticket machine.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="cashMachine">
        <xs:annotation>
          <xs:documentation>Cash machine.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vendingMachine">
        <xs:annotation>
          <xs:documentation>A vending machine for snacks, coffee etc. (without manpower).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="faxMachineOrService">
        <xs:annotation>
          <xs:documentation>A possibility to send and/or receive faxes.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="copyMachineOrService">
        <xs:annotation>
          <xs:documentation>A possibility to create copies of documents.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="safeDeposit">
        <xs:annotation>
          <xs:documentation>A possibility to store valuable possession in a safe way. </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="luggageLocker">
        <xs:annotation>
          <xs:documentation>Possibility to deposit luggage in a safe way.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="publicPhone">
        <xs:annotation>
          <xs:documentation>Indicates, whether there's a public telephone available.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="publicCoinPhone">
        <xs:annotation>
          <xs:documentation>Indicates, whether there's a public telephone available that can be used with coins.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="publicCardPhone">
        <xs:annotation>
          <xs:documentation>Indicates, whether there's a public telephone available that can be used with a card.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="elevator">
        <xs:annotation>
          <xs:documentation>Indication of the availability of elevators.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="picnicFacilities">
        <xs:annotation>
          <xs:documentation>Indication of whether any picnicking facilities, such as tables, chairs and shaded areas, are available.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="dumpingStation">
        <xs:annotation>
          <xs:documentation>Possibility to get rid of sewerage (especially for motorhomes).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="freshWater">
        <xs:annotation>
          <xs:documentation>Possibility to get fresh water (e.g. for motorhomes) - toilets and showers etc. are not intended here.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="wasteDisposal">
        <xs:annotation>
          <xs:documentation>Possibility to get rid of waste in a legal way (e.g. for truckers or motorhomes). Normal refuse bins are not intended here.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="refuseBin">
        <xs:annotation>
          <xs:documentation>Refuse bins for small amounts of garbage (see also 'wasteDisposal').</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="iceFreeScaffold">
        <xs:annotation>
          <xs:documentation>A technical equipment to remove ice and snow from the roof of lorries.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="playground">
        <xs:annotation>
          <xs:documentation>A playground for children.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="electricChargingStation">
        <xs:annotation>
          <xs:documentation>For charging vehicles, motorhome supply etc. The 'numberOf...' attribute specifies the number of charging stations. You may specify the number of charging points and further information with component 'ElectricCharging'.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bikeParking">
        <xs:annotation>
          <xs:documentation>Bike parking.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tollTerminal">
        <xs:annotation>
          <xs:documentation>A terminal, where toll charges can be paid manually (this does not mean a toll gate on the road)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="defibrillator">
        <xs:annotation>
          <xs:documentation>Medical equipment to provide first aid after heart attacks.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="firstAidEquipment">
        <xs:annotation>
          <xs:documentation>Equipment to support first aid on injured people. Note that 'defibrillator' is a separate literal.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fireHose">
        <xs:annotation>
          <xs:documentation>A hose for water transport in case of fire.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fireExtingiusher">
        <xs:annotation>
          <xs:documentation>Fire extinguisher</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fireHydrant">
        <xs:annotation>
          <xs:documentation>Fire hydrant</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="none">
        <xs:annotation>
          <xs:documentation>None.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Some other equipment. Use 'otherEquipmentOrServiceFacility' to specify it.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Exchange">
    <xs:annotation>
      <xs:documentation>Details associated with the management of the exchange between the supplier and the client.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="keepAlive" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicator that this exchange is due to "keep alive" functionality.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="response" type="D2LogicalModel:ResponseEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The type of the response that the supplier is returning to the requesting client.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="subscriptionReference" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Unique identifier of the client's subscription with the supplier.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="supplierIdentification" type="D2LogicalModel:InternationalIdentifier" />
      <xs:element name="exchangeExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ExternalReferencing">
    <xs:annotation>
      <xs:documentation>A location defined by reference to an external/other referencing system.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="externalLocationCode" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A code in the external referencing system which defines the location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="externalReferencingSystem" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identification of the external/other location referencing system.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="externalReferencingExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="Float">
    <xs:annotation>
      <xs:documentation>A floating point number whose value space consists of the values m × 2^e, where m is an integer whose absolute value is less than 2^24, and e is an integer between -149 and 104, inclusive.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:float" />
  </xs:simpleType>
  <xs:simpleType name="FuelTypeEnum">
    <xs:annotation>
      <xs:documentation>Type of fuel used by a vehicle.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="battery">
        <xs:annotation>
          <xs:documentation>Battery.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="biodiesel">
        <xs:annotation>
          <xs:documentation>Biodiesel.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="diesel">
        <xs:annotation>
          <xs:documentation>Diesel.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="dieselBatteryHybrid">
        <xs:annotation>
          <xs:documentation>Diesel and battery hybrid.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ethanol">
        <xs:annotation>
          <xs:documentation>Ethanol.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hydrogen">
        <xs:annotation>
          <xs:documentation>Hydrogen.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="liquidGas">
        <xs:annotation>
          <xs:documentation>Liquid gas of any type including LPG.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lpg">
        <xs:annotation>
          <xs:documentation>Liquid petroleum gas.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="methane">
        <xs:annotation>
          <xs:documentation>Methane gas.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="petrol">
        <xs:annotation>
          <xs:documentation>Petrol.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="petrolBatteryHybrid">
        <xs:annotation>
          <xs:documentation>Petrol and battery hybrid.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="GenericPublication">
    <xs:annotation>
      <xs:documentation>A publication used to make level B extensions at the publication level.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:PayloadPublication">
        <xs:sequence>
          <xs:element name="genericPublicationName" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The name of the generic publication.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="genericPublicationExtension" type="D2LogicalModel:_GenericPublicationExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="GrossWeightCharacteristic">
    <xs:annotation>
      <xs:documentation>Gross weight characteristic of a vehicle.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="comparisonOperator" type="D2LogicalModel:ComparisonOperatorEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The operator to be used in the vehicle characteristic comparison operation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="grossVehicleWeight" type="D2LogicalModel:Tonnes" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The gross weight of the vehicle and its load, including any trailers.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="grossWeightCharacteristicExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="GroupOfLocations" abstract="true">
    <xs:annotation>
      <xs:documentation>One or more physically separate locations. Multiple locations may be related, as in an itinerary (or route), or may be unrelated. It is not for identifying the same physical location using different Location objects for different referencing systems.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="groupOfLocationsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="GroupOfParkingSites">
    <xs:annotation>
      <xs:documentation>A logical composition of parking sites with aggregated properties (e.g. number of spaces). Examples: Urban parking area "West" or all truck parkings along a motorway. The included parking sites may -but must not- be specified as subcomponents.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:ParkingRecord">
        <xs:sequence>
          <xs:element name="groupOfParkingSitesType" type="D2LogicalModel:GroupOfParkingSitesTypeEnum" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of this group of parking sites.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingSiteByReference" type="D2LogicalModel:_ParkingRecordVersionedReference" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Parking sites of this collection defined by reference.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingSite" type="D2LogicalModel:ParkingSite" minOccurs="0" maxOccurs="unbounded" />
          <xs:element name="groupOfParkingSitesExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="GroupOfParkingSitesTypeEnum">
    <xs:annotation>
      <xs:documentation>The type of this group of parking sites.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="truckParkingPriorityZone">
        <xs:annotation>
          <xs:documentation>This group is describing a truck parking priority zone according to the EU regulation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="aggregationOfInformation">
        <xs:annotation>
          <xs:documentation>The main purpose of this group is to give summarized information of all encapsulated parking sites (e.g. number of spaces in total).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="GroupOfParkingSpaces">
    <xs:annotation>
      <xs:documentation>A group of parking spaces. All information provided has to be identical for all places in this group. Can also be used just to give the number of lorry parkings, for example. 'GroupOfParkingSpaces' may be multiple defined or include each other.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:ParkingSpaceBasics">
        <xs:sequence>
          <xs:element name="parkingNumberOfSpaces" type="D2LogicalModel:NonNegativeInteger" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Number of parking spaces (attribute is used for a parking record as well as for a group of parking spaces).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingTypeOfGroup" type="D2LogicalModel:ParkingTypeOfGroup" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Defines the type of this group specification.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="identicalToGroup" type="D2LogicalModel:IndexReference" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Points to another instance of 'GroupOfParkingSpaces', which is identical from a local point of view. To be used when defining mixed parking areas with different time slots.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="realSubsetOfGroup" type="D2LogicalModel:IndexReference" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Points to another instance of 'GroupOfParkingSpaces', which is a real superset from a local point of view. To be used when defining mixed parking areas with different time slots.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="minimumParkingSpaceDimension" type="D2LogicalModel:Dimension" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Lower dimension boundaries for all spaces within the group. Note that there must not exist a space with this dimension, but each space's dimension values must be equal or higher.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="dimensionOfGroup" type="D2LogicalModel:Dimension" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Dimension of a virtual rectangle encapsulating the group of parking spaces. Use 'dimensionUsableArea' to define the total space available for parking within this group. Do not use 'dimensionHeight'.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="maximumParkingSpaceDimension" type="D2LogicalModel:Dimension" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Dimension of the largest space within this group (i.e. there must be at least one space of this dimension). If the comparison of dimension values is not unique, the length is decisive.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingSpace" type="D2LogicalModel:_GroupOfParkingSpacesParkingSpaceIndexParkingSpace" minOccurs="0" maxOccurs="unbounded" />
          <xs:element name="groupOfLocations" type="D2LogicalModel:GroupOfLocations" minOccurs="0" />
          <xs:element name="groupOfParkingSpacesExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="HazardousMaterials">
    <xs:annotation>
      <xs:documentation>Details of hazardous materials.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="chemicalName" type="D2LogicalModel:MultilingualString" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The chemical name of the hazardous substance carried by the vehicle.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dangerousGoodsFlashPoint" type="D2LogicalModel:TemperatureCelsius" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The temperature at which the vapour from a hazardous substance will ignite in air.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dangerousGoodsRegulations" type="D2LogicalModel:DangerousGoodsRegulationsEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The code defining the regulations, international or national, applicable for a means of transport.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="hazardCodeIdentification" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The dangerous goods description code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="hazardCodeVersionNumber" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The version/revision number of date of issuance of the hazardous material code used.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="hazardSubstanceItemPageNumber" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A number giving additional hazard code classification of a goods item within the applicable dangerous goods regulation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="tremCardNumber" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The identification of a transport emergency card giving advice for emergency actions.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="undgNumber" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A unique serial number assigned within the United Nations to substances and articles contained in a list of the dangerous goods most commonly carried.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="volumeOfDangerousGoods" type="D2LogicalModel:CubicMetres" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The volume of dangerous goods on the vehicle(s) reported in a traffic/travel situation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="weightOfDangerousGoods" type="D2LogicalModel:Tonnes" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The weight of dangerous goods on the vehicle(s) reported in a traffic/travel situation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="hazardousMaterialsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="HeaderInformation">
    <xs:annotation>
      <xs:documentation>Management information relating to the data contained within a publication.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="areaOfInterest" type="D2LogicalModel:AreaOfInterestEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The extent of the geographic area to which the related information should be distributed.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="confidentiality" type="D2LogicalModel:ConfidentialityValueEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The extent to which the related information may be circulated, according to the recipient type. Recipients must comply with this confidentiality statement.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="informationStatus" type="D2LogicalModel:InformationStatusEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The status of the related information (real, test, exercise ....).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="urgency" type="D2LogicalModel:UrgencyEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>This indicates the urgency with which a message recipient or Client should distribute the enclosed information.  Urgency particularly relates to functions within RDS-TMC applications.  </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="headerInformationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="HeaviestAxleWeightCharacteristic">
    <xs:annotation>
      <xs:documentation>Weight characteristic of the heaviest axle on the vehicle.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="comparisonOperator" type="D2LogicalModel:ComparisonOperatorEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The operator to be used in the vehicle characteristic comparison operation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="heaviestAxleWeight" type="D2LogicalModel:Tonnes" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The weight of the heaviest axle on the vehicle.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="heaviestAxleWeightCharacteristicExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="HeightCharacteristic">
    <xs:annotation>
      <xs:documentation>Height characteristic of a vehicle.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="comparisonOperator" type="D2LogicalModel:ComparisonOperatorEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The operator to be used in the vehicle characteristic comparison operation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vehicleHeight" type="D2LogicalModel:MetresAsFloat" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The height of the highest part, excluding antennae, of an individual vehicle above the road surface, in metres.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="heightCharacteristicExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="HeightGradeEnum">
    <xs:annotation>
      <xs:documentation>List of height or vertical gradings of road sections.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="aboveGrade">
        <xs:annotation>
          <xs:documentation>Above or over the normal road grade elevation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="atGrade">
        <xs:annotation>
          <xs:documentation>At the normal road grade elevation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="belowGrade">
        <xs:annotation>
          <xs:documentation>Below or under the normal road grade elevation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="IndexReference">
    <xs:annotation>
      <xs:documentation>A reference to an object given by its index qualifier.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:String" />
  </xs:simpleType>
  <xs:simpleType name="InformationStatusEnum">
    <xs:annotation>
      <xs:documentation>Status of the related information (i.e. real, test or exercise).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="real">
        <xs:annotation>
          <xs:documentation>The information is real. It is not a test or exercise.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="securityExercise">
        <xs:annotation>
          <xs:documentation>The information is part of an exercise which is for testing security.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="technicalExercise">
        <xs:annotation>
          <xs:documentation>The information is part of an exercise which includes tests of associated technical subsystems.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="test">
        <xs:annotation>
          <xs:documentation>The information is part of a test for checking the exchange of this type of information.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Integer">
    <xs:annotation>
      <xs:documentation>An integer number whose value space is the set {-2147483648, -2147483647, -2147483646, ..., -2, -1, 0, 1, 2, ..., 2147483645, 2147483646, 2147483647}.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:integer" />
  </xs:simpleType>
  <xs:complexType name="InternationalIdentifier">
    <xs:annotation>
      <xs:documentation>An identifier/name whose range is specific to the particular country.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="country" type="D2LogicalModel:CountryEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>ISO 3166-1 two character country code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="nationalIdentifier" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identifier or name unique within the specified country.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="internationalIdentifierExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="InterUrbanParkingSite">
    <xs:annotation>
      <xs:documentation>A parking site in an interurban context.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:ParkingSite">
        <xs:sequence>
          <xs:element name="interUrbanParkingSiteLocation" type="D2LogicalModel:InterUrbanParkingSiteLocationEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Defines whether the interurban parking site is located in or nearby a motorway context, is a layby or on-street parking.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="interUrbanParkingSiteExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="InterUrbanParkingSiteLocationEnum">
    <xs:annotation>
      <xs:documentation>Location of the truck or motorway related parking.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="motorway">
        <xs:annotation>
          <xs:documentation>The parking is located directly on a motorway or a similar type of road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nearbyMotorway">
        <xs:annotation>
          <xs:documentation>The parking is located with some distance to a motorway or a similar type of road but focussed on travellers from this motorway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="layBy">
        <xs:annotation>
          <xs:documentation>An area along a road that offers temporary parking.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onStreet">
        <xs:annotation>
          <xs:documentation>Vehicles are parking on the roadside.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>The parking is located somewhere else.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Itinerary" abstract="true">
    <xs:annotation>
      <xs:documentation>Multiple (i.e. more than one) physically separate locations arranged as an ordered set that defines an itinerary or route.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:GroupOfLocations">
        <xs:sequence>
          <xs:element name="routeDestination" type="D2LogicalModel:Destination" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Destination of a route or final location in an itinerary.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="itineraryExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ItineraryByIndexedLocations">
    <xs:annotation>
      <xs:documentation>Multiple physically separate locations arranged as an ordered set that defines an itinerary or route. The index qualifier indicates the order.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Itinerary">
        <xs:sequence>
          <xs:element name="locationContainedInItinerary" type="D2LogicalModel:_LocationContainedInItinerary" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>A location contained in an itinerary (i.e. an ordered set of locations defining a route or itinerary).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="itineraryByIndexedLocationsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ItineraryByReference">
    <xs:annotation>
      <xs:documentation>Multiple (i.e. more than one) physically separate locations which are ordered that constitute an itinerary or route where they are defined by reference to a predefined itinerary.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Itinerary">
        <xs:sequence>
          <xs:element name="predefinedItineraryReference" type="D2LogicalModel:_PredefinedItineraryVersionedReference" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A reference to a versioned instance of a predefined itinerary as specified in a PredefinedLocationsPublication.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="itineraryByReferenceExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Junction">
    <xs:annotation>
      <xs:documentation>Junction (on a highway), can also be an interchange or if applicable also a motorway service station (see junctionClassification).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="junctionClassification" type="D2LogicalModel:JunctionClassificationEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Explicit type of junction.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="junctionName" type="D2LogicalModel:MultilingualString" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Name of the junction.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="junctionNumber" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Number of the junction, might also include letters (example: 23A).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="motorway" type="D2LogicalModel:Road" minOccurs="0">
        <xs:annotation>
          <xs:documentation>A detailed identification of the motorway the junction belongs to.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="destinationMotorway" type="D2LogicalModel:Road" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>In case of any type of intersection, the destination motorway(s) can be defined.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="junctionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="JunctionClassificationEnum">
    <xs:annotation>
      <xs:documentation>Explicit type of a junction.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="threeWayInterchange">
        <xs:annotation>
          <xs:documentation>One motorway merging into another (with three legs in total).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="interchange">
        <xs:annotation>
          <xs:documentation>Usually two crossing motorways (four legs, but can be even more).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="motorwayConnection">
        <xs:annotation>
          <xs:documentation>Beginning or end of a motorway (e.g. changeover to smaller road).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="junction">
        <xs:annotation>
          <xs:documentation>Entrance and exit on a motorway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="temporaryJunction">
        <xs:annotation>
          <xs:documentation>Entrance and exit on a motorway, reserved either for emergency and service or on a temporary basis.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="borderCrossing">
        <xs:annotation>
          <xs:documentation>Motorway crossing a border (between counties, countries, states, ...).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="junctionInOneDirection">
        <xs:annotation>
          <xs:documentation>Entry and Exit on a motorway, where just one direction of the motorway is accessible.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="operationalServiceJunction">
        <xs:annotation>
          <xs:documentation>Junction accessible only for operational services.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="LABELSecurityLevelEnum">
    <xs:annotation>
      <xs:documentation>Security level defined by the LABEL project http://truckparkinglabel.eu.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="none">
        <xs:annotation>
          <xs:documentation>None.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="securityLevel1">
        <xs:annotation>
          <xs:documentation>Providing the basics.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="securityLevel2">
        <xs:annotation>
          <xs:documentation>Technical measures to improve security.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="securityLevel3">
        <xs:annotation>
          <xs:documentation>Security measures are combined, Access of persons restricted.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="securityLevel4">
        <xs:annotation>
          <xs:documentation>Real time monitoring of vehicles and persons by professional staff.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="securityLevel5">
        <xs:annotation>
          <xs:documentation>Verification of vehicles and persons by professional staff, site manned around the clock.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="LABELServiceLevelEnum">
    <xs:annotation>
      <xs:documentation>Service level defined by the LABEL project http://truckparkinglabel.eu.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="none">
        <xs:annotation>
          <xs:documentation>None.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="serviceLevel1">
        <xs:annotation>
          <xs:documentation>Providing the basics.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="serviceLevel2">
        <xs:annotation>
          <xs:documentation>Also providing washing facilities and a more convenient lay-out of the parking area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="serviceLevel3">
        <xs:annotation>
          <xs:documentation>Providing service for personal hygiene and shop/ fuel station.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="serviceLevel4">
        <xs:annotation>
          <xs:documentation>Providing full service for driver and vehicle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="serviceLevel5">
        <xs:annotation>
          <xs:documentation>Providing the high end of comfort levels.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="LaneEnum">
    <xs:annotation>
      <xs:documentation>List of descriptors identifying specific lanes.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="allLanesCompleteCarriageway">
        <xs:annotation>
          <xs:documentation>In all lanes of the carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="busLane">
        <xs:annotation>
          <xs:documentation>In the bus lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="busStop">
        <xs:annotation>
          <xs:documentation>In the bus stop lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carPoolLane">
        <xs:annotation>
          <xs:documentation>In the carpool lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="centralReservation">
        <xs:annotation>
          <xs:documentation>On the central median separating the two directional carriageways of the highway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="crawlerLane">
        <xs:annotation>
          <xs:documentation>In the crawler lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="emergencyLane">
        <xs:annotation>
          <xs:documentation>In the emergency lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="escapeLane">
        <xs:annotation>
          <xs:documentation>In the escape lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="expressLane">
        <xs:annotation>
          <xs:documentation>In the express lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hardShoulder">
        <xs:annotation>
          <xs:documentation>On the hard shoulder.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="heavyVehicleLane">
        <xs:annotation>
          <xs:documentation>In the heavy vehicle lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane1">
        <xs:annotation>
          <xs:documentation>In the first lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane2">
        <xs:annotation>
          <xs:documentation>In the second lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane3">
        <xs:annotation>
          <xs:documentation>In the third lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane4">
        <xs:annotation>
          <xs:documentation>In the fourth lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane5">
        <xs:annotation>
          <xs:documentation>In the fifth lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane6">
        <xs:annotation>
          <xs:documentation>In the sixth lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane7">
        <xs:annotation>
          <xs:documentation>In the seventh lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane8">
        <xs:annotation>
          <xs:documentation>In the eighth lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane9">
        <xs:annotation>
          <xs:documentation>In the ninth lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="layBy">
        <xs:annotation>
          <xs:documentation>In a lay-by.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="leftHandTurningLane">
        <xs:annotation>
          <xs:documentation>In the left hand turning lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="leftLane">
        <xs:annotation>
          <xs:documentation>In the left lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="localTrafficLane">
        <xs:annotation>
          <xs:documentation>In the local traffic lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="middleLane">
        <xs:annotation>
          <xs:documentation>In the middle lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="opposingLanes">
        <xs:annotation>
          <xs:documentation>In the opposing lanes.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="overtakingLane">
        <xs:annotation>
          <xs:documentation>In the overtaking lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rightHandTurningLane">
        <xs:annotation>
          <xs:documentation>In the right hand turning lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rightLane">
        <xs:annotation>
          <xs:documentation>In the right lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rushHourLane">
        <xs:annotation>
          <xs:documentation>In the lane dedicated for use during the rush (peak) hour.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="setDownArea">
        <xs:annotation>
          <xs:documentation>In the area/lane reserved for passenger pick-up or set-down.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="slowVehicleLane">
        <xs:annotation>
          <xs:documentation>In the slow vehicle lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="throughTrafficLane">
        <xs:annotation>
          <xs:documentation>In the through traffic lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tidalFlowLane">
        <xs:annotation>
          <xs:documentation>In the lane dedicated for use as a tidal flow lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="turningLane">
        <xs:annotation>
          <xs:documentation>In the turning lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="verge">
        <xs:annotation>
          <xs:documentation>On the verge.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Language">
    <xs:annotation>
      <xs:documentation>A language datatype, identifies a specified language by an ISO 639-1 2-alpha / ISO 639-2 3-alpha code.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:language" />
  </xs:simpleType>
  <xs:complexType name="LengthCharacteristic">
    <xs:annotation>
      <xs:documentation>Length characteristic of a vehicle.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="comparisonOperator" type="D2LogicalModel:ComparisonOperatorEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The operator to be used in the vehicle characteristic comparison operation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vehicleLength" type="D2LogicalModel:MetresAsFloat" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The overall distance between the front and back of an individual vehicle, including the length of any trailers, couplings, etc.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="lengthCharacteristicExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Linear">
    <xs:annotation>
      <xs:documentation>A linear section along a single road with optional directionality defined between two points on the same road. </xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:NetworkLocation">
        <xs:sequence>
          <xs:element name="tpegLinearLocation" type="D2LogicalModel:TpegLinearLocation" minOccurs="0" />
          <xs:element name="alertCLinear" type="D2LogicalModel:AlertCLinear" minOccurs="0" />
          <xs:element name="linearWithinLinearElement" type="D2LogicalModel:LinearWithinLinearElement" minOccurs="0" />
          <xs:element name="linearExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="LinearElement">
    <xs:annotation>
      <xs:documentation>A linear element along a single linear object, consistent with ISO 19148 definitions. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="roadName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Name of the road of which the linear element forms a part.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="roadNumber" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identifier/number of the road of which the linear element forms a part.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="linearElementReferenceModel" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The identifier of a road network reference model which segments the road network according to specific business rules.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="linearElementReferenceModelVersion" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The version of the identified road network reference model.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="linearElementNature" type="D2LogicalModel:LinearElementNatureEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>An indication of the nature of the linear element.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="linearElementExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="LinearElementByCode">
    <xs:annotation>
      <xs:documentation>A linear element along a single linear object defined by its identifier or code in a road network reference model (specified in LinearElement class) which segments the road network according to specific business rules.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:LinearElement">
        <xs:sequence>
          <xs:element name="linearElementIdentifier" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>An identifier or code of a linear element (or link) in the road network reference model that is specified in the LinearElement class. </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="linearElementByCodeExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="LinearElementByPoints">
    <xs:annotation>
      <xs:documentation>A linear element along a single linear object defined by its start and end points.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:LinearElement">
        <xs:sequence>
          <xs:element name="startPointOfLinearElement" type="D2LogicalModel:Referent">
            <xs:annotation>
              <xs:documentation>The referent at a known location on the linear object which defines the start of the linear element.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="intermediatePointOnLinearElement" type="D2LogicalModel:_IntermediatePointOnLinearElement" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>A referent at a known location on the linear object which is neither the start or end of the linear element.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="endPointOfLinearElement" type="D2LogicalModel:Referent">
            <xs:annotation>
              <xs:documentation>The referent at a known location on the linear object which defines the end of the linear element.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="linearElementByPointsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="LinearElementNatureEnum">
    <xs:annotation>
      <xs:documentation>List of indicative natures of linear elements.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="road">
        <xs:annotation>
          <xs:documentation>The nature of the linear element is a road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadSection">
        <xs:annotation>
          <xs:documentation>The nature of the linear element is a section of a road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="slipRoad">
        <xs:annotation>
          <xs:documentation>The nature of the linear element is a slip road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other than as defined in this enumeration.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="LinearReferencingDirectionEnum">
    <xs:annotation>
      <xs:documentation>Directions of traffic flow relative to the direction in which the linear element is defined.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="both">
        <xs:annotation>
          <xs:documentation>Indicates that both directions of traffic flow are affected by the situation or relate to the traffic data.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="opposite">
        <xs:annotation>
          <xs:documentation>Indicates that the direction of traffic flow affected by the situation or related to the traffic data is in the opposite sense to the direction in which the linear element is defined.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="aligned">
        <xs:annotation>
          <xs:documentation>Indicates that the direction of traffic flow affected by the situation or related to the traffic data is in the same sense as the direction in which the linear element is defined.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Indicates that the direction of traffic flow affected by the situation or related to the traffic data is unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="LinearWithinLinearElement">
    <xs:annotation>
      <xs:documentation>A linear section along a linear element where the linear element is either a part of or the whole of a linear object (i.e. a road), consistent with ISO 19148 definitions. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="administrativeAreaOfLinearSection" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identification of the road administration area which contains the specified linear section.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="directionBoundOnLinearSection" type="D2LogicalModel:DirectionEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The direction of traffic flow on the linear section in terms of general destination direction.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="directionRelativeOnLinearSection" type="D2LogicalModel:LinearReferencingDirectionEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The direction of traffic flow on the linear section relative to the direction in which the linear element is defined.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="heightGradeOfLinearSection" type="D2LogicalModel:HeightGradeEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identification of whether the linear section that is part of the linear element is at, above or below the normal elevation of a linear element of that type (e.g. road or road section) at that location, typically used to indicate "grade" separation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="linearElement" type="D2LogicalModel:LinearElement" />
      <xs:element name="fromPoint" type="D2LogicalModel:DistanceAlongLinearElement">
        <xs:annotation>
          <xs:documentation>A point on the linear element that defines the start node of the linear section.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="toPoint" type="D2LogicalModel:DistanceAlongLinearElement">
        <xs:annotation>
          <xs:documentation>A point on the linear element that defines the end node of the linear section.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="linearWithinLinearElementExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="LoadType2Enum">
    <xs:annotation>
      <xs:documentation>Loads that are currently not supported in loadType.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="refrigeratedGoods">
        <xs:annotation>
          <xs:documentation>Refrigerated goods.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="LoadTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of load carried by a vehicle.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="abnormalLoad">
        <xs:annotation>
          <xs:documentation>A load that exceeds normal vehicle dimensions in terms of height, length, width, gross vehicle weight or axle weight or any combination of these. Generally termed an "abnormal load".</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ammunition">
        <xs:annotation>
          <xs:documentation>Ammunition.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="chemicals">
        <xs:annotation>
          <xs:documentation>Chemicals of unspecified type.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="combustibleMaterials">
        <xs:annotation>
          <xs:documentation>Combustible materials of unspecified type.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="corrosiveMaterials">
        <xs:annotation>
          <xs:documentation>Corrosive materials of unspecified type.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="debris">
        <xs:annotation>
          <xs:documentation>Debris of unspecified type.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="empty">
        <xs:annotation>
          <xs:documentation>No load.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="explosiveMaterials">
        <xs:annotation>
          <xs:documentation>Explosive materials of unspecified type.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="extraHighLoad">
        <xs:annotation>
          <xs:documentation>A load of exceptional height.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="extraLongLoad">
        <xs:annotation>
          <xs:documentation>A load of exceptional length.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="extraWideLoad">
        <xs:annotation>
          <xs:documentation>A load of exceptional width.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fuel">
        <xs:annotation>
          <xs:documentation>Fuel of unspecified type.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="glass">
        <xs:annotation>
          <xs:documentation>Glass.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="goods">
        <xs:annotation>
          <xs:documentation>Any goods of a commercial nature.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hazardousMaterials">
        <xs:annotation>
          <xs:documentation>Materials classed as being of a hazardous nature.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="liquid">
        <xs:annotation>
          <xs:documentation>Liquid of an unspecified nature.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="livestock">
        <xs:annotation>
          <xs:documentation>Livestock.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="materials">
        <xs:annotation>
          <xs:documentation>General materials of unspecified type.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="materialsDangerousForPeople">
        <xs:annotation>
          <xs:documentation>Materials classed as being of a danger to people or animals.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="materialsDangerousForTheEnvironment">
        <xs:annotation>
          <xs:documentation>Materials classed as being potentially dangerous to the environment.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="materialsDangerousForWater">
        <xs:annotation>
          <xs:documentation>Materials classed as being dangerous when exposed to water (e.g. materials which may react exothermically with water).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="oil">
        <xs:annotation>
          <xs:documentation>Oil.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ordinary">
        <xs:annotation>
          <xs:documentation>Materials that present limited environmental or health risk. Non-combustible, non-toxic, non-corrosive.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="perishableProducts">
        <xs:annotation>
          <xs:documentation>Products or produce that will significantly degrade in quality or freshness over a short period of time.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="petrol">
        <xs:annotation>
          <xs:documentation>Petrol or petroleum.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pharmaceuticalMaterials">
        <xs:annotation>
          <xs:documentation>Pharmaceutical materials.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="radioactiveMaterials">
        <xs:annotation>
          <xs:documentation>Materials that emit significant quantities of electro-magnetic radiation that may present a risk to people, animals or the environment.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="refuse">
        <xs:annotation>
          <xs:documentation>Refuse.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="toxicMaterials">
        <xs:annotation>
          <xs:documentation>Materials of a toxic nature which may damage the environment or endanger public health.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vehicles">
        <xs:annotation>
          <xs:documentation>Vehicles of any type which are being transported.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other than as defined in this enumeration.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Location" abstract="true">
    <xs:annotation>
      <xs:documentation>The specification of a location either on a network (as a point or a linear location) or as an area. This may be provided in one or more referencing systems.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:GroupOfLocations">
        <xs:sequence>
          <xs:element name="externalReferencing" type="D2LogicalModel:ExternalReferencing" minOccurs="0" maxOccurs="unbounded" />
          <xs:element name="locationForDisplay" type="D2LogicalModel:PointCoordinates" minOccurs="0">
            <xs:annotation>
              <xs:documentation>A location which may be used by clients for visual display on user interfaces.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="locationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="LocationByReference">
    <xs:annotation>
      <xs:documentation>A location defined by reference to a predefined location.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Location">
        <xs:sequence>
          <xs:element name="predefinedLocationReference" type="D2LogicalModel:_PredefinedLocationVersionedReference" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A reference to a versioned predefined location.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="locationByReferenceExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="LocationDescriptorEnum">
    <xs:annotation>
      <xs:documentation>List of descriptors to help to identify a specific location.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="aroundABendInRoad">
        <xs:annotation>
          <xs:documentation>Around a bend in the road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="atMotorwayInterchange">
        <xs:annotation>
          <xs:documentation>At a motorway interchange.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="atRestArea">
        <xs:annotation>
          <xs:documentation>At rest area off the carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="atServiceArea">
        <xs:annotation>
          <xs:documentation>At service area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="atTollPlaza">
        <xs:annotation>
          <xs:documentation>At toll plaza.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="atTunnelEntryOrExit">
        <xs:annotation>
          <xs:documentation>At entry or exit of tunnel.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="inbound">
        <xs:annotation>
          <xs:documentation>On the carriageway or lane which is inbound towards the centre of the town or city.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="inGallery">
        <xs:annotation>
          <xs:documentation>In gallery.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="inTheCentre">
        <xs:annotation>
          <xs:documentation>In the centre of the roadway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="inTheOppositeDirection">
        <xs:annotation>
          <xs:documentation>In the opposite direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="inTunnel">
        <xs:annotation>
          <xs:documentation>In tunnel.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onBorder">
        <xs:annotation>
          <xs:documentation>On border crossing.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onBridge">
        <xs:annotation>
          <xs:documentation>On bridge.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onConnector">
        <xs:annotation>
          <xs:documentation>On connecting carriageway between two different roads or road sections.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onElevatedSection">
        <xs:annotation>
          <xs:documentation>On elevated section of road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onFlyover">
        <xs:annotation>
          <xs:documentation>On flyover, i.e. on section of road over another road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onIceRoad">
        <xs:annotation>
          <xs:documentation>On ice road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onLevelCrossing">
        <xs:annotation>
          <xs:documentation>On level-crossing.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onLinkRoad">
        <xs:annotation>
          <xs:documentation>On road section linking two different roads.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onPass">
        <xs:annotation>
          <xs:documentation>On mountain pass.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onRoundabout">
        <xs:annotation>
          <xs:documentation>On roundabout.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onTheLeft">
        <xs:annotation>
          <xs:documentation>On the left of the roadway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onTheRight">
        <xs:annotation>
          <xs:documentation>On the right of the roadway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onTheRoadway">
        <xs:annotation>
          <xs:documentation>On the roadway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onUndergroundSection">
        <xs:annotation>
          <xs:documentation>On underground section of road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onUnderpass">
        <xs:annotation>
          <xs:documentation>On underpass, i.e. section of road which passes under another road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="outbound">
        <xs:annotation>
          <xs:documentation>On the carriageway or lane which is outbound from the centre of the town or city.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="overCrestOfHill">
        <xs:annotation>
          <xs:documentation>Over the crest of a hill.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="withinJunction">
        <xs:annotation>
          <xs:documentation>On the main carriageway within a junction between exit slip road and entry slip road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="MeansOfPaymentEnum">
    <xs:annotation>
      <xs:documentation>Means of payment</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="paymentCard">
        <xs:annotation>
          <xs:documentation>Payment by electronic card(s). Use 'AcceptedPaymentCards' resp. 'UsedPaymentCard' to specify them more exactly.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="cash">
        <xs:annotation>
          <xs:documentation>Cash payment.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="cashCoinsOnly">
        <xs:annotation>
          <xs:documentation>Cash payment with coins only.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="directCashTransfer">
        <xs:annotation>
          <xs:documentation>Direct cash transfer.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="electronicSettlement">
        <xs:annotation>
          <xs:documentation>Electronic settlement; includes on board units.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rfid">
        <xs:annotation>
          <xs:documentation>RFID.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mobileApp">
        <xs:annotation>
          <xs:documentation>Payment method using an app on a smartphone.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="payBySMS">
        <xs:annotation>
          <xs:documentation>Payment by SMS. The telephone number can be specified by 'paymentAdditionalDescription'.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mobilePhone">
        <xs:annotation>
          <xs:documentation>A payment method using a mobile phone but without an app or SMS, for instance by calling a number.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="MetresAsFloat">
    <xs:annotation>
      <xs:documentation>A measure of distance defined in metres in a floating point format.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Float" />
  </xs:simpleType>
  <xs:simpleType name="MetresAsNonNegativeInteger">
    <xs:annotation>
      <xs:documentation>A measure of distance defined in metres in a non negative integer format.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:NonNegativeInteger" />
  </xs:simpleType>
  <xs:simpleType name="MonthOfYearEnum">
    <xs:annotation>
      <xs:documentation>A list of the months of the year.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="january">
        <xs:annotation>
          <xs:documentation>The month of January.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="february">
        <xs:annotation>
          <xs:documentation>The month of February.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="march">
        <xs:annotation>
          <xs:documentation>The month of March.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="april">
        <xs:annotation>
          <xs:documentation>The month of April.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="may">
        <xs:annotation>
          <xs:documentation>The month of May.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="june">
        <xs:annotation>
          <xs:documentation>The month of June.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="july">
        <xs:annotation>
          <xs:documentation>The month of July.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="august">
        <xs:annotation>
          <xs:documentation>The month of August.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="september">
        <xs:annotation>
          <xs:documentation>The month of September.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="october">
        <xs:annotation>
          <xs:documentation>The month of October.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="november">
        <xs:annotation>
          <xs:documentation>The month of November.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="december">
        <xs:annotation>
          <xs:documentation>The month of December.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="MultilingualString">
    <xs:sequence>
      <xs:element name="values">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="value" type="D2LogicalModel:MultilingualStringValue" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="MultilingualStringValue">
    <xs:simpleContent>
      <xs:extension base="D2LogicalModel:MultilingualStringValueType">
        <xs:attribute name="lang" type="xs:language" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="MultilingualStringValueType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="1024" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="NamedArea">
    <xs:annotation>
      <xs:documentation>An area defined by a name and/or in terms of known boundaries, such as country or county boundaries or allocated control area of particular authority. The attributes do not form a union; instead, the smallest intersection forms the resulting area.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="country" type="D2LogicalModel:CountryEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>ISO 3166-1 two character country code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="nation" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Name of a nation (e.g. Wales) which is a sub-division of an ISO recognised country.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="county" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Name of a county (administrative sub-division).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="areaName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Name of an area.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="policeForceControlArea" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Name of a police force area.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="roadOperatorControlArea" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Name of a road operator control area.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="namedAreaExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="NetworkLocation" abstract="true">
    <xs:annotation>
      <xs:documentation>The specification of a location on a network (as a point or a linear location).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Location">
        <xs:sequence>
          <xs:element name="supplementaryPositionalDescription" type="D2LogicalModel:SupplementaryPositionalDescription" minOccurs="0" />
          <xs:element name="destination" type="D2LogicalModel:Destination" minOccurs="0" />
          <xs:element name="networkLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="NonNegativeInteger">
    <xs:annotation>
      <xs:documentation>An integer number whose value space is the set {0, 1, 2, ..., 2147483645, 2147483646, 2147483647}.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:nonNegativeInteger" />
  </xs:simpleType>
  <xs:complexType name="NonOrderedLocationGroupByList">
    <xs:annotation>
      <xs:documentation>A group of (i.e. more than one) physically separate locations which have no specific order and where each location is explicitly listed.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:NonOrderedLocations">
        <xs:sequence>
          <xs:element name="locationContainedInGroup" type="D2LogicalModel:Location" minOccurs="2" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>A location contained in a non ordered group of locations.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="nonOrderedLocationGroupByListExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="NonOrderedLocationGroupByReference">
    <xs:annotation>
      <xs:documentation>A group of (i.e. more than one) physically separate locations which have no specific order that are defined by reference to a predefined non ordered location group.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:NonOrderedLocations">
        <xs:sequence>
          <xs:element name="predefinedNonOrderedLocationGroupReference" type="D2LogicalModel:_PredefinedNonOrderedLocationGroupVersionedReference" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A reference to a versioned instance of a predefined non ordered location group as specified in a PredefinedLocationsPublication.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="nonOrderedLocationGroupByReferenceExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="NonOrderedLocations" abstract="true">
    <xs:annotation>
      <xs:documentation>Multiple (i.e. more than one) physically separate locations which have no specific order.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:GroupOfLocations">
        <xs:sequence>
          <xs:element name="nonOrderedLocationsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="NumberOfAxlesCharacteristic">
    <xs:annotation>
      <xs:documentation>Number of axles characteristic of a vehicle.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="comparisonOperator" type="D2LogicalModel:ComparisonOperatorEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The operator to be used in the vehicle characteristic comparison operation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="numberOfAxles" type="D2LogicalModel:NonNegativeInteger" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The total number of axles of an individual vehicle.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="numberOfAxlesCharacteristicExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="OccupancyDetectionTypeEnum">
    <xs:annotation>
      <xs:documentation>Type of parking occupancy detection (balancing, single slot, ...  ).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="none">
        <xs:annotation>
          <xs:documentation>No occupancy detection available.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="balancing">
        <xs:annotation>
          <xs:documentation>Counting and balancing incoming and outcoming traffic amount ('indirect' method).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="singleSpaceDetection">
        <xs:annotation>
          <xs:documentation>There is a detector for every individual parking space ('direct' method).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="modelBased">
        <xs:annotation>
          <xs:documentation>Occupancy detection is based on some model, i.e. hydrograph, forecasting or estimation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="manual">
        <xs:annotation>
          <xs:documentation>Manual collection of occupancy information, i.e. operators count the vehicles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unspecified">
        <xs:annotation>
          <xs:documentation>Unspecified.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="OffsetDistance">
    <xs:annotation>
      <xs:documentation>The non negative offset distance from the ALERT-C referenced point to the actual point.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="offsetDistance" type="D2LogicalModel:MetresAsNonNegativeInteger" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The non negative offset distance from the ALERT-C referenced point to the actual point. The ALERT-C locations in the Primary and Secondary locations must always encompass the linear section being specified, thus Offset Distance is towards the other point.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="offsetDistanceExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpeningTimes">
    <xs:annotation>
      <xs:documentation>A specification of opening times (e.g. for a parking site, a service facility, an access or the availability for equipment).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="lastUpdated" type="D2LogicalModel:DateTime" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The date/time at which this information was last updated.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openAllYear" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>indicates whether the parking facility is available 365 days a year</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="available24hours" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specifies if the availability is 24 hours a day. If omitted, this information is unknown or heterogeneous.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="urlLinkAddress" type="D2LogicalModel:Url" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A Uniform Resource Locator (URL) address pointing to a resource available on the Internet from where further relevant information may be obtained.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openingTimesUnknown" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>When true, the opening times are unknown.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openingTimesNotSpecified" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>When true, the opening times are not specified.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="validity" type="D2LogicalModel:Validity" minOccurs="0" />
      <xs:element name="openingTimesExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OverallPeriod">
    <xs:annotation>
      <xs:documentation>A continuous or discontinuous period of validity defined by overall bounding start and end times and the possible intersection of valid periods (potentially recurring) with the complement of exception periods (also potentially recurring).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="overallStartTime" type="D2LogicalModel:DateTime" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Start of bounding period of validity defined by date and time.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="overallEndTime" type="D2LogicalModel:DateTime" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>End of bounding period of validity defined by date and time.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="validPeriod" type="D2LogicalModel:Period" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A single time period, a recurring time period or a set of different recurring time periods during which validity is true.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="exceptionPeriod" type="D2LogicalModel:Period" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A single time period, a recurring time period or a set of different recurring time periods during which validity is false.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="overallPeriodExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="OwnershipTypeEnum">
    <xs:annotation>
      <xs:documentation>Ownership type enum.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="public">
        <xs:annotation>
          <xs:documentation>Public ownership.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="private">
        <xs:annotation>
          <xs:documentation>Private ownership.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="publicPrivate">
        <xs:annotation>
          <xs:documentation>A public private partnership model.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="resident">
        <xs:annotation>
          <xs:documentation>A private individual ownership.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>An unknown kind of ownership.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other kind of ownership.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ParkingAccess">
    <xs:annotation>
      <xs:documentation>Describes one entrance or exit (or both) to a parking site.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="accessCategory" type="D2LogicalModel:AccessCategoryEnum" minOccurs="1" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Specifies the category(s) of this access.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="accessName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A name of the entrance or exit. This might be an indication to the corresponding road, for example.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="accessEquipment" type="D2LogicalModel:AccessEquipmentEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Specifies additional equipment for this access.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="accessibility" type="D2LogicalModel:AccessibilityEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Information on accessibility, easements and marking for handicapped people.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="photoUrl" type="D2LogicalModel:Url" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specifies a URL at which a photo of the object in concern can be found.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="accessOnlyAssignedFor" type="D2LogicalModel:ParkingAssignment" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Only the assignment given in this class is allowed for this access, i.e. other assignments are not allowed. By using this role, do not use the same set of attributes within the other two roles.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="accessAssignedAmongOthers" type="D2LogicalModel:ParkingAssignment" minOccurs="0">
        <xs:annotation>
          <xs:documentation>The assignment given in this class is convenient for this access, but not exclusionary. By using this role, do not use the same set of attributes within the other two roles.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="accessProhibitedFor" type="D2LogicalModel:ParkingAssignment" minOccurs="0">
        <xs:annotation>
          <xs:documentation>The assignment given in this class is prohibited for this access. By using this role, do not use the same set of attributes within the other two roles.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="primaryRoad" type="D2LogicalModel:Road" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Identification for up to two primary roads located nearby the access or which make the parking accessible.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="location" type="D2LogicalModel:Location" />
      <xs:element name="openingTimes" type="D2LogicalModel:OpeningTimes" minOccurs="0" />
      <xs:element name="parkingAccessExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required" />
  </xs:complexType>
  <xs:complexType name="ParkingAssignment">
    <xs:annotation>
      <xs:documentation>One set of prohibited/only allowed/convenient assignment for parking space(s), parking site(s) or an access. Same kind of data forms a union (e.g. lorries OR buses), different kind of data forms an intersection (e.g. residents AND long-term).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="applicableForUser" type="D2LogicalModel:UserTypeEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Limitation to a set of special users.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingDuration" type="D2LogicalModel:ParkingDurationEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Temporal parking classification for this assignment (long term, short term, ...). Depending on the used role, these classifications are either assigned or prohibited.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vehicleCharacteristics" type="D2LogicalModel:VehicleCharacteristics" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="hazardousMaterials" type="D2LogicalModel:HazardousMaterials" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Hazardous Material which is prohibited to park there.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="timePeriodByHour" type="D2LogicalModel:TimePeriodByHour" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Used for example for mixed parking areas. If at least one restrictedValidity is given, spaces are not available outside the union of all given time ranges. EndTime might be a lower value than start time, whem validity contains midnight.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingPermit" type="D2LogicalModel:ParkingPermit" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="parkingAssignmentExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ParkingDurationEnum">
    <xs:annotation>
      <xs:documentation>Parking durations.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="pickUpDropOff">
        <xs:annotation>
          <xs:documentation>Very short duration parking normally of up to 20 minutes assigned for pick-ups and drop-offs.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="shortTerm">
        <xs:annotation>
          <xs:documentation>Short term parking without indication of max-duration.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="shortTerm24hours">
        <xs:annotation>
          <xs:documentation>Short term parking up to 24 hours.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="shortTerm48hours">
        <xs:annotation>
          <xs:documentation>Short term parking up to 48 hours.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="shortTerm72hours">
        <xs:annotation>
          <xs:documentation>Short term parking up to 72 hours.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="shortTerm96hours">
        <xs:annotation>
          <xs:documentation>Short term parking up to 96 hours.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="longTerm">
        <xs:annotation>
          <xs:documentation>Long term parking in excess of any specified short term parking.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ParkingEquipmentOrServiceFacility" abstract="true">
    <xs:annotation>
      <xs:documentation>One type of equipment or additional service facility that is available at the parking site, parking space or group of parking spaces.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="equipmentOrServiceFacilityIdentifier" type="D2LogicalModel:String" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>An internal identifier for the equipment or service facility, e.g. an inventory number. This attribute has an unbounded multiplicity to support identifiers for multiple occurrences of this element.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="availability" type="D2LogicalModel:AvailabilityEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specifies, if the element in question is available or not. Note that this is no dynamic information!</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="numberOfEquipmentOrServiceFacility" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Number of the specified element (e.g. number of toilets, restaurants, park &amp; ride places, etc.) with respect to user restriction for the parking record, a complete group of spaces or a single space. Dynamic overridable.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="additionalDescription" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Provides an additional description.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="otherEquipmentOrServiceFacility" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specifies the additional equipment or service facility, if the enumerations provided do not fit. Use literal 'other' in this case.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="accessibility" type="D2LogicalModel:AccessibilityEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Information on accessibility, easements and marking for handicapped people.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="nameOrBrand" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Name or brand of the equipment or service facility, e.g. brand of petrol station, name of the WC-Service etc.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="comment" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A free text comment that can be used by the operator to convey un-coded observations/information.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="photoUrl" type="D2LogicalModel:Url" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specifies a URL at which a photo of the object in concern can be found.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="applicableForUser" type="D2LogicalModel:UserTypeEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Limitation to a set of special users.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="availabilityAndOpeningTimes" type="D2LogicalModel:OpeningTimes" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Specify the general availability of some equipment or service facility (by using just the 'OverallPeriod' component) or specify its opening times more detailed.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="tariffsAndPayment" type="D2LogicalModel:TariffsAndPayment" minOccurs="0" />
      <xs:element name="groupOfLocations" type="D2LogicalModel:GroupOfLocations" minOccurs="0" />
      <xs:element name="applicableForVehicles" type="D2LogicalModel:VehicleCharacteristics" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="parkingEquipmentOrServiceFacilityExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ParkingLayoutEnum">
    <xs:annotation>
      <xs:documentation>Types of layout of the parking site.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="multiStorey">
        <xs:annotation>
          <xs:documentation>Parking is on multiple levels within a parking building.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="singleLevel">
        <xs:annotation>
          <xs:documentation>Parking is inside a building on a single ground floor level.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="underground">
        <xs:annotation>
          <xs:documentation>Parking is on one or more floors below ground level.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="undergroundAndMultistorey">
        <xs:annotation>
          <xs:documentation>Parking is on multiple floors levels including both below and above ground level. </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="automatedParkingGarage">
        <xs:annotation>
          <xs:documentation>Parking is completely automated from the point of leaving the vehicle in an arrival bay to its delivery back to the driver in a pickup bay.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="openSpace">
        <xs:annotation>
          <xs:documentation>A normal ground level parking place.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="covered">
        <xs:annotation>
          <xs:documentation>Some covered parking space.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nested">
        <xs:annotation>
          <xs:documentation>A parking space within a complex structure of buildings or surrounded by buildings.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="field">
        <xs:annotation>
          <xs:documentation>A non-bituminized parking space (e.g. for events or as extension).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ParkingModeEnum">
    <xs:annotation>
      <xs:documentation>The arrangement of the parking space or the group of parking spaces in relation to the road.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="perpendicularParking">
        <xs:annotation>
          <xs:documentation>Parking spaces are located in an angle of nearly 90 degree to the road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="parallelParking">
        <xs:annotation>
          <xs:documentation>Parking spaces are located parallel to the road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="echelonParking">
        <xs:annotation>
          <xs:documentation>Parking spaces are located in a diagonal relation to the road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="parkingOnOppositeSideOfRoad">
        <xs:annotation>
          <xs:documentation>Parking is possible on the other side of the road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ParkingPaymentModeEnum">
    <xs:annotation>
      <xs:documentation>Mode of payment for parking.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="payAndDisplay">
        <xs:annotation>
          <xs:documentation>Pay at machine and display ticket inside vehicle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="payManualAtExitBooth">
        <xs:annotation>
          <xs:documentation>Pay at the manned exit booth of the parking site. </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="payPriorToExit">
        <xs:annotation>
          <xs:documentation>Pay at machine on foot prior to returning to vehicle and use payment ticket to exit.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="payByPrepaidToken">
        <xs:annotation>
          <xs:documentation>Pay by prepaid token that is used at exit.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="payAndExit">
        <xs:annotation>
          <xs:documentation>Pay directly at the exit with a payment card (usually, this payment card must have been used when entering as well). In 'AccessEquipmentEnum', there are three more literals to indicate, whether an entrance or exit has got this feature.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ParkingPermit">
    <xs:annotation>
      <xs:documentation>A permission for parking.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="parkingPermitType" type="D2LogicalModel:PermitTypeEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Type of permission for parking.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingPermitScheme" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Scheme of permission for parking.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingPermitIdentifier" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identifier of permission for parking.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingPermitExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ParkingRecord" abstract="true">
    <xs:annotation>
      <xs:documentation>A container for static parking information. Must be specialised as a parking site or as a group of parking sites.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="parkingName" type="D2LogicalModel:MultilingualString" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Name of the parking, i.e. name of the parking site or the group of parking sites.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingAlias" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Alternative name for the parking site or the group of parking sites.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingDescription" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Additional description of the parking site or the group of parking sites.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingRecordVersionTime" type="D2LogicalModel:DateTime" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Date/time that this version of the parking record was defined.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingNumberOfSpaces" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Number of parking spaces (attribute is used for a parking record as well as for a group of parking spaces).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingPrincipalNumberOfSpaces" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Number of parking spaces that are not assigned for a particular purpose.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="maximumParkingDuration" type="D2LogicalModel:Seconds" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The maximum parking duration for a parking record, a parking space or a group of parking spaces (e.g. to avoid overnight parking).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="photoUrl" type="D2LogicalModel:Url" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specifies a URL at which a photo of the object in concern can be found.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="urlLinkAddress" type="D2LogicalModel:Url" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A Uniform Resource Locator (URL) address pointing to a resource available on the Internet from where further relevant information may be obtained.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingOccupanyDetectionType" type="D2LogicalModel:OccupancyDetectionTypeEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Type of parking occupancy detection for a parking record, a parking space or a group of parking spaces, if any (balancing, single slot, ...  ).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="emergencyContact" type="D2LogicalModel:Contact" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Contact to be used in times of emergencies.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="owner" type="D2LogicalModel:Contact" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Contact details of the owner of the parking facility.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="responisbleAuthority" type="D2LogicalModel:Contact" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Contact details of the responsible authority of the parking facility or parking area.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="securityService" type="D2LogicalModel:Contact" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Contact details of one or more security services of the parking facility.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="operator" type="D2LogicalModel:Contact" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Contact details of the operator of the parking facility.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="servicePartner" type="D2LogicalModel:Contact" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Contact details of a service partner of the parking record, i.e. the person or organisation that should be contacted to provide servicing or support services for equipment at the parking.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingVMS" type="D2LogicalModel:ParkingVMS" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="parkingLocation" type="D2LogicalModel:GroupOfLocations">
        <xs:annotation>
          <xs:documentation>The location(s) or the extent of the parking. Examples could be an Area for parking area, a Point location for an urban parking facility or a Linear for on street parking.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingRoute" type="D2LogicalModel:ParkingRoute" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="parkingColour" type="D2LogicalModel:RGBColour" minOccurs="0">
        <xs:annotation>
          <xs:documentation>A colour, which can be assigned to the parking. Often used with parking areas for a quick visual distinction.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="onlyAssignedParking" type="D2LogicalModel:ParkingAssignment" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Parking is only allowed for the assignment given in this class, i.e. other assignments are not allowed. By using this role, it is not allowed to use 'assignedParkingAmongOthers' and 'prohibitedParking' for the same type of attributes.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="assignedParkingAmongOthers" type="D2LogicalModel:ParkingAssignment" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Assignments for parking. Other assignments are allowed as well, i.e. the parking spaces are convenient for this kind of assignment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="prohibitedParking" type="D2LogicalModel:ParkingAssignment" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Parking is not allowed for the given assignment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="tariffsAndPayment" type="D2LogicalModel:TariffsAndPayment" minOccurs="0" />
      <xs:element name="parkingEquipmentOrServiceFacility" type="D2LogicalModel:_ParkingRecordEquipmentOrServiceFacilityIndexParkingEquipmentOrServiceFacility" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="parkingSpace" type="D2LogicalModel:_ParkingSpace" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Properties of a single parking space. This aggregation may only be used with the "ParkingSpace" specialisation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="groupOfParkingSpaces" type="D2LogicalModel:_GroupOfParkingSpaces" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Properties for a group of parking spaces. Usually, all properties specified have to be the same for all spaces included. This aggregation may only be used with the "GroupOfParkingSpaces" specialisation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingThresholds" type="D2LogicalModel:ParkingThresholds" minOccurs="0" />
      <xs:element name="permitsAndProhibitions" type="D2LogicalModel:PermitsAndProhibitions" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="emergencyAssemblyPoint" type="D2LogicalModel:GroupOfLocations" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Some geographic location(s) within or nearby the parking, where people have to meet in case of a fire, for example.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="entireArea" type="D2LogicalModel:Area" minOccurs="0">
        <xs:annotation>
          <xs:documentation>An underlaying area this parking record is located in or belongs to. Examples are a state, province, truck parking area etc. A name can be specified in the area structure.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingRecordDimension" type="D2LogicalModel:Dimension" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Dimension either of the building or a virtual rectangle encapsulating the parking site(s). Use 'dimensionUsableArea' to define the total space available for parking. Use 'dimensionHeight' only for a building, not for the restriction of vehicles.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingRecordExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required" />
    <xs:attribute name="version" type="xs:string" use="required" />
  </xs:complexType>
  <xs:complexType name="ParkingRoute" abstract="true">
    <xs:annotation>
      <xs:documentation>A parking route, defined by ParkingRouteDetails or by a reference.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="parkingRouteColour" type="D2LogicalModel:RGBColour" minOccurs="0">
        <xs:annotation>
          <xs:documentation>A colour assigned to a parking route for visualisation purpose.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingRouteExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ParkingRouteByReference">
    <xs:annotation>
      <xs:documentation>A route defined by a reference to an earlier specified route.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:ParkingRoute">
        <xs:sequence>
          <xs:element name="parkingRouteReference" type="D2LogicalModel:_ParkingRouteDetailsVersionedReference" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A reference to a parking route.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingRouteByReferenceExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ParkingRouteDetails">
    <xs:annotation>
      <xs:documentation>Urban context: Defining parking routes leading to the parking site. Truck parking context: Can be used to define a dynamic route management.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:ParkingRoute">
        <xs:sequence>
          <xs:element name="parkingRouteName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Name of the parking route.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingRouteType" type="D2LogicalModel:ParkingRouteTypeEnum" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of parking route. If not specified, the route is designed for any type of vehicles.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="dynamicRouteManagement" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Indicates that there is dynamic route management for truck parking, i.e. a management system concerning several truck parkings (including this one) along a route.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingRouteIconIndex" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>An index, which can identify some icon for visualisation of the route. Note that form and usage of this index as well as the icons itself are not further determined here.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingRouteDirection" type="D2LogicalModel:DirectionEnum" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The direction of traffic, for which the parking route can be used. If not specified, the route can be used in the order of the given locations.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingRouteDirection2" type="D2LogicalModel:ParkingRouteDirectionEnum" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Additional directions of traffic, for which the parking route can be used. If not specified, the route can be used in the order of the given locations.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="groupOfLocations" type="D2LogicalModel:GroupOfLocations" minOccurs="0" />
          <xs:element name="parkingRouteDetailsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
        <xs:attribute name="id" type="xs:string" use="required" />
        <xs:attribute name="version" type="xs:string" use="required" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="ParkingRouteDirectionEnum">
    <xs:annotation>
      <xs:documentation>The direction of the parking route.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="towardsParkingSite">
        <xs:annotation>
          <xs:documentation>Towards parking site.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="awayFromParkingSite">
        <xs:annotation>
          <xs:documentation>Away from parking site.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ParkingRouteTypeEnum">
    <xs:annotation>
      <xs:documentation>The type of the parking route.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="lorry">
        <xs:annotation>
          <xs:documentation>A parking route for lorries.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Another type of parking route.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ParkingSecurityEnum">
    <xs:annotation>
      <xs:documentation>Specifies security measures related to the parking site or particular spaces.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="socialControl">
        <xs:annotation>
          <xs:documentation>Social control e.g. parking situated in a neighbourhood.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="securityStaff">
        <xs:annotation>
          <xs:documentation>Security staff.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="externalSecurity">
        <xs:annotation>
          <xs:documentation>External security, e.g. police or staff not directly belonging to the parking.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="cctv">
        <xs:annotation>
          <xs:documentation>CCTV (camera observation).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="dog">
        <xs:annotation>
          <xs:documentation>Dog.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="guard24hours">
        <xs:annotation>
          <xs:documentation>24/24 guard.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lighting">
        <xs:annotation>
          <xs:documentation>Site is illuminated in a normal way (but not as strong as 'floodLight').</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="floodLight">
        <xs:annotation>
          <xs:documentation>Flood light (stronger than lighting).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fences">
        <xs:annotation>
          <xs:documentation>Fences.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="areaSeperatedFromSurroundings">
        <xs:annotation>
          <xs:documentation>Site is separated from its surroundings. Can also be used to express a space for noise-producing vehicles, e.g. lorries with cooling generators.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="none">
        <xs:annotation>
          <xs:documentation>There are no security measures.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>None of the values in this enumeration applies. Use 'parkingAdditionalSecurity' instead.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ParkingSite" abstract="true">
    <xs:annotation>
      <xs:documentation>A record containing static details of a parking site. Must be specialised as an 'Urban-' or 'InterUrbanParkingSite' or a 'SpecialLocationParkingSite'.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:ParkingRecord">
        <xs:sequence>
          <xs:element name="parkingReservation" type="D2LogicalModel:ReservationTypeEnum" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Indication of whether a parking reservation service is available and/or mandatory.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingLayout" type="D2LogicalModel:ParkingLayoutEnum" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Layout of the parking site.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="highestFloor" type="D2LogicalModel:Integer" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Highest floor of the parking site. It is possible to have negative values here in case it is underground only. Must be higher or equal than 'lowestFloor'.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="lowestFloor" type="D2LogicalModel:Integer" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Lowest floor of the parking site. Positive values may apply in case it is over ground only. Must be lower or equal than 'highestFloor'.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="temporaryParking" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Indicates that the parking site is on a temporary basis. It might close permanently within short notice or might only be partial equipped. The physical parking possibilities might be provisional, too.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingSiteAddress" type="D2LogicalModel:Contact" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Information about the parking site itself (address etc.). The 'GroupOfLocations' association must not be used for this role.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="reservationService" type="D2LogicalModel:Contact" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Reservation service (for end users). It is recommended to give URL and telephone.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingUsageScenario" type="D2LogicalModel:_ParkingSiteScenarioIndexParkingUsageScenario" minOccurs="0" maxOccurs="unbounded" />
          <xs:element name="openingTimes" type="D2LogicalModel:OpeningTimes" minOccurs="0" />
          <xs:element name="parkingAccess" type="D2LogicalModel:ParkingAccess" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>An exit from the parking facility onto the road network from any parking space unless separate exits are specified for assigned parking spaces, in which case this is an exit from only the principal parking spaces.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingStandardsAndSecurity" type="D2LogicalModel:ParkingStandardsAndSecurity" />
          <xs:element name="parkingSiteExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="ParkingSiteStatusEnum">
    <xs:annotation>
      <xs:documentation>The status of the parking site (spaces available or not).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="spacesAvailable">
        <xs:annotation>
          <xs:documentation>Parking spaces are currently available.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="almostFull">
        <xs:annotation>
          <xs:documentation>The parking site is almost full (as defined by its configuration parameters).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fullAtEntrance">
        <xs:annotation>
          <xs:documentation>The parking site is considered full at its entrance (e.g. full sign is displayed at entrance or on managing VMS).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="full">
        <xs:annotation>
          <xs:documentation>The parking site is full (as defined by its configuration parameters).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>The status of the parking site is unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ParkingSpace">
    <xs:annotation>
      <xs:documentation>A single parking space. It is possible to define the same parking space more than once with different properties, e.g. when there is a different parking assignment for different times.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:ParkingSpaceBasics">
        <xs:sequence>
          <xs:element name="identicalToParkingSpace" type="D2LogicalModel:IndexReference" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Points to another instance of 'ParkingSpace', which is identical from a local point of view (i.e. which is the same parking space). To be used when defining mixed parking areas (with using different time slots).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="location" type="D2LogicalModel:Location" minOccurs="0" />
          <xs:element name="parkingSpaceDimension" type="D2LogicalModel:Dimension" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Dimension of the parking space (not all dimension attributes need to be provided). If the parking space is not rectangular, its dimension is specified as the smallest rectangle fitting inside its shape.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingSpaceExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="ParkingSpaceAccessibilityEnum">
    <xs:annotation>
      <xs:documentation>Easements for handicapped people expecially related to a parking space or a group of parking spaces.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="extraSpaceLeftSide">
        <xs:annotation>
          <xs:documentation>There is some extra space on the left side of the parking space (in parking direction point of view), for example to improve the situation for wheelchair users.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="extraSpaceRightSide">
        <xs:annotation>
          <xs:documentation>There is some extra space on the right side of the parking space (in parking direction point of view), for example to improve the situation for wheelchair users.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nearbyPedestrianExit">
        <xs:annotation>
          <xs:documentation>The parking space is quite near to a pedestrian exit. Note: Can be more exactly defined by using 'dedicatedAccess'.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bordersMarked">
        <xs:annotation>
          <xs:documentation>The border of the parking space is marked (painted on the ground).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ParkingSpaceBasics" abstract="true">
    <xs:annotation>
      <xs:documentation>Common properties of parking spaces and groups of parking spaces.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="parkingSpaceOrGroupIdentifier" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A public identifier or short description for the parking space or group of parking spaces, for example "6D" or "Truck parking west".</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingFloorOrLevel" type="D2LogicalModel:Integer" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The floor or level of the parking site on which the assigned parking spaces are located.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="accessibility" type="D2LogicalModel:AccessibilityEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Information on accessibility, easements and marking for handicapped people.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingSpaceAccessibility" type="D2LogicalModel:ParkingSpaceAccessibilityEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Further easements for handicapped people related to this parking space or this group of parking spaces.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingSpacePhysics" type="D2LogicalModel:ParkingSpacePhysicsEnum" minOccurs="0" maxOccurs="2">
        <xs:annotation>
          <xs:documentation>Specifies 'driveThrough' or 'openAir' for the parking space or the group of parking spaces.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingMode" type="D2LogicalModel:ParkingModeEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The arrangement of the parking space or the group of parking spaces in relation to the road.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingReservation" type="D2LogicalModel:ReservationTypeEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indication of whether a parking reservation service is available and/or mandatory.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="maximumParkingDuration" type="D2LogicalModel:Seconds" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The maximum parking duration for a parking record, a parking space or a group of parking spaces (e.g. to avoid overnight parking).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="distanceFromPrimaryRoad" type="D2LogicalModel:MetresAsNonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specifies the distance from the primary road in metres. Especially useful, if parking is located on a smaller type of road.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingOccupanyDetectionType" type="D2LogicalModel:OccupancyDetectionTypeEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Type of parking occupancy detection for a parking record, a parking space or a group of parking spaces, if any (balancing, single slot, ...  ).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingSecurity" type="D2LogicalModel:ParkingSecurityEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Specifies security measures related to the parking site or particular spaces.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dedicatedAccess" type="D2LogicalModel:DedicatedAccess" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="onlyAssignedParking" type="D2LogicalModel:ParkingAssignment" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Parking is only allowed for the assignment given in this class, i.e. other assignments are not allowed. By using this role, it is not allowed to use 'assignedParkingAmongOthers' and 'prohibitedParking' for the same type of attributes.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="assignedParkingAmongOthers" type="D2LogicalModel:ParkingAssignment" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Assignments for parking. Other assignments are allowed as well, i.e. the parking spaces are convenient for this kind of assignment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="prohibitedParking" type="D2LogicalModel:ParkingAssignment" minOccurs="0">
        <xs:annotation>
          <xs:documentation>Parking is not allowed for the given assignment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingEquipmentOrServiceFacility" type="D2LogicalModel:_ParkingSpaceBasicsEquipmentOrServiceFacilityIndexParkingEquipmentOrServiceFacility" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Equiment, services and szenarios, which are directly related to the assigned parking space or parking space group. Note that the infrastructure index must be unique with respect to the Parking class' infrastrucure indeces</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingUsageScenario" type="D2LogicalModel:_ParkingSpaceBasicsScenarioIndexParkingUsageScenario" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="parkingSpaceBasicsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ParkingSpacePhysicsEnum">
    <xs:annotation>
      <xs:documentation>Specifies drive through and open air properties for the parking space or the group of parking spaces.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="driveThrough">
        <xs:annotation>
          <xs:documentation>Entering as well as leaving the parking space can be done straight in the direction of parking.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="openAir">
        <xs:annotation>
          <xs:documentation>There is no roof and not another storey on top of the parking space, which could prevent from rain, for example.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ParkingSpecialLocationEnum">
    <xs:annotation>
      <xs:documentation>Locations, often associated with a building, for a SpecialLocationParkingSite.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="airportTerminal">
        <xs:annotation>
          <xs:documentation>The parking site is associated with an airport terminal.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="exhibitonCentre">
        <xs:annotation>
          <xs:documentation>The parking site is associated with an exhibition centre.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="shoppingCentre">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a shopping centre.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="specificFacility">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a specific facility (e.g. a hospital, a tourist site, a garden centre, a park etc.).. Attribute "parkingOtherSpecialLocation" may be used to specify details.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trainStation">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a train station.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="campground">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a campground.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="themePark">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a theme park.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ferryTerminal">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a ferry terminal.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vehicleOnRailTerminal">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a vehicle-to-rail terminal.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="coachStation">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a coach station.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="cableCarStation">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a cable car station.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="publicTransportStation">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a public transport station.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="market">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a market.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="religiousCentre">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a religious centre.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="conventionCentre">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a convention centre.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="cinema">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a cinema.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="skilift">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a ski lift.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>The parking site is associated with some other location. Use "parkingOtherSpecialLocation" to specify details.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ParkingStandardsAndSecurity">
    <xs:annotation>
      <xs:documentation>Security measures and standards or standard-like categorization for a parking site.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="labelSecurityLevel" type="D2LogicalModel:LABELSecurityLevelEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Formal assessment for the security level defined by the LABEL project  http://truckparkinglabel.eu.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="labelServiceLevel" type="D2LogicalModel:LABELServiceLevelEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Formal assessment for the service level defined by the LABEL project  http://truckparkinglabel.eu.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="labelSecurityLevelSelfAssessment" type="D2LogicalModel:LABELSecurityLevelEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Self-assessment for the security level defined by the LABEL project  http://truckparkinglabel.eu.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="labelServiceLevelSelfAssessment" type="D2LogicalModel:LABELServiceLevelEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Self-assessment for the service level defined by the LABEL project  http://truckparkinglabel.eu.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingSecurity" type="D2LogicalModel:ParkingSecurityEnum" minOccurs="1" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Specifies security measures related to the parking site or particular spaces.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingAdditionalSecurity" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Security equipment of the parking site that is not covered by the enumeration 'ParkingSecurityEnum'.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingSupervision" type="D2LogicalModel:ParkingSupervisionEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Defines the kind of supervision of the parking site.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingSecurityNationalClassification" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A national classification of the parking security.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="certifiedSecureParking" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Presence of a certification for secure parking.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dateOfCertification" type="D2LogicalModel:Date" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Date of certification.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingStandardsAndSecurityExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ParkingStatusColourMapping">
    <xs:annotation>
      <xs:documentation>Defines a pair of 'parkingSiteStatus' and a corresponding colour.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="parkingSiteStatus" type="D2LogicalModel:ParkingSiteStatusEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The status of the parking site (spaces available or not).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="rgbColour" type="D2LogicalModel:RGBColour" />
      <xs:element name="parkingStatusColourMappingExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ParkingSupervisionEnum">
    <xs:annotation>
      <xs:documentation>Defines the kind of supervision of the parking site.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="remote">
        <xs:annotation>
          <xs:documentation>Remote.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onSite">
        <xs:annotation>
          <xs:documentation>On site.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="controlCentreOnSite">
        <xs:annotation>
          <xs:documentation>Control centre on site.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="controlCentreOffSite">
        <xs:annotation>
          <xs:documentation>Control centre off site.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="patrol">
        <xs:annotation>
          <xs:documentation>Patrol.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="none">
        <xs:annotation>
          <xs:documentation>None.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ParkingTable">
    <xs:annotation>
      <xs:documentation>A collection of parking records, which can be parking sites or groups of parking sites.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="parkingTableName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The name of the parking table.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingTableVersionTime" type="D2LogicalModel:DateTime" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The date/time that this version of the parking table was defined by the supplier. The identity and version of the table are defined by the class stereotype implementation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingRecord" type="D2LogicalModel:ParkingRecord" maxOccurs="unbounded" />
      <xs:element name="parkingTableExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required" />
    <xs:attribute name="version" type="xs:string" use="required" />
  </xs:complexType>
  <xs:complexType name="ParkingTablePublication">
    <xs:annotation>
      <xs:documentation>A publication defining one or more tables that have entries of parking sites or groups of them, located in an urban or interurban context.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="headerInformation" type="D2LogicalModel:HeaderInformation" minOccurs="0" />
      <xs:element name="parkingTable" type="D2LogicalModel:ParkingTable" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ParkingThresholds">
    <xs:annotation>
      <xs:documentation>Configuration parameters of the parking site, used among others for the dynamic attribute 'parkingStatus'. This component or all elements of it can be overridden in the dynamic model.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="almostFullDecreasing" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The number of available spaces above which the state of the parking site is considered to change from 'almost full' to 'spaces available' as the parking site's occupancy decreases. Must be greater than 'almostFullIncreasing' value.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="almostFullIncreasing" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The number of available spaces below which the state of the site is considered to change from 'spaces available' to 'almost full' as the site's occupancy increases. Must be lower or equal to 'almostFullDecreasing' and greater 'fullDecreasing'.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="entranceFull" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The number of available spaces below which the parking site is considered to be 'full' at its entrance (e.g. full sign is displayed at entrance or on managing VMS).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="fullDecreasing" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The number of available spaces above which the state of the parking site is considered to change from 'full' to 'almost full' as the site's occupancy decreases. Must be greater or equal to 'fullIncreasing' value and lower than 'almostFullIncreasing'.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="fullIncreasing" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The number of available spaces below which the state of the parking site is considered to change from 'almost full' to 'full' as the site's occupancy increases. Must be lower than or equal to 'fullDecreasing' value.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="overcrowding" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The number of vehicles on the parking above which the overcrowding state of the parking site is considered to change to 'overcrowding'.  Can be used as an alternative to the overcrowding level attributes.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="overcrowdingLevel1" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The number of vehicles on the parking site above which the overcrowding state of the parking site is considered to change from 'noOvercrowding' to 'overcrowdingLevel1'. Must be lower than the 'overcrowdingLevel2' value.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="overcrowdingLevel2" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The number of vehicles on the parking site above which the overcrowding state of the parking site is considered to change from 'overcrowdingLevel1' to 'overcrowdingLevel2'. Must be greater than the 'overcrowdingLevel1' value.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingLastMaximumOccupancy" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The last known occupancy (number of parking vehicles on the site) under safe conditions.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="parkingStatusColourMapping" type="D2LogicalModel:ParkingStatusColourMapping" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="parkingThresholdsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ParkingTypeOfGroup">
    <xs:annotation>
      <xs:documentation>The type of group specification (group of parking spaces).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="adjacentSpaces">
        <xs:annotation>
          <xs:documentation>A description of adjacent spaces.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nonAdjacentSpaces">
        <xs:annotation>
          <xs:documentation>A description of non-adjacent spaces.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="completeFloor">
        <xs:annotation>
          <xs:documentation>A description for a complete floor in a car park.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mixedUsage">
        <xs:annotation>
          <xs:documentation>A definition for mixed usage for this group (e.g. by time). This means there are more definitions for this group or for sub- or supersets of it.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="statisticsOnly">
        <xs:annotation>
          <xs:documentation>This group provides statistical figures only, for example 60 spaces for lorries in total. Usually, this kind of group does not use georeference information.  It is not a complete description of parking spaces.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="singleParameters">
        <xs:annotation>
          <xs:documentation>This group provides some single features for a selected number of spaces. For example, you can define all spaces, where electric charging stations are provided. It is not a complete description of the parking spaces.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Some other kind of group.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ParkingUsageScenario">
    <xs:annotation>
      <xs:documentation>A special type of usage available for the parking site or the group of parking spaces. In the 'ParkingStatusPublication', the operation type (in operation or not) can be defined.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="parkingUsageScenario" type="D2LogicalModel:ParkingUsageScenarioEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A special type of usage available for the parking site or a group of parking spaces. In the 'ParkingStatusPublication', the operation type (in operation or not) can be defined.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="truckParkingDynamicManagement" type="D2LogicalModel:TruckParkingDynamicManagementEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Two modes for parking lorries in a efficient way according to their departure times. May only be used for parking scenario 'truckParking'.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="scenarioAvailability" type="D2LogicalModel:OverallPeriod" minOccurs="0" />
      <xs:element name="parkingUsageScenarioExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ParkingUsageScenarioEnum">
    <xs:annotation>
      <xs:documentation>Types of parking usage (park &amp; ride, kiss &amp; ride, ...)</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="truckParking">
        <xs:annotation>
          <xs:documentation>The parking site is designed for lorries (other vehicles are allowed as well).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restArea">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a rest area, i.e. people can relax some time outside their car there. Note that the presence of some bench, picnic place or toilet is already sufficient; there is no need for a restaurant or a building.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="serviceArea">
        <xs:annotation>
          <xs:documentation>The parking site is associated with a service area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="loadingBay">
        <xs:annotation>
          <xs:documentation>The parking site or space(s) are designed as a loading bay.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="overnightParking">
        <xs:annotation>
          <xs:documentation>The parking site or space(s) are designed for overnight parking. Note that the absence of this scenario does not automatically mean a prohibition of overnight parking. See also PermitsAndProhibitions.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Some other usage scenario.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ParkingVMS">
    <xs:annotation>
      <xs:documentation>A reference to a record that contains the metadata for a specific VMS unit that may be used to manage the parking site (e.g. to indicate to drivers the current availability of spaces).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="vmsUnitUsedToManageParking" type="D2LogicalModel:_VmsUnitRecordVersionedReference" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A reference to a record that contains the metadata for a specific VMS unit that may be used to manage the parking site (e.g. to indicate to drivers the current availability of spaces).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsOperator" type="D2LogicalModel:Contact" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="parkingVMSExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PayloadPublication" abstract="true">
    <xs:annotation>
      <xs:documentation>A payload publication of traffic related information or associated management information created at a specific point in time that can be exchanged via a DATEX II interface.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="publicationTime" type="D2LogicalModel:DateTime" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Date/time at which the payload publication was created.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="publicationCreator" type="D2LogicalModel:InternationalIdentifier" />
      <xs:element name="payloadPublicationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="lang" type="D2LogicalModel:Language" use="required">
      <xs:annotation>
        <xs:documentation>The default language used throughout the payload publication.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:simpleType name="PaymentCardBrandsEnum">
    <xs:annotation>
      <xs:documentation>Brands of payment cards.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="americanExpress">
        <xs:annotation>
          <xs:documentation>American Express</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="cirrus">
        <xs:annotation>
          <xs:documentation>Cirrus</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="dinersClub">
        <xs:annotation>
          <xs:documentation>Diners Club</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="discoverCard">
        <xs:annotation>
          <xs:documentation>Discover Card</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="giroCard">
        <xs:annotation>
          <xs:documentation>Girocard</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="maestro">
        <xs:annotation>
          <xs:documentation>Maestro</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="masterCard">
        <xs:annotation>
          <xs:documentation>MasterCard</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="visa">
        <xs:annotation>
          <xs:documentation>Visa</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vPay">
        <xs:annotation>
          <xs:documentation>V PAY</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="PaymentCardTypesEnum">
    <xs:annotation>
      <xs:documentation>Types of payment cards.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="creditCard">
        <xs:annotation>
          <xs:documentation>Credit card</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="debitCard">
        <xs:annotation>
          <xs:documentation>Debit card</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="chargeCard">
        <xs:annotation>
          <xs:documentation>Charge card</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fleetCard">
        <xs:annotation>
          <xs:documentation>Fleet or petrol station card.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="storedValueCard">
        <xs:annotation>
          <xs:documentation>Stored value card / prepaid card.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Some other type of card.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Percentage">
    <xs:annotation>
      <xs:documentation>A measure of percentage.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Float" />
  </xs:simpleType>
  <xs:complexType name="PercentageDistanceAlongLinearElement">
    <xs:annotation>
      <xs:documentation>Distance of a point along a linear element measured from the start node expressed as a percentage of the whole length of the linear element, where start node is relative to the element definition rather than the direction of traffic flow.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DistanceAlongLinearElement">
        <xs:sequence>
          <xs:element name="percentageDistanceAlong" type="D2LogicalModel:Percentage" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A measure of distance along a linear element from the start of the element expressed as a percentage of the total length of the linear object.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="percentageDistanceAlongLinearElementExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Period">
    <xs:annotation>
      <xs:documentation>A continuous time period or a set of discontinuous time periods defined by the intersection of a set of criteria all within an overall delimiting interval.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="startOfPeriod" type="D2LogicalModel:DateTime" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Start of period.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="endOfPeriod" type="D2LogicalModel:DateTime" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>End of a period.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="periodName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The name of the period.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="recurringTimePeriodOfDay" type="D2LogicalModel:TimePeriodOfDay" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A recurring period of a day.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="recurringDayWeekMonthPeriod" type="D2LogicalModel:DayWeekMonth" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A recurring period defined in terms of days of the week, weeks of the month and months of the year. </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="periodExtension" type="D2LogicalModel:_PeriodExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PeriodExtended">
    <xs:annotation>
      <xs:documentation>An extension point for Period offering the possibility to describe special days and public holidays.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="recurringSpecialDay" type="D2LogicalModel:SpecialDay" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A recurring period in terms of special days.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PermitsAndProhibitions">
    <xs:annotation>
      <xs:documentation>Defines sets of action and regulations to specify permitted and prohibited issues.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="activity" type="D2LogicalModel:RestAreaActivityEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>An activity, which is regulated.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="regulation" type="D2LogicalModel:RegulationEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Regulation for the specified activity.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="permitsAndProhibitionsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="PermitTypeEnum">
    <xs:annotation>
      <xs:documentation>Type of permission for parking.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="blueZonePermit">
        <xs:annotation>
          <xs:documentation>Blue zone permit.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="careTakingPermit">
        <xs:annotation>
          <xs:documentation>Permit for care taking.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carpoolingPermit">
        <xs:annotation>
          <xs:documentation>A permit for vehicles used for carpooling.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carSharingPermit">
        <xs:annotation>
          <xs:documentation>A permit for car sharing vehicles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="disabledPermit">
        <xs:annotation>
          <xs:documentation>Permit for disabled.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="emergencyVehiclePermit">
        <xs:annotation>
          <xs:documentation>Permit for emergency vehicle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="employeePermit">
        <xs:annotation>
          <xs:documentation>Permit for employees.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fairPermit">
        <xs:annotation>
          <xs:documentation>Permit of a fair.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="governmentPermit">
        <xs:annotation>
          <xs:documentation>Vehicles that have an official parking permission from the appropriate (local) government.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="maintenanceVehiclePermit">
        <xs:annotation>
          <xs:documentation>Permit for a maintenance vehicle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="residentPermit">
        <xs:annotation>
          <xs:documentation>Permit for a resident.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadWorksPermit">
        <xs:annotation>
          <xs:documentation>Permit for road works.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="specificIdentifiedVehiclePermit">
        <xs:annotation>
          <xs:documentation>A specific identified vehicle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="taxiPermit">
        <xs:annotation>
          <xs:documentation>Permit for a taxi.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Some other permit.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Point">
    <xs:annotation>
      <xs:documentation>A single geospatial point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:NetworkLocation">
        <xs:sequence>
          <xs:element name="tpegPointLocation" type="D2LogicalModel:TpegPointLocation" minOccurs="0" />
          <xs:element name="alertCPoint" type="D2LogicalModel:AlertCPoint" minOccurs="0" />
          <xs:element name="pointAlongLinearElement" type="D2LogicalModel:PointAlongLinearElement" minOccurs="0" />
          <xs:element name="pointByCoordinates" type="D2LogicalModel:PointByCoordinates" minOccurs="0" />
          <xs:element name="pointExtension" type="D2LogicalModel:_PointExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PointAlongLinearElement">
    <xs:annotation>
      <xs:documentation>A point on a linear element where the linear element is either a part of or the whole of a linear object (i.e. a road), consistent with ISO 19148 definitions. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="administrativeAreaOfPoint" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identification of the road administration area which contains the specified point.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="directionBoundAtPoint" type="D2LogicalModel:DirectionEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The direction of traffic flow at the specified point in terms of general destination direction.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="directionRelativeAtPoint" type="D2LogicalModel:LinearReferencingDirectionEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The direction of traffic flow at the specified point relative to the direction in which the linear element is defined.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="heightGradeOfPoint" type="D2LogicalModel:HeightGradeEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identification of whether the point on the linear element is at, above or below the normal elevation of a linear element of that type (e.g. road or road section) at that location, typically used to indicate "grade" separation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="linearElement" type="D2LogicalModel:LinearElement" />
      <xs:element name="distanceAlongLinearElement" type="D2LogicalModel:DistanceAlongLinearElement" />
      <xs:element name="pointAlongLinearElementExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PointByCoordinates">
    <xs:annotation>
      <xs:documentation>A single point defined only by a coordinate set with an optional bearing direction.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="bearing" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A bearing at the point measured in degrees (0 - 359). Unless otherwise specified the reference direction corresponding to 0 degrees is North.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pointCoordinates" type="D2LogicalModel:PointCoordinates" />
      <xs:element name="pointByCoordinatesExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PointCoordinates">
    <xs:annotation>
      <xs:documentation>A pair of coordinates defining the geodetic position of a single point using the European Terrestrial Reference System 1989 (ETRS89).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="latitude" type="D2LogicalModel:Float" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Latitude in decimal degrees using the European Terrestrial Reference System 1989 (ETRS89).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="longitude" type="D2LogicalModel:Float" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Longitude in decimal degrees using the European Terrestrial Reference System 1989 (ETRS89).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pointCoordinatesExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PointDestination">
    <xs:annotation>
      <xs:documentation>The specification of the destination of a defined route or itinerary which is a point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Destination">
        <xs:sequence>
          <xs:element name="point" type="D2LogicalModel:Point" />
          <xs:element name="pointDestinationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="PointExtended">
    <xs:annotation>
      <xs:documentation>Extension point for 'Point' to support the description of junctions (and other alternative point descriptions).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="description" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Textual description for a point location</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="junction" type="D2LogicalModel:Junction" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PolygonArea">
    <xs:annotation>
      <xs:documentation>defines points for a closed polygon-shape describing the area</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="sectionName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Name of the polygon area. Especially useful when the area consists of more than one polygon.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pointCoordinates" type="D2LogicalModel:_PolygonAreaIndexPointCoordinates" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="polygonAreaExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PublicHoliday">
    <xs:annotation>
      <xs:documentation>Specification of the public holiday type in a specific country or region. Use this component only when specialDayType is set to 'publicHoliday' or 'holidays'.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="country" type="D2LogicalModel:CountryEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>ISO 3166-1 two character country code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="countrySubdivision" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>ISO 3166-2 country sub-division code (up to 3 characters).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="region" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Region of country (e.g. "Scotland", "Wales" etc. if country = GB) </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="publicHolidayType" type="D2LogicalModel:PublicHolidayTypeEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specifies the public holiday type for the country or region.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="publicHolidayName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specification of public holiday, if the enumeration values do not fit.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="publicHolidayExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="PublicHolidayTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of public holiday.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="betweenChristmasAndNewYear">
        <xs:annotation>
          <xs:documentation>The days between the Christmas and New Year public holidays which are not official public holidays.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="boxingDay">
        <xs:annotation>
          <xs:documentation>The day following Christmas day.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bridgeHoliday">
        <xs:annotation>
          <xs:documentation>A day between a public holiday and the weekend.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="christmasEve">
        <xs:annotation>
          <xs:documentation>The day before Christmas day.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="christmasDayAndBoxingDay">
        <xs:annotation>
          <xs:documentation>Christmas day and Boxing day (day following Christmas day).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="christmasHolidayPeriod">
        <xs:annotation>
          <xs:documentation>The period between the Christmas and New Year public holidays (inclusive).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="dayFollowingPublicHoliday">
        <xs:annotation>
          <xs:documentation>A day following a public holiday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="easterFridayHoliday">
        <xs:annotation>
          <xs:documentation>Good Friday (the Friday prior to the Easter weekend).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="easterHolidayPeriod">
        <xs:annotation>
          <xs:documentation>The period between Easter Friday and Easter Monday (inclusive).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="easterMondayHoliday">
        <xs:annotation>
          <xs:documentation>The Monday following the Easter weekend.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="easterSaturday">
        <xs:annotation>
          <xs:documentation>The Saturday of the Easter weekend.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="easterSunday">
        <xs:annotation>
          <xs:documentation>Easter Sunday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="eveOfPublicHoliday">
        <xs:annotation>
          <xs:documentation>The day preceding a public holiday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="holidayPeriod">
        <xs:annotation>
          <xs:documentation>A holiday period.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="inLieuOfPublicHoliday">
        <xs:annotation>
          <xs:documentation>A holiday in lieu of a public holiday that falls on a weekend.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="january2ndHoliday">
        <xs:annotation>
          <xs:documentation>The 2nd of January holiday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="newYearsDay">
        <xs:annotation>
          <xs:documentation>New Year's day.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="newYearsEve">
        <xs:annotation>
          <xs:documentation>The day before New Year's day.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="notPublicHoliday">
        <xs:annotation>
          <xs:documentation>A day that is not a public holiday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="publicHoliday">
        <xs:annotation>
          <xs:documentation>A public holiday in the respective country/region.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>None of the elements in the list. Public holiday is specified by 'publicHolidayName' instead.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Reference">
    <xs:attribute name="id" type="xs:string" use="required" />
  </xs:complexType>
  <xs:complexType name="Referent">
    <xs:annotation>
      <xs:documentation>A referent on a linear object that has a known location such as a node, a reference marker (e.g. a markerpost), an intersection etc.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="referentIdentifier" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The identifier of the referent, unique on the specified linear element (i.e. road or part of).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="referentName" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The name of the referent, e.g. a junction or intersection name.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="referentType" type="D2LogicalModel:ReferentTypeEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The type of the referent.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="referentDescription" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Description of the referent.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pointCoordinates" type="D2LogicalModel:PointCoordinates" minOccurs="0" />
      <xs:element name="referentExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ReferentTypeEnum">
    <xs:annotation>
      <xs:documentation>A set of types of known points along a linear object such as a road.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="boundary">
        <xs:annotation>
          <xs:documentation>A boundary between two jurisdictional or administrative areas. These may be legal boundaries such as between counties or countries, maintenance responsibility boundaries or control boundaries. </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="intersection">
        <xs:annotation>
          <xs:documentation>A crossing of two or more roads where the precise point of intersection is defined according to specific business rules.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="referenceMarker">
        <xs:annotation>
          <xs:documentation>A marker which is usually but not necessarily physical that is one of a sequence which are spaced out along the linear object (road)  to provide a location reference. The spacing of markers is not necessarily even.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="landmark">
        <xs:annotation>
          <xs:documentation>A visible identifiable physical landmark either alongside or close to the linear object.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadNode">
        <xs:annotation>
          <xs:documentation>A topological node defined on a road network. Such nodes may delineate the segmentation of the road network according to defined business rules or may constitute a purely topological representation of a road network.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="RegulationEnum">
    <xs:annotation>
      <xs:documentation>Regulation parameters for actions.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="permitted">
        <xs:annotation>
          <xs:documentation>Permitted.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="prohibited">
        <xs:annotation>
          <xs:documentation>Prohibited.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="punishable">
        <xs:annotation>
          <xs:documentation>The action is prohibited and can be punished.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="seasonalHeterogeneous">
        <xs:annotation>
          <xs:documentation>It depends on the season, whether the action is allowed or not.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="permittedOnlyAtParticularTimes">
        <xs:annotation>
          <xs:documentation>Permitted only at particular times.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="permittedOnlyOnParticularAreas">
        <xs:annotation>
          <xs:documentation>Permitted only on particular areas (but inside the parking site ground).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="prohibitedAtParticularTimes">
        <xs:annotation>
          <xs:documentation>Prohibited at particular times.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="prohibitedOnParticularAreas">
        <xs:annotation>
          <xs:documentation>Prohibited on particular areas.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onlyOnRequest">
        <xs:annotation>
          <xs:documentation>Only on request (i.e. permission needed).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="heterogeneous">
        <xs:annotation>
          <xs:documentation>The regulation rule is quite complex and cannot be noted here.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onlyOutsideBuildings">
        <xs:annotation>
          <xs:documentation>Only outside buildings.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="onlyInsideBuildings">
        <xs:annotation>
          <xs:documentation>Only inside buildings.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unspecified">
        <xs:annotation>
          <xs:documentation>There is no regulation for this action.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>The regulation is unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ReservationTypeEnum">
    <xs:annotation>
      <xs:documentation>Reservation type enum.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="optional">
        <xs:annotation>
          <xs:documentation>Places can be reserved, but must not.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mandatory">
        <xs:annotation>
          <xs:documentation>Places need to be reserved.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="notAvailable">
        <xs:annotation>
          <xs:documentation>Places cannot be reserved.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="partly">
        <xs:annotation>
          <xs:documentation>Some places can or must be reserved, others not (do not use when specifying a single parking space).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Possibility of reservation is unknown,</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unspecified">
        <xs:annotation>
          <xs:documentation>Possibility of reservation is not specified.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ResponseEnum">
    <xs:annotation>
      <xs:documentation>Types of response that a supplier can return to a requesting client.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="acknowledge">
        <xs:annotation>
          <xs:documentation>An acknowledgement that the supplier has received and complied with the client's request.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="requestDenied">
        <xs:annotation>
          <xs:documentation>A notification that the supplier has denied the client's request for a data.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="subscriptionRequestDenied">
        <xs:annotation>
          <xs:documentation>A notification that the supplier has denied the client's request for a subscription.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="RestAreaActivityEnum">
    <xs:annotation>
      <xs:documentation>Rest area activity enum.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="openFire">
        <xs:annotation>
          <xs:documentation>Open fire.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="overnightParking">
        <xs:annotation>
          <xs:documentation>Overnight parking.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="picnic">
        <xs:annotation>
          <xs:documentation>Picnic.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="smoking">
        <xs:annotation>
          <xs:documentation>Smoking.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="camping">
        <xs:annotation>
          <xs:documentation>Camping.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="handlingHazardousMaterial">
        <xs:annotation>
          <xs:documentation>Handling with hazardous material.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="barbecue">
        <xs:annotation>
          <xs:documentation>Barbeque.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="RGBColour">
    <xs:annotation>
      <xs:documentation>An RGB colour described by values for red, green and blue (0..255) as well as an optional name.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="rgbRedValue" type="D2LogicalModel:NonNegativeInteger" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The red value of the RGB colour (0..255).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="rgbGreenValue" type="D2LogicalModel:NonNegativeInteger" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The green value of the RGB colour (0..255).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="rgbBlueValue" type="D2LogicalModel:NonNegativeInteger" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The blue value of the RGB colour (0..255).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="colourName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The name of the colour.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="rgbColourExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Road">
    <xs:annotation>
      <xs:documentation>Identification of a road by its name, identifier, type ...</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="nameOfRoad" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The name of the road.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="roadIdentifier" type="D2LogicalModel:MultilingualString" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identifier/number of the road.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="typeOfRoad" type="D2LogicalModel:RoadTypeEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Type of the road.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="roadDestination" type="D2LogicalModel:MultilingualString" minOccurs="1" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Name of some city, area, compass direction or other identification the road is leading to (to determine the direction in question).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="roadOrigination" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Name of some city, area, compass direction or other identification this road comes from.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="distanceToThisRoad" type="D2LogicalModel:MetresAsNonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Distance to the road in metres (from the calling component/object).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="roadExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="RoadNode">
    <xs:annotation>
      <xs:documentation>A road node as part of the specialised road identified by the name of a junctionon on this road.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Road">
        <xs:sequence>
          <xs:element name="junctionName" type="D2LogicalModel:MultilingualString" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Name of the junction.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="roadNodeExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="RoadTypeEnum">
    <xs:annotation>
      <xs:documentation>Categorisation of the  road type (motorway, main road, ...).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="motorway">
        <xs:annotation>
          <xs:documentation>Motorway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trunkRoad">
        <xs:annotation>
          <xs:documentation>Trunk road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mainRoad">
        <xs:annotation>
          <xs:documentation>Main road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Seconds">
    <xs:annotation>
      <xs:documentation>Seconds.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Float" />
  </xs:simpleType>
  <xs:complexType name="ServiceFacility">
    <xs:annotation>
      <xs:documentation>One type of service facility that is available on the parking site or located next to it. You can specify the number of this service facility type (e.g. 5 restaurants) as well as the number of subitems (e.g. 200 restaurant places).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:ParkingEquipmentOrServiceFacility">
        <xs:sequence>
          <xs:element name="serviceFacilityType" type="D2LogicalModel:ServiceFacilityTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>One type of service, that is available on the parking site.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="numberOfSubitems" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The quantity of sub items to this service facility type, e.g. the total number of restaurant places or fuel dispensers etc.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="distanceFromParkingSite" type="D2LogicalModel:MetresAsNonNegativeInteger" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>If the service facility is not located on the parking site itself, its distance can be specified here in metres.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="serviceFacilityExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="ServiceFacilityTypeEnum">
    <xs:annotation>
      <xs:documentation>Service facilities available on the parking site, parking space or group of parking spaces. In distinction to equipment, a service is mostly manned.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="hotel">
        <xs:annotation>
          <xs:documentation>A hotel.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="motel">
        <xs:annotation>
          <xs:documentation>Hotel on the motorway or other accommodation service.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="overnightAccommodation">
        <xs:annotation>
          <xs:documentation>OvernightAccomodation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="shop">
        <xs:annotation>
          <xs:documentation>A shop of unspecified kind.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="kiosk">
        <xs:annotation>
          <xs:documentation>Kiosk.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="foodShopping">
        <xs:annotation>
          <xs:documentation>Food shopping.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="cafe">
        <xs:annotation>
          <xs:documentation>Cafe.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restaurant">
        <xs:annotation>
          <xs:documentation>Restaurant.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restaurantSelfService">
        <xs:annotation>
          <xs:documentation>A restaurant where people arange and fetch their meal themselve, this might enclose a buffet.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="motorwayRestaurant">
        <xs:annotation>
          <xs:documentation>Restaurant located on a motorway rest area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="motorwayRestaurantSmall">
        <xs:annotation>
          <xs:documentation>Smaller type of restaurant located on a motorway rest area. Might be with limited offers.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sparePartsShopping">
        <xs:annotation>
          <xs:documentation>Spare parts shopping.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="petrolStation">
        <xs:annotation>
          <xs:documentation>Indicates whether it is possible to get petrol.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vehicleMaintenance">
        <xs:annotation>
          <xs:documentation>Garage repair service.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tyreRepair">
        <xs:annotation>
          <xs:documentation>A tyre repair service.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="truckRepair">
        <xs:annotation>
          <xs:documentation>Truck repair.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="truckWash">
        <xs:annotation>
          <xs:documentation>Truck wash.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carWash">
        <xs:annotation>
          <xs:documentation>Car wash.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pharmacy">
        <xs:annotation>
          <xs:documentation>Pharmacy.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="medicalFacility">
        <xs:annotation>
          <xs:documentation>Medical facility.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="police">
        <xs:annotation>
          <xs:documentation>Indicates whether a police station is on site or very close.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="touristInformation">
        <xs:annotation>
          <xs:documentation>Tourist information with employees.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bikeSharing">
        <xs:annotation>
          <xs:documentation>Bike Sharing.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="docstop">
        <xs:annotation>
          <xs:documentation>The site is part of the Docstop project, http://www.docstoponline.eu, which means medical assistance for professional drivers.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="laundry">
        <xs:annotation>
          <xs:documentation>A possibility for washing clothes (might also be a laundromat with coins).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="leisureActivities">
        <xs:annotation>
          <xs:documentation>There are leisure activities offered on the site or in the very near surrounding. Use the additional description attribute to give details.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Some other service facility. Use 'otherEquipmentOrServiceFacility' to specify it.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="SpecialDay">
    <xs:annotation>
      <xs:documentation>Specification of a special day, for example schoolDay, electionDay, ...  Gives also the possibility to define a public holiday (country specific).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="intersectWithApplicableDays" type="D2LogicalModel:Boolean" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>When true, the period is the intersection of applicable days and this special day. When false, the period is the union of applicable days and this special day.”</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="specialDayType" type="D2LogicalModel:SpecialDayTypeEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specification of a special day, for example schoolDay, electionDay, ..  .</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="specialDayName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specification of a special day, if the enumeration values do not fit.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="publicHoliday" type="D2LogicalModel:PublicHoliday" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="specialDayExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="SpecialDayTypeEnum">
    <xs:annotation>
      <xs:documentation>Collection of general types of days.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="bicycleRaceDay">
        <xs:annotation>
          <xs:documentation>Day of local bicycle race.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bullFightDay">
        <xs:annotation>
          <xs:documentation>Day of local bullfight.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carnivalDay">
        <xs:annotation>
          <xs:documentation>Day of a local carnival involving a procession along roads.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="exhibitionDay">
        <xs:annotation>
          <xs:documentation>Day of a local exhibition.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="festivalDay">
        <xs:annotation>
          <xs:documentation>Day of a local festival.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="gamesDay">
        <xs:annotation>
          <xs:documentation>Day of local games (e.g. highland games in Scotland).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="horseRaceMeetingDay">
        <xs:annotation>
          <xs:documentation>Day of a local horse race meeting.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="huntMeetingDay">
        <xs:annotation>
          <xs:documentation>Day of a local hunt meeting.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="marathonRaceDay">
        <xs:annotation>
          <xs:documentation>Day of local marathon race.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="marketDay">
        <xs:annotation>
          <xs:documentation>Day of a local market.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="motorSportRaceMeetingDay">
        <xs:annotation>
          <xs:documentation>Day of a local motor sport race meeting.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nonWorkingDay">
        <xs:annotation>
          <xs:documentation>A non-working day in the specific country/region.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="raceMeetingDay">
        <xs:annotation>
          <xs:documentation>Day of a local race meeting (other than horse or motor sport).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="regattaDay">
        <xs:annotation>
          <xs:documentation>Day of a local regatta.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="showDay">
        <xs:annotation>
          <xs:documentation>Day of a local show.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sportsMeetingDay">
        <xs:annotation>
          <xs:documentation>Day of a local sports meeting.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="workingDay">
        <xs:annotation>
          <xs:documentation>A working day in the specific country/region.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="schoolDay">
        <xs:annotation>
          <xs:documentation>School day.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="electionDay">
        <xs:annotation>
          <xs:documentation>Election day.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="publicHoliday">
        <xs:annotation>
          <xs:documentation>Public holiday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="holidays">
        <xs:annotation>
          <xs:documentation>A day within the school holidays. You can use the PublicHoliday class to specify more details.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="undefinedDayType">
        <xs:annotation>
          <xs:documentation>UndefinedDayType</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="SpecialLocationParkingSite">
    <xs:annotation>
      <xs:documentation>A parking site which is located at a special location, often associated with some building.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:ParkingSite">
        <xs:sequence>
          <xs:element name="parkingSpecialLocation" type="D2LogicalModel:ParkingSpecialLocationEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The special location of the parking site.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingOtherSpecialLocation" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A special location not available in the enumeration. Use literal 'other' in this case.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="specialLocationParkingSiteExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="SquareMetres">
    <xs:annotation>
      <xs:documentation>Square metres.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:NonNegativeInteger" />
  </xs:simpleType>
  <xs:simpleType name="String">
    <xs:annotation>
      <xs:documentation>A character string whose value space is the set of finite-length sequences of characters. Every character has a corresponding Universal Character Set code point (as defined in ISO/IEC 10646), which is an integer.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:maxLength value="1024" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="SupplementaryPositionalDescription">
    <xs:annotation>
      <xs:documentation>A collection of supplementary positional information which improves the precision of the location.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="locationDescriptor" type="D2LogicalModel:LocationDescriptorEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Specifies a descriptor which helps to identify the specific location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="sequentialRampNumber" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The sequential number of an exit/entrance ramp from a given location in a given direction (normally used to indicate a specific exit/entrance in a complex junction/intersection).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="affectedCarriagewayAndLanes" type="D2LogicalModel:AffectedCarriagewayAndLanes" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="supplementaryPositionalDescriptionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="locationPrecision" type="D2LogicalModel:MetresAsNonNegativeInteger" use="optional">
      <xs:annotation>
        <xs:documentation>Indicates that the location is given with a precision which is better than the stated value in metres.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:complexType name="TariffsAndPayment">
    <xs:annotation>
      <xs:documentation>A table of charges under various conditions, primary used for parking. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="lastUpdated" type="D2LogicalModel:DateTime" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The date/time at which this information was last updated.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="acceptedMeansOfPayment" type="D2LogicalModel:MeansOfPaymentEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Method(s) by which the user can make payments. In case of 'paymentCard' use AcceptedPaymentCards to specify more details.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="paymentMode" type="D2LogicalModel:ParkingPaymentModeEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Modes how to realize the payment ('payAndDisplay', 'payByPrepaidToken', ...).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="paymentAdditionalDescription" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Additional description, for instance instructions or telephone number for paying by SMS.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="freeOfCharge" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>No fee at all. In this case, no further elements of the tariffs structure are needed.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="reservationFee" type="D2LogicalModel:AmountOfMoney" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A fee for reservation, if this is uniform for all situations. Can also be 0 to indicate free reservations. This attribute does not indicate if reservation is available at all and/or mandatory. </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="urlLinkAddress" type="D2LogicalModel:Url" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A Uniform Resource Locator (URL) address pointing to a resource available on the Internet from where further relevant information may be obtained.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="chargeBand" type="D2LogicalModel:ChargeBand" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="chargeBandByReference" type="D2LogicalModel:ChargeBandByReference" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="acceptedPaymentCards" type="D2LogicalModel:AcceptedPaymentCards" minOccurs="0" />
      <xs:element name="tariffsAndPaymentExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="TemperatureCelsius">
    <xs:annotation>
      <xs:documentation>A measure of temperature defined in degrees Celsius.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Float" />
  </xs:simpleType>
  <xs:simpleType name="Time">
    <xs:annotation>
      <xs:documentation>An instant of time that recurs every day. The value space of time is the space of time of day values as defined in § 5.3 of [ISO 8601]. Specifically, it is a set of zero-duration daily time instances.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:time" />
  </xs:simpleType>
  <xs:complexType name="TimePeriodByHour">
    <xs:annotation>
      <xs:documentation>Specification of a continuous period within a 24 hour period by times.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TimePeriodOfDay">
        <xs:sequence>
          <xs:element name="startTimeOfPeriod" type="D2LogicalModel:Time" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Start of time period.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="endTimeOfPeriod" type="D2LogicalModel:Time" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>End of time period.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="timePeriodByHourExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TimePeriodOfDay" abstract="true">
    <xs:annotation>
      <xs:documentation>Specification of a continuous period of time within a 24 hour period.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="timePeriodOfDayExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="Tonnes">
    <xs:annotation>
      <xs:documentation>A measure of weight defined in metric tonnes.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Float" />
  </xs:simpleType>
  <xs:complexType name="TpegAreaDescriptor">
    <xs:annotation>
      <xs:documentation>A descriptor for describing an area location.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegDescriptor">
        <xs:sequence>
          <xs:element name="tpegAreaDescriptorType" type="D2LogicalModel:TpegLoc03AreaDescriptorSubtypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The nature of the descriptor used to define the location under consideration (derived from the TPEG Loc table 03).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tpegAreaDescriptorExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TpegAreaLocation" abstract="true">
    <xs:annotation>
      <xs:documentation>A geographic or geometric area defined by a TPEG-Loc structure which may include height information for additional geospatial discrimination.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="tpegAreaLocationType" type="D2LogicalModel:TpegLoc01AreaLocationSubtypeEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The type of TPEG location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="tpegHeight" type="D2LogicalModel:TpegHeight" minOccurs="0" />
      <xs:element name="tpegAreaLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TpegDescriptor" abstract="true">
    <xs:annotation>
      <xs:documentation>A collection of information providing descriptive references to locations using the TPEG-Loc location referencing approach.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="descriptor" type="D2LogicalModel:MultilingualString" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A text string which describes or elaborates the location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="tpegDescriptorExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TpegFramedPoint">
    <xs:annotation>
      <xs:documentation>A point on the road network which is framed between two other points on the same road.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegPointLocation">
        <xs:sequence>
          <xs:element name="tpegFramedPointLocationType" type="D2LogicalModel:TpegLoc01FramedPointLocationSubtypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of TPEG location.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="framedPoint" type="D2LogicalModel:TpegNonJunctionPoint">
            <xs:annotation>
              <xs:documentation>A single non junction point on the road network which is framed between two other specified points on the road network.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="to" type="D2LogicalModel:TpegPoint">
            <xs:annotation>
              <xs:documentation>The location at the down stream end of the section of road which frames the TPEGFramedPoint.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="from" type="D2LogicalModel:TpegPoint">
            <xs:annotation>
              <xs:documentation>The location at the up stream end of the section of road which frames the TPEGFramedPoint.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tpegFramedPointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TpegGeometricArea">
    <xs:annotation>
      <xs:documentation>A geometric area defined by a centre point and a radius.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegAreaLocation">
        <xs:sequence>
          <xs:element name="radius" type="D2LogicalModel:MetresAsNonNegativeInteger" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The radius of the geometric area identified.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="centrePoint" type="D2LogicalModel:PointCoordinates">
            <xs:annotation>
              <xs:documentation>Centre point of a circular geometric area.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="name" type="D2LogicalModel:TpegAreaDescriptor" minOccurs="0">
            <xs:annotation>
              <xs:documentation>Name of area.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tpegGeometricAreaExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TpegHeight">
    <xs:annotation>
      <xs:documentation>Height information which provides additional discrimination for the applicable area.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="height" type="D2LogicalModel:MetresAsFloat" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A measurement of height in metres</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="heightType" type="D2LogicalModel:TpegLoc04HeightTypeEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A descriptive identification of relative height using TPEG-Loc location referencing.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="tpegHeightExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TpegIlcPointDescriptor">
    <xs:annotation>
      <xs:documentation>A descriptor for describing a junction by defining the intersecting roads.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegPointDescriptor">
        <xs:sequence>
          <xs:element name="tpegIlcPointDescriptorType" type="D2LogicalModel:TpegLoc03IlcPointDescriptorSubtypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The nature of the descriptor used to define the location under consideration (derived from the TPEG Loc table 03).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tpegIlcPointDescriptorExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TpegJunction">
    <xs:annotation>
      <xs:documentation>A point on the road network which is a road junction point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegPoint">
        <xs:sequence>
          <xs:element name="pointCoordinates" type="D2LogicalModel:PointCoordinates" />
          <xs:element name="name" type="D2LogicalModel:TpegJunctionPointDescriptor" minOccurs="0">
            <xs:annotation>
              <xs:documentation>A name which identifies a junction point on the road network</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="ilc" type="D2LogicalModel:TpegIlcPointDescriptor" maxOccurs="3">
            <xs:annotation>
              <xs:documentation>A descriptor for describing a junction by identifying the intersecting roads at a road junction.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="otherName" type="D2LogicalModel:TpegOtherPointDescriptor" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>A descriptive name which helps to identify the junction point.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tpegJunctionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TpegJunctionPointDescriptor">
    <xs:annotation>
      <xs:documentation>A descriptor for describing a point at a junction on a road network.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegPointDescriptor">
        <xs:sequence>
          <xs:element name="tpegJunctionPointDescriptorType" type="D2LogicalModel:TpegLoc03JunctionPointDescriptorSubtypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The nature of the descriptor used to define the location under consideration (derived from the TPEG Loc table 03).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tpegJunctionPointDescriptorExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TpegLinearLocation">
    <xs:annotation>
      <xs:documentation>A linear section along a single road defined between two points on the same road by a TPEG-Loc structure.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="tpegDirection" type="D2LogicalModel:DirectionEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The direction of traffic flow.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="tpegLinearLocationType" type="D2LogicalModel:TpegLoc01LinearLocationSubtypeEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The type of TPEG location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="to" type="D2LogicalModel:TpegPoint">
        <xs:annotation>
          <xs:documentation>The location at the down stream end of the linear section of road.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="from" type="D2LogicalModel:TpegPoint">
        <xs:annotation>
          <xs:documentation>The location at the up stream end of the linear section of road.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="tpegLinearLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="TpegLoc01AreaLocationSubtypeEnum">
    <xs:annotation>
      <xs:documentation>Types of area.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="largeArea">
        <xs:annotation>
          <xs:documentation>A geographic or geometric large area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other than as defined in this enumeration.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TpegLoc01FramedPointLocationSubtypeEnum">
    <xs:annotation>
      <xs:documentation>Types of points on the road network framed by two other points on the same road.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="framedPoint">
        <xs:annotation>
          <xs:documentation>A point on the road network framed by two other points on the same road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TpegLoc01LinearLocationSubtypeEnum">
    <xs:annotation>
      <xs:documentation>Types of linear location.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="segment">
        <xs:annotation>
          <xs:documentation>A segment (or link) of the road network corresponding to the way in which the road operator has segmented the network.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TpegLoc01SimplePointLocationSubtypeEnum">
    <xs:annotation>
      <xs:documentation>Types of simple point.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="intersection">
        <xs:annotation>
          <xs:documentation>An point on the road network at which one or more roads intersect.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nonLinkedPoint">
        <xs:annotation>
          <xs:documentation>A point on the road network which is not at a junction or intersection.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TpegLoc03AreaDescriptorSubtypeEnum">
    <xs:annotation>
      <xs:documentation>Descriptors for describing area locations.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="administrativeAreaName">
        <xs:annotation>
          <xs:documentation>Name of an administrative area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="administrativeReferenceName">
        <xs:annotation>
          <xs:documentation>Reference name by which administrative area is known.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="areaName">
        <xs:annotation>
          <xs:documentation>Name of an area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="countyName">
        <xs:annotation>
          <xs:documentation>Name of a county (administrative sub-division).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lakeName">
        <xs:annotation>
          <xs:documentation>Name of a lake.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nationName">
        <xs:annotation>
          <xs:documentation>Name of a nation (e.g. Wales) which is a sub-division of a ISO recognised country.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="policeForceControlAreaName">
        <xs:annotation>
          <xs:documentation>Name of a police force control area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="regionName">
        <xs:annotation>
          <xs:documentation>Name of a geographic region.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="seaName">
        <xs:annotation>
          <xs:documentation>Name of a sea.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="townName">
        <xs:annotation>
          <xs:documentation>Name of a town.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other than as defined in this enumeration.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TpegLoc03IlcPointDescriptorSubtypeEnum">
    <xs:annotation>
      <xs:documentation>Descriptors for describing a junction by identifying the intersecting roads at a road junction.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="tpegIlcName1">
        <xs:annotation>
          <xs:documentation>The name of the road on which the junction point is located.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tpegIlcName2">
        <xs:annotation>
          <xs:documentation>The name of the first intersecting road at the junction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tpegIlcName3">
        <xs:annotation>
          <xs:documentation>The name of the second intersecting road (if one exists) at the junction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TpegLoc03JunctionPointDescriptorSubtypeEnum">
    <xs:annotation>
      <xs:documentation>Descriptors for describing a point at a road junction.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="junctionName">
        <xs:annotation>
          <xs:documentation>Name of a road network junction where two or more roads join.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TpegLoc03OtherPointDescriptorSubtypeEnum">
    <xs:annotation>
      <xs:documentation>Descriptors other than junction names and road descriptors which can help to identify the location of points on the road network.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="administrativeAreaName">
        <xs:annotation>
          <xs:documentation>Name of an administrative area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="administrativeReferenceName">
        <xs:annotation>
          <xs:documentation>Reference name by which an administrative area is known.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="airportName">
        <xs:annotation>
          <xs:documentation>Name of an airport.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="areaName">
        <xs:annotation>
          <xs:documentation>Name of an area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="buildingName">
        <xs:annotation>
          <xs:documentation>Name of a building.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="busStopIdentifier">
        <xs:annotation>
          <xs:documentation>Identifier of a bus stop on the road network.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="busStopName">
        <xs:annotation>
          <xs:documentation>Name of a bus stop on the road network.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="canalName">
        <xs:annotation>
          <xs:documentation>Name of a canal.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="countyName">
        <xs:annotation>
          <xs:documentation>Name of a county (administrative sub-division).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ferryPortName">
        <xs:annotation>
          <xs:documentation>Name of a ferry port.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="intersectionName">
        <xs:annotation>
          <xs:documentation>Name of a road network intersection.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lakeName">
        <xs:annotation>
          <xs:documentation>Name of a lake.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="linkName">
        <xs:annotation>
          <xs:documentation>Name of a road link.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="localLinkName">
        <xs:annotation>
          <xs:documentation>Local name of a road link.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="metroStationName">
        <xs:annotation>
          <xs:documentation>Name of a metro/underground station.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nationName">
        <xs:annotation>
          <xs:documentation>Name of a nation (e.g. Wales) which is a sub-division of a ISO recognised country.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nonLinkedPointName">
        <xs:annotation>
          <xs:documentation>Name of a point on the road network which is not at a junction or intersection. </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="parkingFacilityName">
        <xs:annotation>
          <xs:documentation>Name of a parking facility.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pointName">
        <xs:annotation>
          <xs:documentation>Name of a specific point.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pointOfInterestName">
        <xs:annotation>
          <xs:documentation>Name of a general point of interest.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="railwayStation">
        <xs:annotation>
          <xs:documentation>Name of a railway station.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="regionName">
        <xs:annotation>
          <xs:documentation>Name of a geographic region.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="riverName">
        <xs:annotation>
          <xs:documentation>Name of a river.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="seaName">
        <xs:annotation>
          <xs:documentation>Name of a sea.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="serviceAreaName">
        <xs:annotation>
          <xs:documentation>Name of a service area on a road network.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tidalRiverName">
        <xs:annotation>
          <xs:documentation>Name of a river which is of a tidal nature.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="townName">
        <xs:annotation>
          <xs:documentation>Name of a town.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other than as defined in this enumeration.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TpegLoc04HeightTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of height.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="above">
        <xs:annotation>
          <xs:documentation>Height above specified location.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="aboveSeaLevel">
        <xs:annotation>
          <xs:documentation>Height above mean sea high water level.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="aboveStreetLevel">
        <xs:annotation>
          <xs:documentation>Height above street level.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="at">
        <xs:annotation>
          <xs:documentation>At height of specified location.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="atSeaLevel">
        <xs:annotation>
          <xs:documentation>At mean sea high water level.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="atStreetLevel">
        <xs:annotation>
          <xs:documentation>At street level.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="below">
        <xs:annotation>
          <xs:documentation>Height below specified location.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="belowSeaLevel">
        <xs:annotation>
          <xs:documentation>Height below mean sea high water level.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="belowStreetLevel">
        <xs:annotation>
          <xs:documentation>Height below street level.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="undefined">
        <xs:annotation>
          <xs:documentation>Undefined height reference.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown height reference.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other than as defined in this enumeration.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="TpegNamedOnlyArea">
    <xs:annotation>
      <xs:documentation>An area defined by a well-known name.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegAreaLocation">
        <xs:sequence>
          <xs:element name="name" type="D2LogicalModel:TpegAreaDescriptor" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>Name of area.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tpegNamedOnlyAreaExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TpegNonJunctionPoint">
    <xs:annotation>
      <xs:documentation>A point on the road network which is not a road junction point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegPoint">
        <xs:sequence>
          <xs:element name="pointCoordinates" type="D2LogicalModel:PointCoordinates" />
          <xs:element name="name" type="D2LogicalModel:TpegOtherPointDescriptor" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>A descriptive name which helps to identify the non junction point. At least one descriptor must identify the road on which the point is located, i.e. must be of type 'linkName' or 'localLinkName'.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tpegNonJunctionPointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TpegOtherPointDescriptor">
    <xs:annotation>
      <xs:documentation>General descriptor for describing a point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegPointDescriptor">
        <xs:sequence>
          <xs:element name="tpegOtherPointDescriptorType" type="D2LogicalModel:TpegLoc03OtherPointDescriptorSubtypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The nature of the descriptor used to define the location under consideration (derived from the TPEG Loc table 03).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tpegOtherPointDescriptorExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TpegPoint" abstract="true">
    <xs:annotation>
      <xs:documentation>A point on the road network which is either a junction point or a non junction point.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="tpegPointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TpegPointDescriptor" abstract="true">
    <xs:annotation>
      <xs:documentation>A descriptor for describing a point location.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegDescriptor">
        <xs:sequence>
          <xs:element name="tpegPointDescriptorExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TpegPointLocation" abstract="true">
    <xs:annotation>
      <xs:documentation>A single point on the road network defined by a TPEG-Loc structure and which has an associated direction of traffic flow.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="tpegDirection" type="D2LogicalModel:DirectionEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The direction of traffic flow.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="tpegPointLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TpegSimplePoint">
    <xs:annotation>
      <xs:documentation>A point on the road network which is not bounded by any other points on the road network.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegPointLocation">
        <xs:sequence>
          <xs:element name="tpegSimplePointLocationType" type="D2LogicalModel:TpegLoc01SimplePointLocationSubtypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of TPEG location.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="point" type="D2LogicalModel:TpegPoint">
            <xs:annotation>
              <xs:documentation>A single point defined by a coordinate set and TPEG decriptors.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tpegSimplePointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="TruckParkingDynamicManagementEnum">
    <xs:annotation>
      <xs:documentation>Dynamic parking mode enum.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="compactParking">
        <xs:annotation>
          <xs:documentation>Lorries are parking one after the other in different lanes; each lane has a dedicated time of departure (which might be displayed on a sign gantry).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="queueParking">
        <xs:annotation>
          <xs:documentation>Lorries are parking in queues, one after the other. Each lorry must have an earlier time of departure than all the lorries behind it.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noDynamicParkingManagement">
        <xs:annotation>
          <xs:documentation>No dynamic parking management.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Some other type of dynamic parking management.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="UrbanParkingSite">
    <xs:annotation>
      <xs:documentation>A parking site in an urban context.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:ParkingSite">
        <xs:sequence>
          <xs:element name="urbanParkingSiteType" type="D2LogicalModel:UrbanParkingSiteTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of urban parking site.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="parkingZone" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Name or identifier of a parking zone this parking site belongs to. To be filled with the string value 'True', if there is a parking zone with unknown name.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="urbanParkingSiteExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="UrbanParkingSiteTypeEnum">
    <xs:annotation>
      <xs:documentation>The type of an urban parking site.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="onStreetParking">
        <xs:annotation>
          <xs:documentation>Vehicles are parking on the roadside.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="offStreetParking">
        <xs:annotation>
          <xs:documentation>Vehicles are parking off the road, e.g. on a parking space, a car park or some other area designed for parking.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>The parking is associated with some other location.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="UrgencyEnum">
    <xs:annotation>
      <xs:documentation>Degrees of urgency that a receiving client should associate with the disseminate of the information contained in the publication.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="extremelyUrgent">
        <xs:annotation>
          <xs:documentation>Dissemination of the information is extremely urgent.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="urgent">
        <xs:annotation>
          <xs:documentation>Dissemination of the information is urgent.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="normalUrgency">
        <xs:annotation>
          <xs:documentation>Dissemination of the information is of normal urgency.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Url">
    <xs:annotation>
      <xs:documentation>A Uniform Resource Locator (URL) address comprising a compact string of characters for a resource available on the Internet.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:anyURI" />
  </xs:simpleType>
  <xs:simpleType name="UserTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of users; used for parking but also for usage of equipment and services.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="allUsers">
        <xs:annotation>
          <xs:documentation>All users.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hotelGuests">
        <xs:annotation>
          <xs:documentation>Hotel guests.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="reservationHolders">
        <xs:annotation>
          <xs:documentation>Those who have a valid reservation for the duration of parking.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="registeredDisabledUsers">
        <xs:annotation>
          <xs:documentation>Registered disabled persons.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="disabled">
        <xs:annotation>
          <xs:documentation>Physically impaired people.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="handicapped">
        <xs:annotation>
          <xs:documentation>Persons with deficiencies in their daily life.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hearingImpaired">
        <xs:annotation>
          <xs:documentation>People with difficulties to hear.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="visuallyImpaired">
        <xs:annotation>
          <xs:documentation>People with difficulties to see.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="wheelchairUsers">
        <xs:annotation>
          <xs:documentation>Wheelchair users.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="men">
        <xs:annotation>
          <xs:documentation>Men.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="women">
        <xs:annotation>
          <xs:documentation>Women.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="staff">
        <xs:annotation>
          <xs:documentation>Staff.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="employees">
        <xs:annotation>
          <xs:documentation>Employees.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="visitors">
        <xs:annotation>
          <xs:documentation>Visitors.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="overnightParker">
        <xs:annotation>
          <xs:documentation>Overnight parker.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Validity">
    <xs:annotation>
      <xs:documentation>Specification of validity, either explicitly or by a validity time period specification which may be discontinuous.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="validityStatus" type="D2LogicalModel:ValidityStatusEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specification of validity, either explicitly overriding the validity time specification or confirming it.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="overrunning" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The activity or action described by the SituationRecord is still in progress, overrunning its planned duration as indicated in a previous version of this record.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="validityTimeSpecification" type="D2LogicalModel:OverallPeriod">
        <xs:annotation>
          <xs:documentation>A specification of periods of validity defined by overall bounding start and end times and the possible intersection of valid periods with exception periods (exception periods overriding valid periods).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="validityExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ValidityStatusEnum">
    <xs:annotation>
      <xs:documentation>Values of validity status that can be assigned to a described event, action or item.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="active">
        <xs:annotation>
          <xs:documentation>The described event, action or item is currently active regardless of the definition of the validity time specification.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="suspended">
        <xs:annotation>
          <xs:documentation>The described event, action or item is currently suspended, that is inactive, regardless of the definition of the validity time specification.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="definedByValidityTimeSpec">
        <xs:annotation>
          <xs:documentation>The validity status of the described event, action or item is in accordance with the definition of the validity time specification.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="VehicleCharacteristics">
    <xs:annotation>
      <xs:documentation>The characteristics of a vehicle, e.g. lorry of gross weight greater than 30 tonnes.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="fuelType" type="D2LogicalModel:FuelTypeEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The type of fuel used by the vehicle.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="loadType" type="D2LogicalModel:LoadTypeEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The type of load carried by the vehicle, especially in respect of hazardous loads.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vehicleEquipment" type="D2LogicalModel:VehicleEquipmentEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The type of equipment in use or on board the vehicle.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vehicleType" type="D2LogicalModel:VehicleTypeEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Vehicle type.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="grossWeightCharacteristic" type="D2LogicalModel:GrossWeightCharacteristic" minOccurs="0" maxOccurs="2" />
      <xs:element name="heightCharacteristic" type="D2LogicalModel:HeightCharacteristic" minOccurs="0" maxOccurs="2" />
      <xs:element name="lengthCharacteristic" type="D2LogicalModel:LengthCharacteristic" minOccurs="0" maxOccurs="2" />
      <xs:element name="widthCharacteristic" type="D2LogicalModel:WidthCharacteristic" minOccurs="0" maxOccurs="2" />
      <xs:element name="heaviestAxleWeightCharacteristic" type="D2LogicalModel:HeaviestAxleWeightCharacteristic" minOccurs="0" maxOccurs="2" />
      <xs:element name="numberOfAxlesCharacteristic" type="D2LogicalModel:NumberOfAxlesCharacteristic" minOccurs="0" maxOccurs="2" />
      <xs:element name="vehicleCharacteristicsExtension" type="D2LogicalModel:_VehicleCharacteristicsExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="VehicleCharacteristicsExtended">
    <xs:annotation>
      <xs:documentation>Extension point for 'VehicleCharacteristics' to support additional attributes and literals like additional fuel types, load types etc.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="loadType2" type="D2LogicalModel:LoadType2Enum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Loads currently not supported in 'LoadTypeEnum'.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vehicleType2" type="D2LogicalModel:VehicleType2Enum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Vehicle types currently not supported in 'VehicleTypeEnum'.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="VehicleEquipmentEnum">
    <xs:annotation>
      <xs:documentation>Types of vehicle equipment in use or on board.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="notUsingSnowChains">
        <xs:annotation>
          <xs:documentation>Vehicle not using snow chains.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="notUsingSnowChainsOrTyres">
        <xs:annotation>
          <xs:documentation>Vehicle not using either snow tyres or snow chains.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="snowChainsInUse">
        <xs:annotation>
          <xs:documentation>Vehicle using snow chains.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="snowTyresInUse">
        <xs:annotation>
          <xs:documentation>Vehicle using snow tyres.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="snowChainsOrTyresInUse">
        <xs:annotation>
          <xs:documentation>Vehicle using snow tyres or snow chains.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="withoutSnowTyresOrChainsOnBoard">
        <xs:annotation>
          <xs:documentation>Vehicle which is not carrying on board snow tyres or chains.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VehicleType2Enum">
    <xs:annotation>
      <xs:documentation>Vehicle types which are currently not supported in vehicleType.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="motorhome">
        <xs:annotation>
          <xs:documentation>Motorhome</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lightGoodsVehicle">
        <xs:annotation>
          <xs:documentation>Light goods vehicle</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="heavyGoodsVehicle">
        <xs:annotation>
          <xs:documentation>Heavy goods vehicle</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="minibus">
        <xs:annotation>
          <xs:documentation>Minibus</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="smallCar">
        <xs:annotation>
          <xs:documentation>Small car</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="largeCar">
        <xs:annotation>
          <xs:documentation>Large car</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lightGoodsVehicleWithTrailer">
        <xs:annotation>
          <xs:documentation>Light goods vehicle with trailer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="heavyGoodsVehicleWithTrailer">
        <xs:annotation>
          <xs:documentation>Heavy goods vehicle with trailer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="heavyHaulageVehicle">
        <xs:annotation>
          <xs:documentation>Heavy-haulage vehicle</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="passengerCar">
        <xs:annotation>
          <xs:documentation>Passenger car</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VehicleTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of vehicle.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="agriculturalVehicle">
        <xs:annotation>
          <xs:documentation>Vehicle normally used for agricultural purposes, e.g. tractor, combined harvester etc.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="anyVehicle">
        <xs:annotation>
          <xs:documentation>Vehicle of any type.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="articulatedVehicle">
        <xs:annotation>
          <xs:documentation>Articulated vehicle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bicycle">
        <xs:annotation>
          <xs:documentation>Bicycle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bus">
        <xs:annotation>
          <xs:documentation>Bus.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="car">
        <xs:annotation>
          <xs:documentation>Car.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="caravan">
        <xs:annotation>
          <xs:documentation>Caravan.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carOrLightVehicle">
        <xs:annotation>
          <xs:documentation>Car or light vehicle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carWithCaravan">
        <xs:annotation>
          <xs:documentation>Car towing a caravan.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carWithTrailer">
        <xs:annotation>
          <xs:documentation>Car towing a trailer.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="constructionOrMaintenanceVehicle">
        <xs:annotation>
          <xs:documentation>Vehicle normally used for construction or maintenance purposes, e.g. digger, excavator, bulldozer, lorry mounted crane etc.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fourWheelDrive">
        <xs:annotation>
          <xs:documentation>Four wheel drive vehicle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="highSidedVehicle">
        <xs:annotation>
          <xs:documentation>High sided vehicle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lorry">
        <xs:annotation>
          <xs:documentation>Lorry of any type.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="moped">
        <xs:annotation>
          <xs:documentation>Moped (a two wheeled motor vehicle characterized by a small engine typically less than 50cc and by normally having pedals).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="motorcycle">
        <xs:annotation>
          <xs:documentation>Motorcycle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="motorcycleWithSideCar">
        <xs:annotation>
          <xs:documentation>Three wheeled vehicle comprising a motorcycle with an attached side car.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="motorscooter">
        <xs:annotation>
          <xs:documentation>Motorscooter (a two wheeled motor vehicle characterized by a step-through frame and small diameter wheels).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tanker">
        <xs:annotation>
          <xs:documentation>Vehicle with large tank for carrying bulk liquids.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="threeWheeledVehicle">
        <xs:annotation>
          <xs:documentation>Three wheeled vehicle of unspecified type.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trailer">
        <xs:annotation>
          <xs:documentation>Trailer.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tram">
        <xs:annotation>
          <xs:documentation>Tram.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="twoWheeledVehicle">
        <xs:annotation>
          <xs:documentation>Two wheeled vehicle of unspecified type.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="van">
        <xs:annotation>
          <xs:documentation>Van.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vehicleWithCatalyticConverter">
        <xs:annotation>
          <xs:documentation>Vehicle with catalytic converter.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vehicleWithoutCatalyticConverter">
        <xs:annotation>
          <xs:documentation>Vehicle without catalytic converter.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vehicleWithCaravan">
        <xs:annotation>
          <xs:documentation>Vehicle (of unspecified type) towing a caravan.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vehicleWithTrailer">
        <xs:annotation>
          <xs:documentation>Vehicle (of unspecified type) towing a trailer.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="withEvenNumberedRegistrationPlates">
        <xs:annotation>
          <xs:documentation>Vehicle with even numbered registration plate.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="withOddNumberedRegistrationPlates">
        <xs:annotation>
          <xs:documentation>Vehicle with odd numbered registration plate.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other than as defined in this enumeration.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="VersionedReference">
    <xs:attribute name="id" type="xs:string" use="required" />
    <xs:attribute name="version" type="xs:string" use="required" />
  </xs:complexType>
  <xs:simpleType name="Volt">
    <xs:annotation>
      <xs:documentation>Volt.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Float" />
  </xs:simpleType>
  <xs:simpleType name="WeekOfMonthEnum">
    <xs:annotation>
      <xs:documentation>Weeks of the month.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="firstWeekOfMonth">
        <xs:annotation>
          <xs:documentation>First week of the month.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="secondWeekOfMonth">
        <xs:annotation>
          <xs:documentation>Second week of the month.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="thirdWeekOfMonth">
        <xs:annotation>
          <xs:documentation>Third week of the month.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fourthWeekOfMonth">
        <xs:annotation>
          <xs:documentation>Fourth week of the month.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fifthWeekOfMonth">
        <xs:annotation>
          <xs:documentation>Fifth week of the month (at most only 3 days and non in February when not a leap year). </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="WidthCharacteristic">
    <xs:annotation>
      <xs:documentation>Width characteristic of a vehicle.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="comparisonOperator" type="D2LogicalModel:ComparisonOperatorEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The operator to be used in the vehicle characteristic comparison operation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vehicleWidth" type="D2LogicalModel:MetresAsFloat" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The maximum width of an individual vehicle, in metres.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="widthCharacteristicExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
</xs:schema>