Traffic incidents

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="_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:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AbnormalTraffic">
    <xs:annotation>
      <xs:documentation>A traffic condition which is not normal.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TrafficElement">
        <xs:sequence>
          <xs:element name="abnormalTrafficType" type="D2LogicalModel:AbnormalTrafficTypeEnum" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A characterization of the nature of abnormal traffic flow, i.e. specifically relating to the nature of the traffic movement.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="abnormalTrafficExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="AbnormalTrafficTypeEnum">
    <xs:annotation>
      <xs:documentation>Collection of descriptive terms for abnormal traffic conditions specifically relating to the nature of the traffic movement.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="stationaryTraffic">
        <xs:annotation>
          <xs:documentation>Traffic is stationary, or very near stationary, at the specified location (i.e. average speed is less than 10% of its free-flow level).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="queuingTraffic">
        <xs:annotation>
          <xs:documentation>Traffic is queuing at the specified location, although there is still some traffic movement (i.e. average speed is between 10% and 25% of its free-flow level).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="slowTraffic">
        <xs:annotation>
          <xs:documentation>Traffic is slow moving at the specified location, but not yet forming queues (i.e. average speed is between 25% and 75% of its free-flow level).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="heavyTraffic">
        <xs:annotation>
          <xs:documentation>Traffic is heavy at the specified location (i.e. average speed is between 75% and 90% of its free-flow level).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unspecifiedAbnormalTraffic">
        <xs:annotation>
          <xs:documentation>There are abnormal traffic conditions of an unspecified nature at the specified location.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Accident">
    <xs:annotation>
      <xs:documentation>Accidents are events where one or more vehicles are involved in collisions or in leaving the roadway. These include collisions between vehicles or with other road users or obstacles.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TrafficElement">
        <xs:sequence>
          <xs:element name="accidentType" type="D2LogicalModel:AccidentTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A characterization of the nature of the accident.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="accidentExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="AccidentTypeEnum">
    <xs:annotation>
      <xs:documentation>Collection of descriptive terms for types of accidents.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="accident">
        <xs:annotation>
          <xs:documentation>Accidents are situations in which one or more vehicles lose control and do not recover.  They include collisions between vehicle(s) or other road user(s), between vehicle(s) and fixed obstacle(s), or they result from a vehicle running off the road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Activity" abstract="true">
    <xs:annotation>
      <xs:documentation>Deliberate human action external to the traffic stream or roadway which could disrupt traffic.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TrafficElement">
        <xs:sequence>
          <xs:element name="activityExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </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="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="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="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:complexType name="AnimalPresenceObstruction">
    <xs:annotation>
      <xs:documentation>An obstruction on the road resulting from the presence of animals.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Obstruction">
        <xs:sequence>
          <xs:element name="animalPresenceType" type="D2LogicalModel:AnimalPresenceTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Indicates the nature of animals present on or near the roadway.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="animalPresenceObstructionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="AnimalPresenceTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of animal presence.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="animalsOnTheRoad">
        <xs:annotation>
          <xs:documentation>Traffic may be disrupted due to animals on the roadway.</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:complexType name="Comment">
    <xs:annotation>
      <xs:documentation>A free text comment with an optional date/time stamp that can be used by the operator to convey un-coded observations/information.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="comment" type="D2LogicalModel:MultilingualString" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A free text comment that can be used by the operator to convey un-coded observations/information.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="commentType" type="D2LogicalModel:CommentTypeEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A classification of the the type of comment.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="commentExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="CommentTypeEnum">
    <xs:annotation>
      <xs:documentation>Classification of comment types.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="description">
        <xs:annotation>
          <xs:documentation>A free text human oriented description of the situation element defined by the SituationRecord.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="locationDescriptor">
        <xs:annotation>
          <xs:documentation>A free text human oriented description of the location of the situation element defined by the SituationRecord.</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="ComplianceOptionEnum">
    <xs:annotation>
      <xs:documentation>Types of compliance.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="mandatory">
        <xs:annotation>
          <xs:documentation>Mandatory compliance.</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:complexType name="Conditions">
    <xs:annotation>
      <xs:documentation>Any conditions which have the potential to degrade normal driving conditions.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TrafficElement">
        <xs:sequence>
          <xs:element name="conditionsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <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:unique name="_d2LogicalModelSituationRecordConstraint">
      <xs:selector xpath=".//D2LogicalModel:situationRecord" />
      <xs:field xpath="@id" />
      <xs:field xpath="@version" />
    </xs:unique>
    <xs:unique name="_d2LogicalModelSituationConstraint">
      <xs:selector xpath=".//D2LogicalModel:situation" />
      <xs:field xpath="@id" />
      <xs:field xpath="@version" />
    </xs:unique>
  </xs:element>
  <xs:complexType name="D2LogicalModel">
    <xs:annotation>
      <xs:documentation>The DATEX II logical model comprising exchange, content payload and management sub-models.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="exchange" type="D2LogicalModel:Exchange" />
      <xs:element name="payloadPublication" type="D2LogicalModel:PayloadPublication" minOccurs="0" />
      <xs:element name="d2LogicalModelExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="modelBaseVersion" use="required" fixed="2" />
  </xs:complexType>
  <xs: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: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="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="DisturbanceActivity">
    <xs:annotation>
      <xs:documentation>Deliberate human action of either a public disorder nature or of a situation alert type which could disrupt traffic.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Activity">
        <xs:sequence>
          <xs:element name="disturbanceActivityType" type="D2LogicalModel:DisturbanceActivityTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Includes all situations of a public disorder type or of an alert type, with potential to disrupt traffic.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="disturbanceActivityExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="DisturbanceActivityTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of disturbance activities.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <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="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="EnvironmentalObstruction">
    <xs:annotation>
      <xs:documentation>An obstruction on the road resulting from an environmental cause.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Obstruction">
        <xs:sequence>
          <xs:element name="environmentalObstructionType" type="D2LogicalModel:EnvironmentalObstructionTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Characterization of an obstruction on the road resulting from an environmental cause.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="environmentalObstructionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="EnvironmentalObstructionTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of environmental obstructions.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="fallenTrees">
        <xs:annotation>
          <xs:documentation>The road is obstructed or partially obstructed by one or more fallen trees.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="flooding">
        <xs:annotation>
          <xs:documentation>The road is obstructed or partially obstructed by flood water.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="landslips">
        <xs:annotation>
          <xs:documentation>The road may be obstructed or partially obstructed due to landslides.</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: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="GeneralInstructionOrMessageToRoadUsers">
    <xs:annotation>
      <xs:documentation>General instruction and/or message that is issued by the network/road operator which is applicable to drivers and sometimes passengers.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:NetworkManagement">
        <xs:sequence>
          <xs:element name="generalInstructionToRoadUsersType" type="D2LogicalModel:GeneralInstructionToRoadUsersTypeEnum" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>General instruction that is issued by the network/road operator which is applicable to drivers and sometimes passengers.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="generalInstructionOrMessageToRoadUsersExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="GeneralInstructionToRoadUsersTypeEnum">
    <xs:annotation>
      <xs:documentation>General instructions that may be issued to road users (specifically drivers and sometimes passengers) by an operator or operational system in support of network management activities or emergency situations.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="approachWithCare">
        <xs:annotation>
          <xs:documentation>Approach with care.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="GeneralNetworkManagement">
    <xs:annotation>
      <xs:documentation>Network management action that is instigated either manually or automatically by the network/road operator.  Compliance with any resulting control may be advisory or mandatory.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:NetworkManagement">
        <xs:sequence>
          <xs:element name="generalNetworkManagementType" type="D2LogicalModel:GeneralNetworkManagementTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of traffic management action instigated by the network/road operator.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="generalNetworkManagementExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="GeneralNetworkManagementTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of network management actions.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <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="GeneralObstruction">
    <xs:annotation>
      <xs:documentation>Any stationary or moving obstacle of a physical nature, other than of an animal, vehicle, environmental, or damaged equipment nature.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Obstruction">
        <xs:sequence>
          <xs:element name="obstructionType" type="D2LogicalModel:ObstructionTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Characterization of the type of general obstruction.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="generalObstructionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="GroupOfLocations" abstract="true">
    <xs:annotation>
      <xs:documentation>One or more physically separate locations. Multiple locations may be related, as in an itinerary (or route), or may be unrelated. It is not for identifying the same physical location using different Location objects for different referencing systems.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="groupOfLocationsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="HeaderInformation">
    <xs:annotation>
      <xs:documentation>Management information relating to the data contained within a publication.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="confidentiality" type="D2LogicalModel:ConfidentialityValueEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The extent to which the related information may be circulated, according to the recipient type. Recipients must comply with this confidentiality statement.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="informationStatus" type="D2LogicalModel:InformationStatusEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The status of the related information (real, test, exercise ....).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="urgency" type="D2LogicalModel:UrgencyEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>This indicates the urgency with which a message recipient or Client should distribute the enclosed information.  Urgency particularly relates to functions within RDS-TMC applications.  </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="headerInformationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Impact">
    <xs:annotation>
      <xs:documentation>An assessment of the impact that an event or operator action defined by the situation record has on the driving conditions.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="trafficConstrictionType" type="D2LogicalModel:TrafficConstrictionTypeEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The type of constriction to which traffic is subjected as a result of an event or operator action.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="impactExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <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:complexType name="InfrastructureDamageObstruction">
    <xs:annotation>
      <xs:documentation>An obstruction on the road resulting from the failure or damage of infrastructure on, under, above or close to the road.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Obstruction">
        <xs:sequence>
          <xs:element name="infrastructureDamageType" type="D2LogicalModel:InfrastructureDamageTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Characterization of an obstruction on the road resulting from the failure or damage of infrastructure on, under, above or close to the road.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="infrastructureDamageObstructionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="InfrastructureDamageTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of infrastructure damage which may have an effect on the road network.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="damagedRoadSurface">
        <xs:annotation>
          <xs:documentation>Damage to the road surface that may cause traffic disruption.</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: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="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="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: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="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="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="onConnector">
        <xs:annotation>
          <xs:documentation>On connecting carriageway between two different roads or road sections.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="MaintenanceWorks">
    <xs:annotation>
      <xs:documentation>Roadworks involving the maintenance or installation of infrastructure.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Roadworks">
        <xs:sequence>
          <xs:element name="roadMaintenanceType" type="D2LogicalModel:RoadMaintenanceTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of road maintenance or installation work at the specified location.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="maintenanceWorksExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <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:complexType name="NetworkManagement" abstract="true">
    <xs:annotation>
      <xs:documentation>Network management action which is applicable to the road network and its users.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:OperatorAction">
        <xs:sequence>
          <xs:element name="complianceOption" type="D2LogicalModel:ComplianceOptionEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Defines whether the network management instruction or the control resulting from a network management action is advisory or mandatory.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="forVehiclesWithCharacteristicsOf" type="D2LogicalModel:VehicleCharacteristics" minOccurs="0">
            <xs:annotation>
              <xs:documentation>The characteristics of those vehicles for which the network management is applicable.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="networkManagementExtension" 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="NonWeatherRelatedRoadConditions">
    <xs:annotation>
      <xs:documentation>Road surface conditions that are not related to the weather but which may affect driving conditions.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:RoadConditions">
        <xs:sequence>
          <xs:element name="nonWeatherRelatedRoadConditionType" type="D2LogicalModel:NonWeatherRelatedRoadConditionTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of road conditions which are not related to the weather.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="nonWeatherRelatedRoadConditionsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="NonWeatherRelatedRoadConditionTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of road surface conditions which are not related to the weather.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="oilOnRoad">
        <xs:annotation>
          <xs:documentation>Increased skid risk due to oil on road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="slipperyRoad">
        <xs:annotation>
          <xs:documentation>The road surface is slippery due to an unspecified non-weather related cause.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Obstruction" abstract="true">
    <xs:annotation>
      <xs:documentation>Any stationary or moving obstacle of a physical nature (e.g. obstacles or vehicles from an earlier accident, shed loads on carriageway, rock fall, abnormal or dangerous loads, or animals etc.) which could disrupt or endanger traffic.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TrafficElement">
        <xs:sequence>
          <xs:element name="obstructionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="ObstructionTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of obstructions on the roadway.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="incident">
        <xs:annotation>
          <xs:documentation>Incidents are chance occurrences involving vehicles from the traffic stream, which could present potential hazards to road users.  This item excludes accidents.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="obstructionOnTheRoad">
        <xs:annotation>
          <xs:documentation>Unspecified obstruction on the roadway which may cause traffic disruption.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="recklessDriver">
        <xs:annotation>
          <xs:documentation>A vehicle being driven without due care and attention is causing a hazard to other vehicles.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="shedLoad">
        <xs:annotation>
          <xs:documentation>Spillage of transported goods on the roadway which may cause traffic disruption.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="spillageOnTheRoad">
        <xs:annotation>
          <xs:documentation>Includes all situations where a spillage has occurred on the roadway due to an earlier incident.</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="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="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="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:complexType name="OperatorAction">
    <xs:annotation>
      <xs:documentation>Actions that a traffic operator can decide to implement to prevent or help correct dangerous or poor driving conditions, including maintenance of the road infrastructure.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:SituationRecord">
        <xs:sequence>
          <xs:element name="operatorActionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="OverallPeriod">
    <xs:annotation>
      <xs:documentation>A continuous or discontinuous period of validity defined by overall bounding start and end times and the possible intersection of valid periods (potentially recurring) with the complement of exception periods (also potentially recurring).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="overallStartTime" type="D2LogicalModel:DateTime" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Start of bounding period of validity defined by date and time.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="overallEndTime" type="D2LogicalModel:DateTime" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>End of bounding period of validity defined by date and time.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="overallPeriodExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <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="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="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="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="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="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="PoorEnvironmentConditions">
    <xs:annotation>
      <xs:documentation>Any environmental conditions which may be affecting the driving conditions on the road.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Conditions">
        <xs:sequence>
          <xs:element name="poorEnvironmentType" type="D2LogicalModel:PoorEnvironmentTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of environment condition which is affecting driving conditions.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="poorEnvironmentConditionsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="PoorEnvironmentTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of poor environmental conditions.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="fog">
        <xs:annotation>
          <xs:documentation>Fog, visibility more than 50m.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="gales">
        <xs:annotation>
          <xs:documentation>Winds between 60 km/h and 90 km/h.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="gustyWinds">
        <xs:annotation>
          <xs:documentation>Constantly varying winds, significant at times.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hail">
        <xs:annotation>
          <xs:documentation>Falling ice pellets or frozen rain.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="heavySnowfall">
        <xs:annotation>
          <xs:documentation>Dense falling snow, limiting visibility to 50m or less.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="thunderstorms">
        <xs:annotation>
          <xs:documentation>Electrical storms, generally with heavy rain.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ProbabilityOfOccurrenceEnum">
    <xs:annotation>
      <xs:documentation>Levels of confidence that the sender has in the information, ordered {certain, probable, risk of}.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="certain">
        <xs:annotation>
          <xs:documentation>The source is completely certain of the occurrence of the situation record version content.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="probable">
        <xs:annotation>
          <xs:documentation>The source has a reasonably high level of confidence of the occurrence of the situation record version content.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="riskOf">
        <xs:annotation>
          <xs:documentation>The source has a moderate level of confidence of the occurrence of the situation record version content.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="PublicEvent">
    <xs:annotation>
      <xs:documentation>Organised public event which could disrupt traffic.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Activity">
        <xs:sequence>
          <xs:element name="publicEventType" type="D2LogicalModel:PublicEventTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Type of public event which could disrupt traffic.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="publicEventExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="PublicEventTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of public events.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="majorEvent">
        <xs:annotation>
          <xs:documentation>Significant organised event either on or near the roadway which could disrupt traffic.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="RoadConditions" abstract="true">
    <xs:annotation>
      <xs:documentation>Conditions of the road surface which may affect driving conditions. These may be related to the weather (e.g. ice, snow etc.) or to other conditions (e.g. oil, mud, leaves etc. on the road)</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Conditions">
        <xs:sequence>
          <xs:element name="roadConditionsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="RoadMaintenanceTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of road maintenance.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="grassCuttingWork">
        <xs:annotation>
          <xs:documentation>Grass cutting work.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="maintenanceWork">
        <xs:annotation>
          <xs:documentation>Maintenance of road, associated infrastructure or equipments.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="repairWork">
        <xs:annotation>
          <xs:documentation>Repair work to road, associated infrastructure or equipments.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadMarkingWork">
        <xs:annotation>
          <xs:documentation>Striping and repainting of road markings, plus placement or replacement of reflecting studs (cats' eyes).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadworks">
        <xs:annotation>
          <xs:documentation>Road maintenance or improvement activity of an unspecified nature which may potentially cause traffic disruption.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="treeAndVegetationCuttingWork">
        <xs:annotation>
          <xs:documentation>Tree and vegetation cutting work adjacent to the roadway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="RoadOrCarriagewayOrLaneManagement">
    <xs:annotation>
      <xs:documentation>Road, carriageway or lane management action that is instigated by the network/road operator.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:NetworkManagement">
        <xs:sequence>
          <xs:element name="roadOrCarriagewayOrLaneManagementType" type="D2LogicalModel:RoadOrCarriagewayOrLaneManagementTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Type of road, carriageway or lane management action instigated by operator.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="roadOrCarriagewayOrLaneManagementExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="RoadOrCarriagewayOrLaneManagementTypeEnum">
    <xs:annotation>
      <xs:documentation>Management actions relating to road, carriageway or lane usage.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="closedPermanentlyForTheWinter">
        <xs:annotation>
          <xs:documentation>The road is closed to vehicles with the specified characteristics or all, if none defined, for the duration of the winter.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="contraflow">
        <xs:annotation>
          <xs:documentation>Two-way traffic is temporarily sharing a single carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="intermittentShortTermClosures">
        <xs:annotation>
          <xs:documentation>Road closures occur intermittently on the specified road in the specified direction for short durations.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="laneClosures">
        <xs:annotation>
          <xs:documentation>Lane closures are in operation at the specified location for vehicles with the specified characteristics or all, if none defined, in the specified direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadCleared">
        <xs:annotation>
          <xs:documentation>The road has been cleared of earlier reported problems.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadClosed">
        <xs:annotation>
          <xs:documentation>The road is closed to vehicles with the specified characteristics or all, if none defined, in the specified direction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="singleAlternateLineTraffic">
        <xs:annotation>
          <xs:documentation>Traffic is being controlled to move in alternate single lines. This control may be undertaken by traffic lights or flagman.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Roadworks" abstract="true">
    <xs:annotation>
      <xs:documentation>Highway maintenance, installation and construction activities that may potentially affect traffic operations.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:OperatorAction">
        <xs:sequence>
          <xs:element name="roadworksExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="Seconds">
    <xs:annotation>
      <xs:documentation>Seconds.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Float" />
  </xs:simpleType>
  <xs:complexType name="Situation">
    <xs:annotation>
      <xs:documentation>An identifiable instance of a traffic/travel situation comprising one or more traffic/travel circumstances which are linked by one or more causal relationships. Each traffic/travel circumstance is represented by a Situation Record.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="headerInformation" type="D2LogicalModel:HeaderInformation" />
      <xs:element name="situationRecord" type="D2LogicalModel:SituationRecord" maxOccurs="unbounded" />
      <xs:element name="situationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required" />
    <xs:attribute name="version" type="xs:string" use="required" />
  </xs:complexType>
  <xs:complexType name="SituationPublication">
    <xs:annotation>
      <xs:documentation>A publication containing zero or more traffic/travel situations.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:PayloadPublication">
        <xs:sequence>
          <xs:element name="situation" type="D2LogicalModel:Situation" minOccurs="0" maxOccurs="unbounded" />
          <xs:element name="situationPublicationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="SituationRecord" abstract="true">
    <xs:annotation>
      <xs:documentation>An identifiable versioned instance of a single record/element within a situation.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="situationRecordCreationTime" type="D2LogicalModel:DateTime" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The date/time that the SituationRecord object (the first version of the record) was created by the original supplier.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="situationRecordVersionTime" type="D2LogicalModel:DateTime" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The date/time that this current version of the SituationRecord within the situation was written into the database of the supplier which is involved in the data exchange. Identity and version of record are defined by the class stereotype implementation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="probabilityOfOccurrence" type="D2LogicalModel:ProbabilityOfOccurrenceEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>An assessment of the degree of likelihood that the reported event will occur.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="validity" type="D2LogicalModel:Validity" />
      <xs:element name="impact" type="D2LogicalModel:Impact" minOccurs="0" />
      <xs:element name="generalPublicComment" type="D2LogicalModel:Comment" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A comment which may be freely distributed to the general public</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="groupOfLocations" type="D2LogicalModel:GroupOfLocations" />
      <xs:element name="situationRecordExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="id" type="xs:string" use="required" />
    <xs:attribute name="version" type="xs:string" use="required" />
  </xs:complexType>
  <xs: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="supplementaryPositionalDescriptionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="TrafficConstrictionTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of constriction to which traffic is subjected as a result of an event.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="carriagewayBlocked">
        <xs:annotation>
          <xs:documentation>The carriageway is totally obstructed in the specified direction due to an unplanned event.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lanesBlocked">
        <xs:annotation>
          <xs:documentation>One or more lanes is totally obstructed in the specified direction due to an unplanned event.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lanesPartiallyObstructed">
        <xs:annotation>
          <xs:documentation>One or more lanes is partially obstructed in the specified direction due to an unplanned event.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadBlocked">
        <xs:annotation>
          <xs:documentation>The road is totally obstructed, for all vehicles in both directions, due to an unplanned event.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadPartiallyObstructed">
        <xs:annotation>
          <xs:documentation>The road is partially obstructed in both directions due to an unplanned event.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="TrafficElement" abstract="true">
    <xs:annotation>
      <xs:documentation>An event which is not planned by the traffic operator, which is affecting, or has the potential to affect traffic flow.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:SituationRecord">
        <xs:sequence>
          <xs:element name="trafficElementExtension" 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:complexType name="Validity">
    <xs:annotation>
      <xs:documentation>Specification of validity, either explicitly or by a validity time period specification which may be discontinuous.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="validityStatus" type="D2LogicalModel:ValidityStatusEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specification of validity, either explicitly overriding the validity time specification or confirming it.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="validityTimeSpecification" type="D2LogicalModel:OverallPeriod">
        <xs:annotation>
          <xs:documentation>A specification of periods of validity defined by overall bounding start and end times and the possible intersection of valid periods with exception periods (exception periods overriding valid periods).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="validityExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ValidityStatusEnum">
    <xs:annotation>
      <xs:documentation>Values of validity status that can be assigned to a described event, action or item.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="definedByValidityTimeSpec">
        <xs:annotation>
          <xs:documentation>The validity status of the described event, action or item is in accordance with the definition of the validity time specification.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="VehicleCharacteristics">
    <xs:annotation>
      <xs:documentation>The characteristics of a vehicle, e.g. lorry of gross weight greater than 30 tonnes.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="vehicleType" type="D2LogicalModel:VehicleTypeEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Vehicle type.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="vehicleCharacteristicsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <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:complexType name="VehicleObstruction">
    <xs:annotation>
      <xs:documentation>An obstruction on the road caused by one or more vehicles.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Obstruction">
        <xs:sequence>
          <xs:element name="vehicleObstructionType" type="D2LogicalModel:VehicleObstructionTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Characterization of an obstruction on the road caused by one or more vehicles.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="vehicleObstructionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="VehicleObstructionTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of obstructions involving vehicles.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="brokenDownHeavyLorry">
        <xs:annotation>
          <xs:documentation>Broken down heavy lorry/lorries on the carriageway which may cause traffic disruption.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="brokenDownVehicle">
        <xs:annotation>
          <xs:documentation>Broken down vehicle(s) on the carriageway which may cause traffic disruption.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="damagedVehicle">
        <xs:annotation>
          <xs:documentation>Damaged vehicle(s) on the carriageway which may cause traffic disruption.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="snowplough">
        <xs:annotation>
          <xs:documentation>Snowploughs are in use which may cause traffic disruption.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vehicleOnWrongCarriageway">
        <xs:annotation>
          <xs:documentation>A vehicle is travelling the wrong way along a divided highway (i.e. on the wrong side).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vehicleStuck">
        <xs:annotation>
          <xs:documentation>One or more vehicles are stuck (i.e. unable to move) due to environmental conditions such as a snow drift or severe icy road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="vehicleWithOverwideLoad">
        <xs:annotation>
          <xs:documentation>A vehicle of width greater than that normally allowed which may cause traffic disruption.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="VehiclesPerHour">
    <xs:annotation>
      <xs:documentation>Vehicles per hour.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:NonNegativeInteger" />
  </xs:simpleType>
  <xs:simpleType name="VehicleTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of vehicle.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="lorry">
        <xs:annotation>
          <xs:documentation>Lorry of any type.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="WeatherRelatedRoadConditions">
    <xs:annotation>
      <xs:documentation>Road surface conditions that are related to the weather which may affect the driving conditions, such as ice, snow or water.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:RoadConditions">
        <xs:sequence>
          <xs:element name="weatherRelatedRoadConditionType" type="D2LogicalModel:WeatherRelatedRoadConditionTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of road surface condition that is related to the weather which is affecting the driving conditions.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="weatherRelatedRoadConditionsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="WeatherRelatedRoadConditionTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of road surface conditions which are related to the weather.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="ice">
        <xs:annotation>
          <xs:documentation>Increased skid risk due to ice (of any kind).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="snowDrifts">
        <xs:annotation>
          <xs:documentation>Snow drifting is in progress or patches of deep snow are present due to earlier drifting.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="snowOnTheRoad">
        <xs:annotation>
          <xs:documentation>Snow is lying on the road surface.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="WinterDrivingManagement">
    <xs:annotation>
      <xs:documentation>Winter driving management action that is instigated by the network/road operator.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:NetworkManagement">
        <xs:sequence>
          <xs:element name="winterEquipmentManagementType" type="D2LogicalModel:WinterEquipmentManagementTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Type of winter equipment management action instigated by operator.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="winterDrivingManagementExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="WinterEquipmentManagementTypeEnum">
    <xs:annotation>
      <xs:documentation>Instructions relating to the use of winter equipment.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="useSnowChains">
        <xs:annotation>
          <xs:documentation>Use snow chains.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="useSnowChainsOrTyres">
        <xs:annotation>
          <xs:documentation>Use snow chains or snow tyres.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>