VMS DARS status (DATEX II v2.3)

DATEX II shema

<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="_ExtensionType">
    <xs:sequence>
      <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </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="_LinearExtensionType">
    <xs:sequence>
      <xs:element name="openlrExtendedLinear" type="D2LogicalModel:OpenlrExtendedLinear" 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="openlrExtendedPoint" type="D2LogicalModel:OpenlrExtendedPoint" minOccurs="0" />
      <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="_TextPage">
    <xs:sequence>
      <xs:element name="vmsText" type="D2LogicalModel:VmsText" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="pageNumber" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_VmsMessageIndexVmsMessage">
    <xs:sequence>
      <xs:element name="vmsMessage" type="D2LogicalModel:VmsMessage" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="messageIndex" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_VmsMessagePictogramDisplayAreaIndexVmsPictogramDisplayArea">
    <xs:sequence>
      <xs:element name="vmsPictogramDisplayArea" type="D2LogicalModel:VmsPictogramDisplayArea" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="pictogramDisplayAreaIndex" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_VmsPictogramDisplayAreaIndexPictogramDisplayAreaSettings">
    <xs:sequence>
      <xs:element name="pictogramDisplayAreaSettings" type="D2LogicalModel:PictogramDisplayAreaSettings" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="pictogramDisplayAreaIndex" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_VmsPictogramDisplayAreaPictogramSequencingIndexVmsPictogram">
    <xs:sequence>
      <xs:element name="vmsPictogram" type="D2LogicalModel:VmsPictogram" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="pictogramSequencingIndex" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_VmsTextLineIndexVmsTextLine">
    <xs:sequence>
      <xs:element name="vmsTextLine" type="D2LogicalModel:VmsTextLine" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="lineIndex" type="xs:int" use="required" />
  </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="_VmsUnitTableVersionedReference">
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:VersionedReference">
        <xs:attribute name="targetClass" use="required" fixed="VmsUnitTable" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="_VmsUnitVmsIndexVms">
    <xs:sequence>
      <xs:element name="vms" type="D2LogicalModel:Vms" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="vmsIndex" type="xs:int" use="required" />
  </xs:complexType>
  <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="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="AngleInDegrees">
    <xs:annotation>
      <xs:documentation>An integer number representing an angle in whole degrees between 0 and 359.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:NonNegativeInteger" />
  </xs:simpleType>
  <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:complexType name="AxleFlowValue">
    <xs:annotation>
      <xs:documentation>A measured or calculated value of the flow rate of vehicle axles.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DataValue">
        <xs:sequence>
          <xs:element name="axleFlowRate" type="D2LogicalModel:AxlesPerHour" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A value of the flow rate of vehicle axles expressed in axles per hour.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="axleFlowValueExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="AxlesPerHour">
    <xs:annotation>
      <xs:documentation>Vehicle axles per hour.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:NonNegativeInteger" />
  </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:simpleType name="CodedReasonForSettingMessageEnum">
    <xs:annotation>
      <xs:documentation>Coded reasons why a message has been selected for display on the sign.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="situation">
        <xs:annotation>
          <xs:documentation>Message selected as the result of a situation occuring either on or off the road which may affect road users. </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="operatorCreated">
        <xs:annotation>
          <xs:documentation>Message selected by operator as the result of an unmanaged event or situation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trafficManagement">
        <xs:annotation>
          <xs:documentation>Message selected as part of the implementation of a traffic management action. This may or may not be part of a specific traffic management or diversion plan.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="travelTime">
        <xs:annotation>
          <xs:documentation>VMS is currently selected to display travel times.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="campaign">
        <xs:annotation>
          <xs:documentation>VMS is currently selected to display a campaign message.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="default">
        <xs:annotation>
          <xs:documentation>VMS is currently selected to display default information (e.g. time, date, temperature).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ColourEnum">
    <xs:annotation>
      <xs:documentation>Colours.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="amber">
        <xs:annotation>
          <xs:documentation>The colour amber.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="blue">
        <xs:annotation>
          <xs:documentation>The colour blue.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="green">
        <xs:annotation>
          <xs:documentation>The colour green.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="red">
        <xs:annotation>
          <xs:documentation>The colour red.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="white">
        <xs:annotation>
          <xs:documentation>The colour white.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="whiteYellow">
        <xs:annotation>
          <xs:documentation>The colour white-yellow.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ComputationMethodEnum">
    <xs:annotation>
      <xs:documentation>Types of computational methods used in deriving data values for data sets.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="arithmeticAverageOfSamplesBasedOnAFixedNumberOfSamples">
        <xs:annotation>
          <xs:documentation>Arithmetic average of sample values based on a fixed number of samples.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="arithmeticAverageOfSamplesInATimePeriod">
        <xs:annotation>
          <xs:documentation>Arithmetic average of sample values in a time period.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="harmonicAverageOfSamplesInATimePeriod">
        <xs:annotation>
          <xs:documentation>Harmonic average of sample values in a time period.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="medianOfSamplesInATimePeriod">
        <xs:annotation>
          <xs:documentation>Median of sample values taken over a time period.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="movingAverageOfSamples">
        <xs:annotation>
          <xs:documentation>Moving average of sample values.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ConcentrationOfVehiclesValue">
    <xs:annotation>
      <xs:documentation>A measured or calculated value of the concentration of vehicles on a unit stretch of road in a given direction.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DataValue">
        <xs:sequence>
          <xs:element name="concentrationOfVehicles" type="D2LogicalModel:ConcentrationVehiclesPerKilometre" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A value of traffic density expressed in the number of vehicles per kilometre of road.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="concentrationOfVehiclesValueExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="ConcentrationVehiclesPerKilometre">
    <xs:annotation>
      <xs:documentation>A measure of traffic density defined in number of vehicles per kilometre of road.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:NonNegativeInteger" />
  </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: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:element name="d2LogicalModel" type="D2LogicalModel:D2LogicalModel" />
  <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:complexType name="DataValue" abstract="true">
    <xs:annotation>
      <xs:documentation>A data value of something that can be measured or calculated. Any provided meta-data values specified in the attributes override any specified generic characteristics such as defined for a specific measurement in the MeasurementSiteTable. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="dataError" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indication of whether the value is deemed to be erroneous by the supplier, (true = erroneous). If not present the data value is assumed to be ok. This may be used when automatic fault detection information relating to sensors is available.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="reasonForDataError" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The reason why the value is deemed to be erroneous by the supplier.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dataValueExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="accuracy" type="D2LogicalModel:Percentage" use="optional">
      <xs:annotation>
        <xs:documentation>The extent to which the value is expected to be free from error, measured as a percentage of the data value. 100% means fully accurate.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="computationalMethod" type="D2LogicalModel:ComputationMethodEnum" use="optional">
      <xs:annotation>
        <xs:documentation>Method of computation which has been used to compute this data value.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="numberOfIncompleteInputs" type="D2LogicalModel:NonNegativeInteger" use="optional">
      <xs:annotation>
        <xs:documentation>The number of inputs detected but not completed during the sampling or measurement period; e.g. vehicles detected entering but not exiting the detection zone.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="numberOfInputValuesUsed" type="D2LogicalModel:NonNegativeInteger" use="optional">
      <xs:annotation>
        <xs:documentation>The number of input values used in the sampling or measurment period to determine the data value.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="smoothingFactor" type="D2LogicalModel:Float" use="optional">
      <xs:annotation>
        <xs:documentation>Coefficient required when a moving average is computed to give specific weights to the former average and the new data. A typical formula is, F being the smoothing factor: New average = (old average) F + (new data) (1 - F).</xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="standardDeviation" type="D2LogicalModel:Float" use="optional">
      <xs:annotation>
        <xs:documentation>The standard deviation of the sample of input values from which this value was derived, measured in the units of the data value. </xs:documentation>
      </xs:annotation>
    </xs:attribute>
    <xs:attribute name="supplierCalculatedDataQuality" type="D2LogicalModel:Percentage" use="optional">
      <xs:annotation>
        <xs:documentation>A measure of data quality assigned to the value by the supplier. 100% equates to ideal/perfect quality. The method of calculation is supplier specific and needs to be agreed between supplier and client.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <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:complexType name="DateTimeValue">
    <xs:annotation>
      <xs:documentation>A measured or calculated value of an instance in time.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DataValue">
        <xs:sequence>
          <xs:element name="dateTime" type="D2LogicalModel:DateTime" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A time stamp defining an instance in time.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="dateTimeValueExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </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="DurationValue">
    <xs:annotation>
      <xs:documentation>A measured or calculated value of a period of time.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DataValue">
        <xs:sequence>
          <xs:element name="duration" type="D2LogicalModel:Seconds" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A period of time expressed in seconds.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="durationValueExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ElaboratedDataFault">
    <xs:annotation>
      <xs:documentation>Details of a fault which is being reported for the related elaborated data.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Fault">
        <xs:sequence>
          <xs:element name="elaboratedDataFault" type="D2LogicalModel:ElaboratedDataFaultEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of fault which is being reported for the specified elaborated data.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="elaboratedDataFaultExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="ElaboratedDataFaultEnum">
    <xs:annotation>
      <xs:documentation>Types of elaborated data faults.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="intermittentDataValues">
        <xs:annotation>
          <xs:documentation>Data values are being produced at intermittent intervals which are not consitent with the expected reporting interval.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noDataValuesAvailable">
        <xs:annotation>
          <xs:documentation>No elaborated data values are currently available.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="spuriousUnreliableDataValues">
        <xs:annotation>
          <xs:documentation>Spurious or unreliable data values are being produced.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unspecifiedOrUnknownFault">
        <xs:annotation>
          <xs:documentation>An unspecified or unknown fault exists in the process which is generating elaborated data.</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="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="supplierIdentification" type="D2LogicalModel:InternationalIdentifier" />
      <xs:element name="exchangeExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Fault">
    <xs:annotation>
      <xs:documentation>Information about a fault relating to a specific piece of equipment or process.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="faultIdentifier" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Unique identifier of the fault.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="faultDescription" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Textual description of the fault.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="faultCreationTime" type="D2LogicalModel:DateTime" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The date and time at which the fault was originally recorded/reported.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="faultLastUpdateTime" type="D2LogicalModel:DateTime" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The date and time at which the fault information as specified in this instance was last updated.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="faultSeverity" type="D2LogicalModel:FaultSeverityEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The severity of the fault in terms of how it affects the usability of the equipment or the reliability of the data generated by the equipment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="faultExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="FaultSeverityEnum">
    <xs:annotation>
      <xs:documentation>Classification of the severity of faults.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="low">
        <xs:annotation>
          <xs:documentation>The fault is of low severity and has only limited impact on the usability of the equipment or the value of the data generated by the equipment.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="medium">
        <xs:annotation>
          <xs:documentation>The fault is of medium severity which will significantly limit the usability of the equipment or devalue the usefulness of the data generated by the equipment.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="high">
        <xs:annotation>
          <xs:documentation>The fault is of high severity which will render the equipment unusable or any data generated by the equipment to be of no value.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>The fault is of unknown severity and hence its effect on the usability of the equipment or the usefulness of the data generated by the equipment can not be assessed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <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: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="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: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="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="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="KilometresPerHour">
    <xs:annotation>
      <xs:documentation>A measure of speed defined in kilometres per hour.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Float" />
  </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="emergencyLane">
        <xs:annotation>
          <xs:documentation>In the emergency 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="middleLane">
        <xs:annotation>
          <xs:documentation>In the middle 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: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="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:_LinearExtensionType" 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: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="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: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:complexType name="MeasurementEquipmentFault">
    <xs:annotation>
      <xs:documentation>Details of a fault which is being reported for the related measurement equipment.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Fault">
        <xs:sequence>
          <xs:element name="measurementEquipmentFault" type="D2LogicalModel:MeasurementEquipmentFaultEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of fault which is being reported for the specified measurement equipment.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="measurementEquipmentFaultExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="MeasurementEquipmentFaultEnum">
    <xs:annotation>
      <xs:documentation>Types of measurement equipment faults.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="intermittentDataValues">
        <xs:annotation>
          <xs:documentation>Data values are being produced at intermittent intervals which are not consitent with the expected reporting interval.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noDataValuesAvailable">
        <xs:annotation>
          <xs:documentation>No measured data values are currently available.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="spuriousUnreliableDataValues">
        <xs:annotation>
          <xs:documentation>Spurious or unreliable data values are being produced.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unspecifiedOrUnknownFault">
        <xs:annotation>
          <xs:documentation>An unspecified or unknown fault exists in the measurement equipment.</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="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: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="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="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="OccupancyChangeValue">
    <xs:annotation>
      <xs:documentation>A measured or calculated value of change of occupied parking spaces expressed as integer.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DataValue">
        <xs:sequence>
          <xs:element name="occupancyChange" type="D2LogicalModel:Integer" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A measured or calculated absolut change of occupied parking spaces within a specified time expressed as integer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="occupancyChangeValueExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <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="OpenlrBaseLocationReferencePoint" abstract="true">
    <xs:annotation>
      <xs:documentation>Base class used to hold data about a reference point.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrCoordinate" type="D2LogicalModel:PointCoordinates" />
      <xs:element name="openlrLineAttributes" type="D2LogicalModel:OpenlrLineAttributes" />
      <xs:element name="openlrBaseLocationReferencePointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrBasePointLocation" abstract="true">
    <xs:annotation>
      <xs:documentation>Holds common data that are used both in OpenlrPointAccessPoint and OpenlrPointAlongLine.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrSideOfRoad" type="D2LogicalModel:OpenlrSideOfRoadEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Side of road</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrOrientation" type="D2LogicalModel:OpenlrOrientationEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Orientation</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrPositiveOffset" type="D2LogicalModel:MetresAsNonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The positive offset along the line of the location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrLocationReferencePoint" type="D2LogicalModel:OpenlrLocationReferencePoint" />
      <xs:element name="openlrLastLocationReferencePoint" type="D2LogicalModel:OpenlrLastLocationReferencePoint" />
      <xs:element name="openlrBasePointLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrExtendedLinear">
    <xs:annotation>
      <xs:documentation>Extension class for OpenLR Line location reference</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="firstDirection" type="D2LogicalModel:OpenlrLineLocationReference">
        <xs:annotation>
          <xs:documentation>First OpenLR reference in first/main direction.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="oppositeDirection" type="D2LogicalModel:OpenlrLineLocationReference" minOccurs="0">
        <xs:annotation>
          <xs:documentation>If both direction, this is tha reference in the opposite direction against firstDirection.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrExtendedPoint">
    <xs:annotation>
      <xs:documentation>Extension class for OpenLR point.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrPointLocationReference" type="D2LogicalModel:OpenlrPointLocationReference" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="OpenlrFormOfWayEnum">
    <xs:annotation>
      <xs:documentation>Enumeration of for of way</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="undefined">
        <xs:annotation>
          <xs:documentation>undefined</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="motorway">
        <xs:annotation>
          <xs:documentation>motorway</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="multipleCarriageway">
        <xs:annotation>
          <xs:documentation>multipleCarrigeway</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="singleCarriageway">
        <xs:annotation>
          <xs:documentation>single carrigeway</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roundabout">
        <xs:annotation>
          <xs:documentation>roadabout</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="slipRoad">
        <xs:annotation>
          <xs:documentation>sliproad</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trafficSquare">
        <xs:annotation>
          <xs:documentation>traffic square</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="OpenlrFunctionalRoadClassEnum">
    <xs:annotation>
      <xs:documentation>Enemuration of functional road class</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="FRC0">
        <xs:annotation>
          <xs:documentation>Main road, highest importance</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC1">
        <xs:annotation>
          <xs:documentation>First class road</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC2">
        <xs:annotation>
          <xs:documentation>Second class road</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC3">
        <xs:annotation>
          <xs:documentation>Third class road</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC4">
        <xs:annotation>
          <xs:documentation>Fourth class road</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC5">
        <xs:annotation>
          <xs:documentation>Fifth class road</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC6">
        <xs:annotation>
          <xs:documentation>Sixth class road</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC7">
        <xs:annotation>
          <xs:documentation>Other class road, lowest importance</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="OpenlrGeoCoordinate">
    <xs:annotation>
      <xs:documentation>A geo-coordinate pair is a position in a map defined by its longitude and latitude coordinate values.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrCoordinate" type="D2LogicalModel:PointCoordinates" />
      <xs:element name="openlrGeoCoordinateExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrLastLocationReferencePoint">
    <xs:annotation>
      <xs:documentation>The sequence of location reference points is terminated by a last location reference point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:OpenlrBaseLocationReferencePoint">
        <xs:sequence>
          <xs:element name="openlrLastLocationReferencePointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="OpenlrLineAttributes">
    <xs:annotation>
      <xs:documentation>Line attributes are part of a location reference point and consists of functional road class (FRC),form of way (FOW) and bearing (BEAR) data.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrFunctionalRoadClass" type="D2LogicalModel:OpenlrFunctionalRoadClassEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The functional road class (FRC) can hold eight different values as described in the logical format.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrFormOfWay" type="D2LogicalModel:OpenlrFormOfWayEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The form of way (FOW) can hold eight different values as described in the logical format.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrBearing" type="D2LogicalModel:AngleInDegrees" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>defines the bearing field as an integer value between 0 and 360 whereby “0” is included and “360” is excluded from that range.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrLineAttributesExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrLineLocationReference">
    <xs:annotation>
      <xs:documentation>A LineLocationReference is defined by an ordered sequence of location reference points and a terminating last location reference point.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrLocationReferencePoint" type="D2LogicalModel:OpenlrLocationReferencePoint" maxOccurs="unbounded" />
      <xs:element name="openlrLastLocationReferencePoint" type="D2LogicalModel:OpenlrLastLocationReferencePoint" />
      <xs:element name="openlrOffsets" type="D2LogicalModel:OpenlrOffsets" minOccurs="0" />
      <xs:element name="openlrLineLocationReferenceExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrLocationReferencePoint">
    <xs:annotation>
      <xs:documentation>The basis of a location reference is a sequence of location reference points (LRPs).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:OpenlrBaseLocationReferencePoint">
        <xs:sequence>
          <xs:element name="openlrPathAttributes" type="D2LogicalModel:OpenlrPathAttributes" />
          <xs:element name="openlrLocationReferencePointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="OpenlrOffsets">
    <xs:annotation>
      <xs:documentation>Offsets are used to locate the start and end of a location more precisely than bounding to the nodes in a network.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrPositiveOffset" type="D2LogicalModel:MetresAsNonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The positive offset along the line of the location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrNegativeOffset" type="D2LogicalModel:MetresAsNonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The negative offset along the line of the location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrOffsetsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="OpenlrOrientationEnum">
    <xs:annotation>
      <xs:documentation>Enumeration of side of road</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="noOrientationOrUnknown">
        <xs:annotation>
          <xs:documentation>No orientation or unknown</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="withLineDirection">
        <xs:annotation>
          <xs:documentation>With line direction</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="againstLineDirection">
        <xs:annotation>
          <xs:documentation>Against line direction</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="both">
        <xs:annotation>
          <xs:documentation>Both directions</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="OpenlrPathAttributes">
    <xs:annotation>
      <xs:documentation>The field path attributes is part of a location reference point (except for the last location reference point) and consists of lowest functional road class (LFRCNP) and distance to next point (DNP) data.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrLowestFRCToNextLRPoint" type="D2LogicalModel:OpenlrFunctionalRoadClassEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The lowest FRC to the next point indicates the lowest functional road class used in the location reference path to the next LR-point.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrDistanceToNextLRPoint" type="D2LogicalModel:NonNegativeInteger" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The DNP attribute measures the distance in meters between two consecutive LR-points along the location reference path as described in the logical format.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrPathAttributesExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrPointAlongLine">
    <xs:annotation>
      <xs:documentation>Point along a line</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:OpenlrBasePointLocation">
        <xs:sequence>
          <xs:element name="openlrPointAlongLineExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="OpenlrPointLocationReference">
    <xs:annotation>
      <xs:documentation>A point location is a zero-dimensional element in a map that specifies a geometric location.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrGeoCoordinate" type="D2LogicalModel:OpenlrGeoCoordinate" minOccurs="0" />
      <xs:element name="openlrPoiWithAccessPoint" type="D2LogicalModel:OpenlrPoiWithAccessPoint" minOccurs="0" />
      <xs:element name="openlrPointAlongLine" type="D2LogicalModel:OpenlrPointAlongLine" minOccurs="0" />
      <xs:element name="openlrPointLocationReferenceExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrPoiWithAccessPoint">
    <xs:annotation>
      <xs:documentation>Point along line with access is a point location which is defined by a line,an offset value and a coordinate.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:OpenlrBasePointLocation">
        <xs:sequence>
          <xs:element name="openlrCoordinate" type="D2LogicalModel:PointCoordinates">
            <xs:annotation>
              <xs:documentation>The coordinate of the actual point of interest</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="openlrPoiWithAccessPointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="OpenlrSideOfRoadEnum">
    <xs:annotation>
      <xs:documentation>Enumeration of side of road</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="onRoadOrUnknown">
        <xs:annotation>
          <xs:documentation>On road or unknown</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="right">
        <xs:annotation>
          <xs:documentation>right</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="left">
        <xs:annotation>
          <xs:documentation>left</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="both">
        <xs:annotation>
          <xs:documentation>both</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="PassengerCarUnitsPerHour">
    <xs:annotation>
      <xs:documentation>Passenger car units per hour.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:NonNegativeInteger" />
  </xs:simpleType>
  <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:complexType name="PcuFlowValue">
    <xs:annotation>
      <xs:documentation>A measured or calculated value of the flow rate of passenger car units.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DataValue">
        <xs:sequence>
          <xs:element name="pcuFlowRate" type="D2LogicalModel:PassengerCarUnitsPerHour" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A value of passenger car unit flow rate expressed in passenger car units per hour.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="pcuFlowValueExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <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="PictogramDisplayAreaSettings">
    <xs:annotation>
      <xs:documentation>Settings specific to a distinct pictogram display area on the VMS (where pictogramIndex indicates which pictogram area it relates to if there is more than one pictogram display area on the VMS).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="pictogramLanternsOn" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates if the lanterns are turned on or off for the pictogram display area.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pictogramLuminanceOverride" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates whether the automatic luminance level of the VMS for the pictogram display area is being overriden (i.e. by a level set by the instation or operator).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pictogramLuminanceLevel" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Luminance level, expressed as an integer, that is set for the pictogram display area of the VMS. This may be set automatically by the VMS or by the instation or operator.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pictogramLuminanceLevelName" type="D2LogicalModel:VmsLuminanceLevelEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Luminance level, expressed as a symbolic name, that is set for the pictogram display area of the VMS. This may be set automatically by the VMS or by the instation or operator.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pictogramDisplayAreaSettingsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <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="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="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: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="0" 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="0" 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: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="1" 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="TextDisplayAreaSettings">
    <xs:annotation>
      <xs:documentation>Settings specific to a distinct text display area on the VMS.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="textLanternsOn" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates if the lanterns are turned on or off for the text display area.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="textLuminanceOverride" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates whether the automatic luminance level of the VMS for the text display area is being overriden (i.e. by a level set by the instation or operator).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="textLuminanceLevel" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Luminance level, expressed as an integer, that is set for the text display area of the VMS. This may be set automatically by the VMS or by the instation or operator.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="textLuminanceLevelName" type="D2LogicalModel:VmsLuminanceLevelEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Luminance level, expressed as a symbolic name, that is set for the text display area of the VMS. This may be set automatically by the VMS or by the instation or operator.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="textDisplayAreaSettingsExtension" 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="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="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="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="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: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="TrafficStatusEnum">
    <xs:annotation>
      <xs:documentation>List of terms used to describe traffic conditions.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="impossible">
        <xs:annotation>
          <xs:documentation>Traffic in the specified direction is completely congested, effectively at a standstill, making driving impossible.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="congested">
        <xs:annotation>
          <xs:documentation>Traffic in the specified direction is congested making driving very slow and difficult.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="heavy">
        <xs:annotation>
          <xs:documentation>Traffic in the specified direction is heavier than usual making driving conditions more difficult than normal.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="freeFlow">
        <xs:annotation>
          <xs:documentation>Traffic in the specified direction is free flowing.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Traffic conditions are unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="TrafficStatusValue">
    <xs:annotation>
      <xs:documentation>A measured or calculated value of the status of traffic conditions on a section of road in a specified direction.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DataValue">
        <xs:sequence>
          <xs:element name="trafficStatusValue" type="D2LogicalModel:TrafficStatusEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A status value of traffic conditions on the identified section of road in the specified direction.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="trafficStatusValueExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <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:complexType name="VehicleCountValue">
    <xs:annotation>
      <xs:documentation>A measured or calculated value of absolute count of vehicles within a specified period of time expressed as non negative integer.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DataValue">
        <xs:sequence>
          <xs:element name="vehicleCount" type="D2LogicalModel:NonNegativeInteger" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A measured or calculated absolute count of vehicles within a specified period of time expressed as non negative integer.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="vehicleCountValueExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="VehicleFlowValue">
    <xs:annotation>
      <xs:documentation>A measured or calculated value of the flow rate of vehicles.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DataValue">
        <xs:sequence>
          <xs:element name="vehicleFlowRate" type="D2LogicalModel:VehiclesPerHour" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A value of vehicle flow rate expressed in vehicles per hour.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="vehicleFlowValueExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="VehiclesPerHour">
    <xs:annotation>
      <xs:documentation>Vehicles per hour.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:NonNegativeInteger" />
  </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:complexType name="Vms">
    <xs:annotation>
      <xs:documentation>Provides the current status and settings of the VMS and the currently displayed information. Where a VMS is displaying a sequence or alternating set of messages these are ordered according to the messageIndex qualifier.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="vmsWorking" type="D2LogicalModel:Boolean" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates whether the VMS is usable. Note it may still be usable with minor faults.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsMessageSequencingInterval" type="D2LogicalModel:Seconds" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The time duration that each message is displayed for before the VMS displays the next message in the sequence.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsMessage" type="D2LogicalModel:_VmsMessageIndexVmsMessage" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="textDisplayAreaSettings" type="D2LogicalModel:TextDisplayAreaSettings" minOccurs="0" />
      <xs:element name="pictogramDisplayAreaSettings" type="D2LogicalModel:_VmsPictogramDisplayAreaIndexPictogramDisplayAreaSettings" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="vmsLocationOverride" type="D2LogicalModel:Location" minOccurs="0">
        <xs:annotation>
          <xs:documentation>The current point location of the VMS which overrides that stated in the associated VMSTable entry. Typically it is used for giving the updated location of a mobile VMS which has recently been moved.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="managedLogicalLocationOverride" type="D2LogicalModel:VmsManagedLogicalLocation" minOccurs="0">
        <xs:annotation>
          <xs:documentation>The current location that is being managed by the VMS which overrides any stated in the associated VMSTable entry. Typically it is used for giving the updated managed location of a mobile VMS which has recently been moved.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsFault" type="D2LogicalModel:VmsFault" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="vmsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="VmsDatexPictogramEnum">
    <xs:annotation>
      <xs:documentation>Types of main pictograms.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="accident">
        <xs:annotation>
          <xs:documentation>Accident.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="advisorySpeed">
        <xs:annotation>
          <xs:documentation>Advisory speed limit.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="animalsOnRoad">
        <xs:annotation>
          <xs:documentation>Animal(s) on the road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="blankVoid">
        <xs:annotation>
          <xs:documentation>Blank or void.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bridgeClosed">
        <xs:annotation>
          <xs:documentation>Bridge closed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="bridgeSwingInOperation">
        <xs:annotation>
          <xs:documentation>Bridge swing in operation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carParkFull">
        <xs:annotation>
          <xs:documentation>Car park full.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carParkSpacesAvailable">
        <xs:annotation>
          <xs:documentation>Spaces available in car park.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carriagewayNarrows">
        <xs:annotation>
          <xs:documentation>The carriageway narrows ahead.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carriagewayNarrowsOnTheLeft">
        <xs:annotation>
          <xs:documentation>The carriageway narrows ahead from the left.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carriagewayNarrowsOnTheRight">
        <xs:annotation>
          <xs:documentation>The carriageway narrows ahead from the right.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carriagewayReducedToOneLane">
        <xs:annotation>
          <xs:documentation>Carriageway reduced to one lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carriagewayReducedToTwoLanes">
        <xs:annotation>
          <xs:documentation>Carriageway reduced to two lanes.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="carriagewayReducedToThreeLanes">
        <xs:annotation>
          <xs:documentation>Carriageway reduced to three lanes.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="chainsOrSnowTyresRecommended">
        <xs:annotation>
          <xs:documentation>Chains or snow tyres are recommended.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="compulsoryMinimumSpeed">
        <xs:annotation>
          <xs:documentation>Mandatory minimum speed limit.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="crossWind">
        <xs:annotation>
          <xs:documentation>Cross wind.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="dangerOfFire">
        <xs:annotation>
          <xs:documentation>Danger of fire.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="drivingOfVehiclesLessThanXMetresApartProhibited">
        <xs:annotation>
          <xs:documentation>The driving of vehicles less than X metres apart is prohibited.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="endOfAdvisorySpeed">
        <xs:annotation>
          <xs:documentation>End of advisory speed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="endOfCompulsoryMinimumSpeed">
        <xs:annotation>
          <xs:documentation>End of compulsory minimum speed limit.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="endOfProhibitionOfOvertaking">
        <xs:annotation>
          <xs:documentation>End of prohibition of overtaking.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="endOfProhibitionOfOvertakingForGoodsVehicles">
        <xs:annotation>
          <xs:documentation>End of prohibition of overtaking for goods vehicles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="endOfSpeedLimit">
        <xs:annotation>
          <xs:documentation>End of mandatory speed limit.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="exitClosed">
        <xs:annotation>
          <xs:documentation>Exit closed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fallingRocks">
        <xs:annotation>
          <xs:documentation>Danger of rock fall or landslide.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fastenChildrensSeatBelts">
        <xs:annotation>
          <xs:documentation>Fasten the seat belts of children.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fastenYourSeatBelt">
        <xs:annotation>
          <xs:documentation>Fasten your seat belt.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fire">
        <xs:annotation>
          <xs:documentation>Fire.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="floodingOrFlashFloods">
        <xs:annotation>
          <xs:documentation>Flooding or flash floods.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fog">
        <xs:annotation>
          <xs:documentation>Fog.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="footballMatch">
        <xs:annotation>
          <xs:documentation>Football match (current or anticipated disruption due to football match).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hardShoulderNotRunning">
        <xs:annotation>
          <xs:documentation>Hard shoulder running is in operation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hardShoulderRunning">
        <xs:annotation>
          <xs:documentation>Hard shoulder running is not in operation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="keepASafeDistance">
        <xs:annotation>
          <xs:documentation>Keep a safe distance.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="keepLeft">
        <xs:annotation>
          <xs:documentation>Keep left.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="keepRight">
        <xs:annotation>
          <xs:documentation>Keep right.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane1ClosedOf2">
        <xs:annotation>
          <xs:documentation>Lane 1 closed on a 2 lane carriageway. Lanes numbered from nearside (next to hard shoulder on motorway) to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane2ClosedOf2">
        <xs:annotation>
          <xs:documentation>Lane 2 closed on a 2 lane carriageway. Lanes numbered from nearside (next to hard shoulder on motorway) to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane1ClosedOf3">
        <xs:annotation>
          <xs:documentation>Lane 1 closed on a 3 lane carriageway. Lanes numbered from nearside (next to hard shoulder on motorway) to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane3ClosedOf3">
        <xs:annotation>
          <xs:documentation>Lane 3 closed on a 3 lane carriageway. Lanes numbered from nearside (next to hard shoulder on motorway) to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lanes1And2ClosedOf3">
        <xs:annotation>
          <xs:documentation>Lanes 1 and 2 closed on a 3 lane carriageway. Lanes numbered from nearside (next to hard shoulder on motorway) to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lanes2And3ClosedOf3">
        <xs:annotation>
          <xs:documentation>Lanes 2 and 3 closed on a 3 lane carriageway. Lanes numbered from nearside (next to hard shoulder on motorway) to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane1ClosedOf4">
        <xs:annotation>
          <xs:documentation>Lane 1 closed on a 4 lane carriageway. Lanes numbered from nearside (next to hard shoulder on motorway) to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane4ClosedOf4">
        <xs:annotation>
          <xs:documentation>Lane 4 closed on a 4 lane carriageway. Lanes numbered from nearside (next to hard shoulder on motorway) to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lanes1And2ClosedOf4">
        <xs:annotation>
          <xs:documentation>Lanes 1 and 2 closed on a 4 lane carriageway. Lanes numbered from nearside (next to hard shoulder on motorway) to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lanes3And4ClosedOf4">
        <xs:annotation>
          <xs:documentation>Lanes 3 and 4 closed on a 4 lane carriageway. Lanes numbered from nearside (next to hard shoulder on motorway) to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lanes1And2And3ClosedOf4">
        <xs:annotation>
          <xs:documentation>Lanes 1, 2 and 3 closed on a 4 lane carriageway. Lanes numbered from nearside (next to hard shoulder on motorway) to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lanes2And3And4ClosedOf4">
        <xs:annotation>
          <xs:documentation>Lanes 2, 3 and 4 closed on a 4 lane carriageway. Lanes numbered from nearside (next to hard shoulder on motorway) to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="laneClosed">
        <xs:annotation>
          <xs:documentation>Lane closed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="laneDeviationToLeft">
        <xs:annotation>
          <xs:documentation>Lane deviates to the left.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="laneDeviationToRight">
        <xs:annotation>
          <xs:documentation>Lane deviates to the right.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="laneOpen">
        <xs:annotation>
          <xs:documentation>Lane open.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="leftHandLaneClosed">
        <xs:annotation>
          <xs:documentation>Left hand lane closed ahead.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lightSignals">
        <xs:annotation>
          <xs:documentation>Traffic light signals ahead.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="looseGravel">
        <xs:annotation>
          <xs:documentation>Loose gravel.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="maintenanceVehicleInAction">
        <xs:annotation>
          <xs:documentation>Maintenance vehicles in action.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="maximumSpeedLimitedToTheFigureIndicated">
        <xs:annotation>
          <xs:documentation>Mandatory maximum speed limit, displayed as speed limit indside a red circle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="narrowLanesAead">
        <xs:annotation>
          <xs:documentation>Narrow lanes ahead.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noEntry">
        <xs:annotation>
          <xs:documentation>No entry.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noEntryForAnyPowerDrivenVehicleDrawingATrailer">
        <xs:annotation>
          <xs:documentation>No entry for any power driven vehicle drawing a trailer</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noEntryForAnyPowerDrivenVehicleDrawingATrailerOtherThanASemiTrailerOrASingleAxleTrailer">
        <xs:annotation>
          <xs:documentation>No entry to any power driven vehicle drawing a trailer other than a semi-trailer or a single axle trailer. A semi-trailer is one designed to be coupled to a motor vehicle so that part of its weight and that of its load is borne by the motor vehicle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noEntryForGoodsVehicles">
        <xs:annotation>
          <xs:documentation>No entry for goods vehicles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noEntryForVehiclesExceedingXTonnesLadenMass">
        <xs:annotation>
          <xs:documentation>No entry for vehicles exceeding X tonnes laden mass.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noEntryForVehiclesHavingAMassExceedingXTonnesOnOneAxle">
        <xs:annotation>
          <xs:documentation>No entry for vehicles having a mass exceeding X tonnes on a single axle.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noEntryForVehiclesHavingAnOverallHeightExceedingXMetres">
        <xs:annotation>
          <xs:documentation>No entry for vehicles having an overall height exceeding X metres.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noEntryForVehiclesHavingAnOverallLengthExceedingXMetres">
        <xs:annotation>
          <xs:documentation>No entry for vehicles having an overall length exceeding X metres.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noEntryForVehiclesHavingAnOverallWidthExceedingXMetres">
        <xs:annotation>
          <xs:documentation>No entry for vehicles having an overall width exceeding X metres.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noEntryForVehiclesCarryingDangerousGoods">
        <xs:annotation>
          <xs:documentation>No entry for vehicles carrying dangerous goods.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="otherDangers">
        <xs:annotation>
          <xs:documentation>Danger ahead of an unspecified nature.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="overtakingByGoodsVehiclesProhibited">
        <xs:annotation>
          <xs:documentation>Overtaking prohibited for goods vehicles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="overtakingProhibited">
        <xs:annotation>
          <xs:documentation>Overtaking prohibited.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pollutionOrSmogAlert">
        <xs:annotation>
          <xs:documentation>Pollution or smog alert.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="queue">
        <xs:annotation>
          <xs:documentation>Queue ahead.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rain">
        <xs:annotation>
          <xs:documentation>Rain.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rightHandLaneClosed">
        <xs:annotation>
          <xs:documentation>Right hand lane closed ahead.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadClosedAhead">
        <xs:annotation>
          <xs:documentation>Road closed ahead.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadworks">
        <xs:annotation>
          <xs:documentation>Roadworks.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="slipperyRoad">
        <xs:annotation>
          <xs:documentation>Slippery road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="smoke">
        <xs:annotation>
          <xs:documentation>Smoke.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="snow">
        <xs:annotation>
          <xs:documentation>Snow.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="snowChainsCompulsory">
        <xs:annotation>
          <xs:documentation>The use of snow chains is compulsory.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="snowTyresCompulsory">
        <xs:annotation>
          <xs:documentation>The use of snow tyres is compulsory.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="snowPloughInAction">
        <xs:annotation>
          <xs:documentation>Snow plough(s) in action.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="speedCamerasInAction">
        <xs:annotation>
          <xs:documentation>Speed cameras in action.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trafficCongestion">
        <xs:annotation>
          <xs:documentation>Traffic congestion and possible queues.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trafficDeviatedToOppositeCarriagewayAhead">
        <xs:annotation>
          <xs:documentation>All traffic is diverted to the opposite carriageway ahead in a contraflow layout.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trafficPartiallyDeviatedToOppositeCarriagewayAhead">
        <xs:annotation>
          <xs:documentation>Traffic is partially diverted to the opposite carriageway ahead in a contraflow layout.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tunnelClosed">
        <xs:annotation>
          <xs:documentation>Tunnel closed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="turnLeft">
        <xs:annotation>
          <xs:documentation>Mandatory turn left.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="turnRight">
        <xs:annotation>
          <xs:documentation>Mandatory turn right.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="twoWayTraffic">
        <xs:annotation>
          <xs:documentation>Two way traffic (on a single carriageway).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unevenRoad">
        <xs:annotation>
          <xs:documentation>Uneven road surface.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vehicleFire">
        <xs:annotation>
          <xs:documentation>Vehicle fire.</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="VmsDatexSupplementalPictogramEnum">
    <xs:annotation>
      <xs:documentation>Types of pictograms displayable in supplementary panels (normally below the main pictogram display which it qualifies).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="distanceToTheBeginningofTheApplicationZone">
        <xs:annotation>
          <xs:documentation>Distance to the beginning of the application zone.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="exceptAnyPowerDrivenVehicleDrawingTrailer">
        <xs:annotation>
          <xs:documentation>Except any power driven vehicle drawing a trailer.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="exceptBus">
        <xs:annotation>
          <xs:documentation>Except for buses.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="exceptGoodsVehicles">
        <xs:annotation>
          <xs:documentation>Except for goods vehicles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="exceptSemiTrailer">
        <xs:annotation>
          <xs:documentation>Except for semi trailers (i.e. any trailer designed to be coupled to a motor vehicle in such a way that part of its weight and that of its load is borne by the motor vehicle).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="exceptVehiclesCarryingDangerousGoods">
        <xs:annotation>
          <xs:documentation>Except for vehicles carrying dangerous goods (i.e. for which special sign plating is prescribed).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="inCaseOfIceOrSnow">
        <xs:annotation>
          <xs:documentation>In case of ice or snow.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lengthOfTheApplicationZone">
        <xs:annotation>
          <xs:documentation>Length of the applicable zone.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restrictedToAnyPowerDrivenVehicleDrawingTrailer">
        <xs:annotation>
          <xs:documentation>Restricted to any power driven vehicle drawing a trailer.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restricetdToBus">
        <xs:annotation>
          <xs:documentation>Restricted to buses.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restrictedToGoodsVehicles">
        <xs:annotation>
          <xs:documentation>Restricted to goods vehicles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restrictedToSemiTrailer">
        <xs:annotation>
          <xs:documentation>Restricted to semi trailers (i.e. any trailer designed to be coupled to a motor vehicle in such a way that part of its wieght and that of its load is borne by the motor vehicle).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restrictedToVehiclesCarryingDangerousGoods">
        <xs:annotation>
          <xs:documentation>Restricted to vehicles carrying dangerous goods (i.e. for which special sign plating is prescribed).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="maintenanceVehicles">
        <xs:annotation>
          <xs:documentation>Maintenance vehicles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="snowPloughs">
        <xs:annotation>
          <xs:documentation>Snow ploughs.</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="VmsFault">
    <xs:annotation>
      <xs:documentation>Details of the fault which is being reported for the specified variable message sign panel.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Fault">
        <xs:sequence>
          <xs:element name="vmsFault" type="D2LogicalModel:VmsFaultEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of fault which is being reported for the specified variable message sign panel.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="vmsFaultExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="VmsFaultEnum">
    <xs:annotation>
      <xs:documentation>Types of variable message sign faults.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="communicationsFailure">
        <xs:annotation>
          <xs:documentation>Comunications failure affecting VMS.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="incorrectMessageDisplayed">
        <xs:annotation>
          <xs:documentation>Incorrect message is being displayed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="incorrectPictogramDisplayed">
        <xs:annotation>
          <xs:documentation>Incorrect pictogram is being displayed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="outOfService">
        <xs:annotation>
          <xs:documentation>Not currently in service (e.g. intentionally disconnected or switched off during roadworks).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="powerFailure">
        <xs:annotation>
          <xs:documentation>Power to VMS has failed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unableToClearDown">
        <xs:annotation>
          <xs:documentation>Unable to clear down information displayed on VMS.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Unknown VMS fault.</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="VmsLuminanceLevelEnum">
    <xs:annotation>
      <xs:documentation>Levels of luminance applicable to VMS.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="switchedOff">
        <xs:annotation>
          <xs:documentation>Luminance level is zero as light source is switched off.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="testing">
        <xs:annotation>
          <xs:documentation>Luminance is set at testing level.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="night">
        <xs:annotation>
          <xs:documentation>Luminance is set at level defined for night time.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="overcast">
        <xs:annotation>
          <xs:documentation>Luminance is set at level defined for overcast or dull day time conditions.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="broadDaylight">
        <xs:annotation>
          <xs:documentation>Luminance is set at level defined for normal broad day light conditions.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sunInEyes">
        <xs:annotation>
          <xs:documentation>Luminance is set at level defined for conditions where drivers will have sun in their eyes.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sunOnBack">
        <xs:annotation>
          <xs:documentation>Luminance is set at level defined for conditions where drivers will have sun behind them.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="foggyDay">
        <xs:annotation>
          <xs:documentation>Luminance is set at level defined for foggy day time conditions.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="foggyNight">
        <xs:annotation>
          <xs:documentation>Luminance is set at level defined for foggy night time conditions.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="VmsManagedLogicalLocation">
    <xs:annotation>
      <xs:documentation>The logical location (e.g. a car park, a section of road, a junction etc.) which a VMS contributes to the management of.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="managedLogicalLocation" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identification of the logical location (e.g. a car park, a section of road , a junction etc.) which this sign contributes to the management of.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="distanceFromLogicalLocation" type="D2LogicalModel:MetresAsNonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Distance in metres of the VMS from the logical location which this sign contributes to the management of.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="managedLocation" type="D2LogicalModel:Location" minOccurs="0">
        <xs:annotation>
          <xs:documentation>The location which is managed by the variable message sign, such as the location of a junction or a car park.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsManagedLogicalLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="VmsMessage">
    <xs:annotation>
      <xs:documentation>A message displayed on a VMS which may comprise one or more sequentially displayed text pages and/or pictograms with supplementary details. When in a sequence of displayed messages sequencing of text pages and pictograms within a message are prohibited.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="associatedManagementOrDiversionPlan" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The identification of the traffic management plan or diversion plan with which the message is associated.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="messageSetBy" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The organisation or authority which set the message currently being displayed. </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="setBySystem" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates whether the message has been set automatically by a system. True =  automatically set.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="reasonForSetting" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The reason why the sign has been set.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="codedReasonForSetting" type="D2LogicalModel:CodedReasonForSettingMessageEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The reason, in terms of a high level coded classification, why the sign has been set. </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsMessageInformationType" type="D2LogicalModel:VmsMessageInformationTypeEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Type of information being displayed.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="primarySetting" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identifies whether the message setting is primary (explicitly requested) or is secondary (derived according to an algorthm as the result of setting other signs). True = a primary setting.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="mareNostrumCompliant" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indication that the displayed message (text and pictogram) conforms with the formulation recommended by the Mare Nostrum project.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="timeLastSet" type="D2LogicalModel:DateTime" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The date/time at which the sign was last set.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="requestedBy" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The authority, organisation or system which requested the setting of the message. This may be different from the authority or system which actually set the message on behalf of the requestor.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="situationToWhichMessageIsRelated" type="D2LogicalModel:VersionedReference" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A reference to the managed situation to which the set message relates.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="situationRecordToWhichMessageIsRelated" type="D2LogicalModel:VersionedReference" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A reference to the situation record/element within a managed situation to which the set message relates.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="distanceFromSituationRecord" type="D2LogicalModel:MetresAsFloat" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Distance of the VMS from the location of the related situation record/element. If the VMS is located within the extent of the situation record/element this should be set to zero.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="textPictogramSequencingInterval" type="D2LogicalModel:Seconds" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The time duration that each text page or pictogram within a message is displayed for before the VMS displays the next text page and/or pictogram in the message.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="textPage" type="D2LogicalModel:_TextPage" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="vmsPictogramDisplayArea" type="D2LogicalModel:_VmsMessagePictogramDisplayAreaIndexVmsPictogramDisplayArea" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="vmsMessageExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="VmsMessageInformationTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of information displayable on a VMS.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="campaignMessage">
        <xs:annotation>
          <xs:documentation>Campaign type information which is non time specific that may request certain actions (e.g. "do not drink and drive") or which is intended to influence drivers' behaviour.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="dateTime">
        <xs:annotation>
          <xs:documentation>Current date and/or time information.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="futureInformation">
        <xs:annotation>
          <xs:documentation>Information which may inform road users about future situations which potentially may cause congestion or influence future travel plans (e.g. future roadworks, closures, sporting events, public concerts, suspension of train or ferry services).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="instructionOrMessage">
        <xs:annotation>
          <xs:documentation>Instructions or messages to road users which are relevant at the current time, (e.g. "do not throw out any burning objects" or an Amber alert message).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="situationWarning">
        <xs:annotation>
          <xs:documentation>Information warning of a current situation likely to affect traffic on the road ahead.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="temperature">
        <xs:annotation>
          <xs:documentation>Temperature information.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trafficManagement">
        <xs:annotation>
          <xs:documentation>Information comprising traffic management instructions.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="travelTime">
        <xs:annotation>
          <xs:documentation>Travel time information.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="VmsPictogram">
    <xs:annotation>
      <xs:documentation>A main pictogram displayable on the VMS panel. Note a main pictogram may have an associated supplementary panel which may itself contain a further pictogram and line of text.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="pictogramDescription" type="D2LogicalModel:VmsDatexPictogramEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Description of the (main) displayed pictogram.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pictogramCode" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The code of the pictogram from the pictogram code list referenced in the VmsPictogramDisplayCharacteristics for the VMS that is identified in the relevant VMS Unit table.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pictogramUrl" type="D2LogicalModel:Url" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Reference to a URL from where an image of the displayed pictogram can be be obtained.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="additionalPictogramDescription" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Additional description of the pictogram.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pictogramFlashing" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indication of whether the pictogram is flashing.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pictogramInInverseColour" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The pictogram is displayed in inverse colour (i.e. the colours are the inverse of normal).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="presenceOfRedTriangle" type="D2LogicalModel:Boolean" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indication of the presence of a red triangle around the pictogram, often used to indicate imminence, typically within 2km, of signed danger.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="viennaConventionCompliant" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates that the displayed pictogram conforms with the Vienna Convention defined pictogram list as modified by "UNECE Consolidated Resolution on Road Signs and Signals".</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="distanceAttribute" type="D2LogicalModel:MetresAsNonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Value of distance that is displayable as part of the pictogram (e.g. for keep minimum safe distance).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="heightAttribute" type="D2LogicalModel:MetresAsFloat" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Value of height that is displayable as part of the pictogram (e.g. for a vehicle height restriction).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="lengthAttribute" type="D2LogicalModel:MetresAsFloat" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Value of length that is displayable as part of the pictogram (e.g. for a vehicle length restriction).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="speedAttribute" type="D2LogicalModel:KilometresPerHour" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Value of speed that is displayable as part of the pictogram (e.g. for a maximum speed limit).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="weightAttribute" type="D2LogicalModel:Tonnes" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Value of weight that is displayable as part of the pictogram (e.g. for a maximum weight restriction).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="weightPerAxleAttribute" type="D2LogicalModel:Tonnes" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Value of axle weight that is displayable as part of the pictogram (e.g. for a maximum axle weight restriction).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="widthAttribute" type="D2LogicalModel:MetresAsFloat" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Value of width that is displayable as part of the pictogram (e.g. for a vehicle width restriction).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsSupplementaryPanel" type="D2LogicalModel:VmsSupplementaryPanel" minOccurs="0" />
      <xs:element name="vmsPictogramExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="VmsPictogramDisplayArea">
    <xs:annotation>
      <xs:documentation>An area on a VMS used for the display of pictograms and associated supplemental information or instructions.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="synchronizedSequencingWithTextPages" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates whether the sequence of pictograms are sequenced synchronously with the text pages. If there is a mismatch in the number of sequenced text pages and sequenced pictograms, the sequences are assumed to resynchronize at the start of each sequence.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsPictogram" type="D2LogicalModel:_VmsPictogramDisplayAreaPictogramSequencingIndexVmsPictogram" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="vmsPictogramDisplayAreaExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="VmsPublication">
    <xs:annotation>
      <xs:documentation>A publication containing the current status and settings of one or more VMS units, each unit controlling one or more individual variable message signs.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:PayloadPublication">
        <xs:sequence>
          <xs:element name="headerInformation" type="D2LogicalModel:HeaderInformation" />
          <xs:element name="vmsUnit" type="D2LogicalModel:VmsUnit" maxOccurs="unbounded" />
          <xs:element name="vmsPublicationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="VmsSetting" abstract="true">
    <xs:annotation>
      <xs:documentation>Provides information on variable message signs and the information currently displayed.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="vmsSettingExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="VmsSupplementaryPanel">
    <xs:annotation>
      <xs:documentation>A panel which may display information or a regulatory instruction which is supplemental to the associated pictogram, comprising either an additional line of text or a pictogram or both.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="supplementaryMessageDescription" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Free text description of the message that is displayed in the panel which is supplemental to the main pictogram display.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsSupplementaryPictogram" type="D2LogicalModel:VmsSupplementaryPictogram" minOccurs="0" />
      <xs:element name="vmsSupplementaryText" type="D2LogicalModel:VmsTextLine" minOccurs="0">
        <xs:annotation>
          <xs:documentation>One line of text displayed in the panel which is supplemental to the pictogram display.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsSupplementaryPanelExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="VmsSupplementaryPictogram">
    <xs:annotation>
      <xs:documentation>An additional pictogram that is displayed in the panel which is supplemental to the associated pictogram display.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="supplementaryPictogramDescription" type="D2LogicalModel:VmsDatexSupplementalPictogramEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Description of the supplementary displayed pictogram.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="supplementaryPictogramCode" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The code of the supplementary pictogram from the supplementary pictogram code list referenced in the VmsSupplementaryPanelCharacteristics for the VMS that is identified in the relevant VMS Unit table.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="supplementaryPictogramUrl" type="D2LogicalModel:Url" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Reference to a URL from where an image of the displayed supplementary pictogram can be be obtained.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="additionalSupplementaryPictogramDescription" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Additional free text description of the supplementary pictogram.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pictogramFlashing" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indication of whether the pictogram is flashing.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsSupplementaryPictogramExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="VmsText">
    <xs:annotation>
      <xs:documentation>A page of text (comprising one or more ordered lines) that are displayed simultaneously on the VMS. Where more than one page is defined these are sequentially displayed according to their "pageNumber".</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="vmsLegendCode" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The code of the legend/text from the legend code list referenced in the VmsTextDisplayCharacteristics.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsTextImageUrl" type="D2LogicalModel:Url" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Reference to a URL from where an image of the displayed legend text can be be obtained.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsTextLine" type="D2LogicalModel:_VmsTextLineIndexVmsTextLine" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="vmsTextExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="VmsTextLine">
    <xs:annotation>
      <xs:documentation>A single line of text on a text display area or supplementary panel.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="vmsTextLine" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A free-text string that is displayed on a single line on the text display area.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsTextLineLanguage" type="D2LogicalModel:Language" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The language of the displayed line of text, specified by an ISO 639-2 3-alpha code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsTextLineColour" type="D2LogicalModel:ColourEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The colour of the displayed line of text.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsTextLineFlashing" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indication of whether the displayed line of text is flashing.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsTextLineHtml" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The displayed line of text defined by an HTML string showing text formatting tags.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vmsTextLineExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="VmsUnit">
    <xs:annotation>
      <xs:documentation>Status of a VMS unit which may control one or more variable message signs on a single gantry or on different gantries.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:VmsSetting">
        <xs:sequence>
          <xs:element name="vmsUnitTableReference" type="D2LogicalModel:_VmsUnitTableVersionedReference" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A reference to a versioned VMS Unit table.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="vmsUnitReference" type="D2LogicalModel:_VmsUnitRecordVersionedReference" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A reference to a versioned VMS unit record in a VMS Unit table which defines the characteristics of the VMS unit.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="vms" type="D2LogicalModel:_VmsUnitVmsIndexVms" minOccurs="0" maxOccurs="unbounded" />
          <xs:element name="vmsUnitFault" type="D2LogicalModel:VmsUnitFault" minOccurs="0" maxOccurs="unbounded" />
          <xs:element name="vmsUnitExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="VmsUnitFault">
    <xs:annotation>
      <xs:documentation>Details of the fault which is being reported for the specified variable message sign control unit.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Fault">
        <xs:sequence>
          <xs:element name="vmsUnitFault" type="D2LogicalModel:VmsFaultEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of fault which is being reported for the VMS unit.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="vmsUnitFaultExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:schema>