<?xml version="1.0" encoding="utf-8" standalone="no"?>
<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="_CommentExtensionType">
    <xs:sequence>
      <xs:element name="commentExtended" type="D2LogicalModel:CommentExtended" minOccurs="0" />
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="_ExtensionType">
    <xs:sequence>
      <xs:any namespace="##any" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="_ImpactExtensionType">
    <xs:sequence>
      <xs:element name="impactExtended" type="D2LogicalModel:ImpactExtended" minOccurs="0" />
      <xs:any namespace="##other" 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:element name="linearExtended" type="D2LogicalModel:LinearExtended" minOccurs="0" />
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="_LocationContainedInItinerary">
    <xs:sequence>
      <xs:element name="location" type="D2LogicalModel:Location" minOccurs="1" maxOccurs="1" />
    </xs:sequence>
    <xs:attribute name="index" type="xs:int" use="required" />
  </xs:complexType>
  <xs:complexType name="_OperatorActionExtensionType">
    <xs:sequence>
      <xs:element name="operatorActionExtended" type="D2LogicalModel:OperatorActionExtended" 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="_RoadworksExtensionType">
    <xs:sequence>
      <xs:element name="roadworksExtended" type="D2LogicalModel:RoadworksExtended" minOccurs="0" />
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="_SituationExtensionType">
    <xs:sequence>
      <xs:element name="situationExtended" type="D2LogicalModel:SituationExtended" minOccurs="0" />
      <xs:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="_SituationRecordVersionedReference">
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:VersionedReference">
        <xs:attribute name="targetClass" use="required" fixed="SituationRecord" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="_SituationVersionedReference">
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:VersionedReference">
        <xs:attribute name="targetClass" use="required" fixed="Situation" />
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AffectedCarriagewayAndLanes">
    <xs:annotation>
      <xs:documentation>Supplementary positional information which details carriageway and lane locations. Several instances may exist where the element being described extends over more than one carriageway.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="carriageway" type="D2LogicalModel:CarriagewayEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates the section of carriageway to which the location relates.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="lane" type="D2LogicalModel:LaneEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Indicates the specific lane to which the location relates.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="lengthAffected" type="D2LogicalModel:MetresAsFloat" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>This indicates the length of road measured in metres affected by the associated traffic element.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="affectedCarriagewayAndLanesExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AlertCDirection">
    <xs:annotation>
      <xs:documentation>The direction of traffic flow along the road to which the information relates.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alertCDirectionCoded" type="D2LogicalModel:AlertCDirectionEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The direction of traffic flow to which the situation, traffic data or information is related. Positive is in the direction of coding of the road.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCDirectionNamed" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>ALERT-C name of a direction e.g. Brussels -&gt; Lille.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCDirectionSense" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates for circular routes (i.e. valid only for ring roads) the sense in which navigation should be made from the primary location to the secondary location, to avoid ambiguity. TRUE indicates positive RDS direction, i.e. direction of coding of road.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCDirectionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="AlertCDirectionEnum">
    <xs:annotation>
      <xs:documentation>The direction of traffic flow concerned by a situation or traffic data. In ALERT-C the positive (resp. negative) direction corresponds to the positive offset direction within the RDS location table.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="both">
        <xs:annotation>
          <xs:documentation>Indicates that both directions of traffic flow are affected by the situation or relate to the traffic data.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="negative">
        <xs:annotation>
          <xs:documentation>The direction of traffic flow concerned by a situation or traffic data. In ALERT-C the negative direction corresponds to the negative offset direction within the RDS location table.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="positive">
        <xs:annotation>
          <xs:documentation>The direction of traffic flow concerned by a situation or traffic data. In ALERT-C the positive direction corresponds to the positive offset direction within the RDS location table.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs: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="alertCLocationName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Name of ALERT-C location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="specificLocation" type="D2LogicalModel:AlertCLocationCode" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Unique code within the ALERT-C location table which identifies the specific point, linear or area location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="AlertCLocationCode">
    <xs:annotation>
      <xs:documentation>A positive integer number (between 1 and 63,487) which uniquely identifies a pre-defined Alert C location defined within an Alert-C table.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:NonNegativeInteger" />
  </xs:simpleType>
  <xs:complexType name="AlertCMethod4Linear">
    <xs:annotation>
      <xs:documentation>A linear section along a road between two points, Primary and Secondary, which are pre-defined ALERT-C locations plus offset distance. Direction is FROM the Secondary point TO the Primary point, i.e. the Primary point is downstream of the Secondary point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:AlertCLinear">
        <xs:sequence>
          <xs:element name="alertCDirection" type="D2LogicalModel:AlertCDirection" />
          <xs:element name="alertCMethod4PrimaryPointLocation" type="D2LogicalModel:AlertCMethod4PrimaryPointLocation" />
          <xs:element name="alertCMethod4SecondaryPointLocation" type="D2LogicalModel:AlertCMethod4SecondaryPointLocation" />
          <xs:element name="alertCMethod4LinearExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AlertCMethod4Point">
    <xs:annotation>
      <xs:documentation>A single point on the road network defined by reference to a point in a pre-defined ALERT-C location table plus an offset distance and which has an associated direction of traffic flow.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:AlertCPoint">
        <xs:sequence>
          <xs:element name="alertCDirection" type="D2LogicalModel:AlertCDirection" />
          <xs:element name="alertCMethod4PrimaryPointLocation" type="D2LogicalModel:AlertCMethod4PrimaryPointLocation" />
          <xs:element name="alertCMethod4PointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="AlertCMethod4PrimaryPointLocation">
    <xs:annotation>
      <xs:documentation>The point (called Primary point) which is either a single point or at the downstream end of a linear road section. The point is specified by a reference to a point in a pre-defined ALERT-C location table plus a non-negative offset distance.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alertCLocation" type="D2LogicalModel:AlertCLocation" />
      <xs:element name="offsetDistance" type="D2LogicalModel:OffsetDistance" />
      <xs:element name="alertCMethod4PrimaryPointLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AlertCMethod4SecondaryPointLocation">
    <xs:annotation>
      <xs:documentation>The point (called Secondary point) which is at the upstream end of a linear road section. The point is specified by a reference to a point in a pre-defined Alert-C location table plus a non-negative offset distance.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alertCLocation" type="D2LogicalModel:AlertCLocation" />
      <xs:element name="offsetDistance" type="D2LogicalModel:OffsetDistance" />
      <xs:element name="alertCMethod4SecondaryPointLocationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="AlertCPoint" abstract="true">
    <xs:annotation>
      <xs:documentation>A single point on the road network defined by reference to a pre-defined ALERT-C location table and which has an associated direction of traffic flow.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="alertCLocationCountryCode" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>EBU country code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCLocationTableNumber" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Number allocated to an ALERT-C table in a country. Ref. EN ISO 14819-3 for the allocation of a location table number.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCLocationTableVersion" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Version number associated with an ALERT-C table reference.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="alertCPointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="AngleInDegrees">
    <xs:annotation>
      <xs:documentation>An integer number representing an angle in whole degrees between 0 and 359.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:NonNegativeInteger" />
  </xs:simpleType>
  <xs:simpleType name="Boolean">
    <xs:annotation>
      <xs:documentation>Boolean has the value space required to support the mathematical concept of binary-valued logic: {true, false}. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:boolean" />
  </xs:simpleType>
  <xs:simpleType name="CarriagewayEnum">
    <xs:annotation>
      <xs:documentation>List of descriptors identifying specific carriageway details.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="connectingCarriageway">
        <xs:annotation>
          <xs:documentation>On the connecting carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="entrySlipRoad">
        <xs:annotation>
          <xs:documentation>On the entry slip road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="exitSlipRoad">
        <xs:annotation>
          <xs:documentation>On the exit slip road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mainCarriageway">
        <xs:annotation>
          <xs:documentation>On the main carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="oppositeCarriageway">
        <xs:annotation>
          <xs:documentation>On the opposite carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="parallelCarriageway">
        <xs:annotation>
          <xs:documentation>On the adjacent parallel carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="slipRoads">
        <xs:annotation>
          <xs:documentation>On the slip roads.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="Cause" abstract="true">
    <xs:annotation>
      <xs:documentation>Contains details of the cause of a record within a situation</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="causeExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <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="commentDateTime" type="D2LogicalModel:DateTime" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The date/time at which the comment was made.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="commentExtension" type="D2LogicalModel:_CommentExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="CommentExtended">
    <xs:annotation>
      <xs:documentation>An extension for Comment class.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="commentType2" type="D2LogicalModel:CommentType2Enum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Type of comment in addition to existing types.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="CommentType2Enum">
    <xs:annotation>
      <xs:documentation>Addtional types of comments.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="roadworksName">
        <xs:annotation>
          <xs:documentation>A name of these roadworks.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadworksType">
        <xs:annotation>
          <xs:documentation>The type of roadworks.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="additionalRestriction">
        <xs:annotation>
          <xs:documentation>An addtional restriction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="heavyDutyTransportRestriction">
        <xs:annotation>
          <xs:documentation>A restriction for heay duty transports.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trafficInformation">
        <xs:annotation>
          <xs:documentation>An addtional traffic information.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="routeRecommendation">
        <xs:annotation>
          <xs:documentation>A route recommendation.</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="advisory">
        <xs:annotation>
          <xs:documentation>Advisory compliance.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="mandatory">
        <xs:annotation>
          <xs:documentation>Mandatory compliance.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ConfidentialityValueEnum">
    <xs:annotation>
      <xs:documentation>Values of confidentiality.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="internalUse">
        <xs:annotation>
          <xs:documentation>For internal use only of the recipient organisation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noRestriction">
        <xs:annotation>
          <xs:documentation>No restriction on usage.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="restrictedToAuthorities">
        <xs:annotation>
          <xs:documentation>Restricted for use only by authorities.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="ConstructionWorks">
    <xs:annotation>
      <xs:documentation>Roadworks involving the construction of new infrastructure.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Roadworks">
        <xs:sequence>
          <xs:element name="constructionWorkType" type="D2LogicalModel:ConstructionWorkTypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The type of construction work being performed.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="constructionWorksExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="ConstructionWorkTypeEnum">
    <xs:annotation>
      <xs:documentation>Types of works relating to construction.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="constructionWork">
        <xs:annotation>
          <xs:documentation>Construction work of a general nature at the specified location.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadImprovementOrUpgrading">
        <xs:annotation>
          <xs:documentation>Construction work associated with improvements to the road or its layout or with it upgrading.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadWideningWork">
        <xs:annotation>
          <xs:documentation>Road widening work at the specified location.</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:attribute name="extensionName" use="optional" default="Baustellen" />
    <xs:attribute name="extensionVersion" use="optional" default="04-00-00" />
  </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:simpleType name="DayEnum">
    <xs:annotation>
      <xs:documentation>Days of the week.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="monday">
        <xs:annotation>
          <xs:documentation>Monday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tuesday">
        <xs:annotation>
          <xs:documentation>Tuesday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="wednesday">
        <xs:annotation>
          <xs:documentation>Wednesday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="thursday">
        <xs:annotation>
          <xs:documentation>Thursday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="friday">
        <xs:annotation>
          <xs:documentation>Friday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="saturday">
        <xs:annotation>
          <xs:documentation>Saturday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="sunday">
        <xs:annotation>
          <xs:documentation>Sunday.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="DayWeekMonth">
    <xs:annotation>
      <xs:documentation>Specification of periods defined by the intersection of days, weeks and months.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="applicableDay" type="D2LogicalModel:DayEnum" minOccurs="0" maxOccurs="7">
        <xs:annotation>
          <xs:documentation>Applicable day of the week. "All days of the week" is expressed by non-inclusion of this attribute.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="applicableWeek" type="D2LogicalModel:WeekOfMonthEnum" minOccurs="0" maxOccurs="5">
        <xs:annotation>
          <xs:documentation>Applicable week of the month (1 to 5).  "All weeks of the month" is expressed by non-inclusion of this attribute.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="applicableMonth" type="D2LogicalModel:MonthOfYearEnum" minOccurs="0" maxOccurs="12">
        <xs:annotation>
          <xs:documentation>Applicable month of the year.  "All months of the year" is expressed by non-inclusion of this attribute.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="dayWeekMonthExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="DistanceAlongLinearElement" abstract="true">
    <xs:annotation>
      <xs:documentation>Distance of a point along a linear element either measured from the start node or a defined referent on that linear element, where the start node is relative to the element definition rather than the direction of traffic flow.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="distanceAlongLinearElementExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="DistanceFromLinearElementReferent">
    <xs:annotation>
      <xs:documentation>Distance of a point along a linear element measured from a "from referent" on the linear element, in the sense relative to the linear element definition rather than the direction of traffic flow or optionally towards a "towards referent".</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DistanceAlongLinearElement">
        <xs:sequence>
          <xs:element name="distanceAlong" type="D2LogicalModel:MetresAsFloat" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A measure of distance along a linear element.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="fromReferent" type="D2LogicalModel:Referent">
            <xs:annotation>
              <xs:documentation>A known location along the linear element from which the distanceAlong is measured, termed the "fromReferent" in ISO 19148. </xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="towardsReferent" type="D2LogicalModel:Referent" minOccurs="0">
            <xs:annotation>
              <xs:documentation>A known location along the linear element towards which the distanceAlong is measured, termed the "towardsReferent" in ISO 19148.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="distanceFromLinearElementReferentExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="DistanceFromLinearElementStart">
    <xs:annotation>
      <xs:documentation>Distance of a point along a linear element measured from the start node of the linear element, where start node is relative to the element definition rather than the direction of traffic flow.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:DistanceAlongLinearElement">
        <xs:sequence>
          <xs:element name="distanceAlong" type="D2LogicalModel:MetresAsFloat" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A measure of distance along a linear element.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="distanceFromLinearElementStartExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="Exchange">
    <xs:annotation>
      <xs:documentation>Details associated with the management of the exchange between the supplier and the client.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="keepAlive" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicator that this exchange is due to "keep alive" functionality.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="response" type="D2LogicalModel:ResponseEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The type of the response that the supplier is returning to the requesting client.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="subscriptionReference" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Unique identifier of the client's subscription with the supplier.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="supplierIdentification" type="D2LogicalModel:InternationalIdentifier" />
      <xs:element name="subscription" type="D2LogicalModel:Subscription" minOccurs="0" />
      <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="GmlLineString">
    <xs:annotation>
      <xs:documentation> LineString, modelled on the definition in GML (ISO 19136): a curve which is defined by a series of two or more coordinate tuples.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="srsName" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specifies the Coordinate Reference System (CRS) used to interpret the coordinates in this GmlLineString</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="posList" type="D2LogicalModel:GmlPosList" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>List of coordinate pairs that define the geometry of this GmlLineString. There must be at least 2 pairs of coordinates.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="roadInformation" type="D2LogicalModel:RoadInformation" minOccurs="0" />
      <xs:element name="gmlLineStringExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="GmlPosList">
    <xs:annotation>
      <xs:documentation>List of coordinates, space-separated, within the same coordinate reference system, defining a geometric entity. Modelled on DirectPositionListType in GML (ISO 19136), but constrained to represent a 2D polyline, so coordinates shall be in pairs.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:LongString" />
  </xs:simpleType>
  <xs:complexType name="GroupOfLocations" abstract="true">
    <xs:annotation>
      <xs:documentation>One or more physically separate locations. Multiple locations may be related, as in an itinerary (or route), or may be unrelated. It is not for identifying the same physical location using different Location objects for different referencing systems.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="groupOfLocationsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="HardShoulderStatusEnum">
    <xs:annotation>
      <xs:documentation>Describes the status of the hard shoulder.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="availableForDriving">
        <xs:annotation>
          <xs:documentation>The hard shoulder is available for driving.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="availableForStopping">
        <xs:annotation>
          <xs:documentation>The hard shoulder is available for stopping.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="closed">
        <xs:annotation>
          <xs:documentation>The hard shoulder is closed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <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="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="capacityRemaining" type="D2LogicalModel:Percentage" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The ratio of current capacity to the normal (free flow) road capacity in the defined direction, expressed as a percentage. Capacity is the maximum number of vehicles that can pass a specified point on the road, in unit time given the specified conditions.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="numberOfLanesRestricted" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The number of normally usable lanes on the carriageway which are now restricted either fully or partially (this may include the hard shoulder if it is normally available for operational use, e.g. in hard shoulder running schemes).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="originalNumberOfLanes" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The normal number of usable lanes in the specified direction that the carriageway has before reduction due to roadworks or traffic events.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="residualRoadWidth" type="D2LogicalModel:MetresAsFloat" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The total width of the combined operational lanes in the specified direction.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="impactExtension" type="D2LogicalModel:_ImpactExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ImpactExtended">
    <xs:annotation>
      <xs:documentation>More attributes for impact: residualHeight, </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="lanesRestricted" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indication whether there are lanes restricted (closed) or not.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="closedLanes" type="D2LogicalModel:LaneEnum" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>Position of closed lanes (contains only closed driving lanes. The operational status of a hard shoulder is coded with the element harShoulderStatus).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="hardShoulderStatus" type="D2LogicalModel:HardShoulderStatusEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The status of the hard shoulder.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="laneStatusCoded" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A coded value which gives information about open and closed lanes. Using this value needs an agreement about it's specific coding. It's not intended for textual representation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="residualHeight" type="D2LogicalModel:MetresAsFloat" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The maximum total height (max. value for vehicles). If there are differences between the lanes, this value is the maximum of all available max height values (e.g. a vehicle of this height can pass)</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="laneRestriction" type="D2LogicalModel:LaneRestriction" minOccurs="0" maxOccurs="unbounded" />
    </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="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="InternationalIdentifier">
    <xs:annotation>
      <xs:documentation>An identifier/name whose range is specific to the particular country.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="country" type="D2LogicalModel:CountryEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>ISO 3166-1 two character country code.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="nationalIdentifier" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identifier or name unique within the specified country.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="internationalIdentifierExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Itinerary" abstract="true">
    <xs:annotation>
      <xs:documentation>Multiple (i.e. more than one) physically separate locations arranged as an ordered set that defines an itinerary or route.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:GroupOfLocations">
        <xs:sequence>
          <xs:element name="itineraryExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="ItineraryByIndexedLocations">
    <xs:annotation>
      <xs:documentation>Multiple physically separate locations arranged as an ordered set that defines an itinerary or route. The index qualifier indicates the order.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Itinerary">
        <xs:sequence>
          <xs:element name="locationContainedInItinerary" type="D2LogicalModel:_LocationContainedInItinerary" minOccurs="0" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>A location contained in an itinerary (i.e. an ordered set of locations defining a route or itinerary).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="itineraryByIndexedLocationsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="KilometresPerHour">
    <xs:annotation>
      <xs:documentation>A measure of speed defined in kilometres per hour.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Float" />
  </xs:simpleType>
  <xs:simpleType name="LaneEnum">
    <xs:annotation>
      <xs:documentation>List of descriptors identifying specific lanes.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="allLanesCompleteCarriageway">
        <xs:annotation>
          <xs:documentation>In all lanes of the carriageway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="hardShoulder">
        <xs:annotation>
          <xs:documentation>On the hard shoulder.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane1">
        <xs:annotation>
          <xs:documentation>In the first lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane2">
        <xs:annotation>
          <xs:documentation>In the second lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane3">
        <xs:annotation>
          <xs:documentation>In the third lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane4">
        <xs:annotation>
          <xs:documentation>In the fourth lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane5">
        <xs:annotation>
          <xs:documentation>In the fifth lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane6">
        <xs:annotation>
          <xs:documentation>In the sixth lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane7">
        <xs:annotation>
          <xs:documentation>In the seventh lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane8">
        <xs:annotation>
          <xs:documentation>In the eighth lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lane9">
        <xs:annotation>
          <xs:documentation>In the ninth lane numbered from nearest the hard shoulder to central median.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="leftLane">
        <xs:annotation>
          <xs:documentation>In the left lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rightLane">
        <xs:annotation>
          <xs:documentation>In the right lane.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="LaneRestriction">
    <xs:annotation>
      <xs:documentation>A lane that is restricted by a maximum vehicle weight. Note that it is possible to use the literal "allLanesCompleteCarriageway" to specifiy a general restriction for the complete carriageway.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="lane" type="D2LogicalModel:LaneEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Indicates the specific lane to which the location relates.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="maxVehicleWeight" type="D2LogicalModel:Tonnes" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The maximum weight for vehicles that are allowed on the specified lane.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="minLaneWidth" type="D2LogicalModel:MetresAsFloat" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The minimum width of the specified lane.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="laneRestrictionExtension" 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="roadNumber" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identifier/number of the road of which the linear element forms a part.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="linearElementReferenceModel" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The identifier of a road network reference model which segments the road network according to specific business rules.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="linearElementReferenceModelVersion" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The version of the identified road network reference model.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="linearElementExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="LinearExtended">
    <xs:annotation>
      <xs:documentation>Extension class for Linear.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="gmlLineString" type="D2LogicalModel:GmlLineString" minOccurs="0" />
    </xs:sequence>
  </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: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="LongString">
    <xs:annotation>
      <xs:documentation>A character string with no specified length limit, 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: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:complexType name="ManagedCause">
    <xs:annotation>
      <xs:documentation>A cause of this situation record which is managed by the publication creator, i.e. one which is represented by another situation record produced by the same publication creator.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Cause">
        <xs:sequence>
          <xs:element name="managedCause" type="D2LogicalModel:_SituationRecordVersionedReference" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>A reference to another situation record produced by the same publication creator which defines a cause of the event defined here.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="managedCauseExtension" 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="Mobility">
    <xs:annotation>
      <xs:documentation>An indication of whether the associated instance of a SituationRecord is mobile (e.g. a march or parade moving along a road) or stationary.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="mobilityType" type="D2LogicalModel:MobilityEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>An indication of whether the associated instance of a SituationRecord is mobile (e.g. a march or parade moving along a road) or stationary.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="mobilityExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="MobilityEnum">
    <xs:annotation>
      <xs:documentation>Types of mobility relating to a situation element defined by a SituationReord.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="mobile">
        <xs:annotation>
          <xs:documentation>The described element of a situation is moving.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="stationary">
        <xs:annotation>
          <xs:documentation>The described element of a situation is stationary.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>The mobility of the described element of a situation is unknown.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="MonthOfYearEnum">
    <xs:annotation>
      <xs:documentation>A list of the months of the year.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="january">
        <xs:annotation>
          <xs:documentation>The month of January.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="february">
        <xs:annotation>
          <xs:documentation>The month of February.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="march">
        <xs:annotation>
          <xs:documentation>The month of March.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="april">
        <xs:annotation>
          <xs:documentation>The month of April.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="may">
        <xs:annotation>
          <xs:documentation>The month of May.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="june">
        <xs:annotation>
          <xs:documentation>The month of June.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="july">
        <xs:annotation>
          <xs:documentation>The month of July.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="august">
        <xs:annotation>
          <xs:documentation>The month of August.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="september">
        <xs:annotation>
          <xs:documentation>The month of September.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="october">
        <xs:annotation>
          <xs:documentation>The month of October.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="november">
        <xs:annotation>
          <xs:documentation>The month of November.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="december">
        <xs:annotation>
          <xs:documentation>The month of December.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="MultilingualString">
    <xs:sequence>
      <xs:element name="values">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="value" type="D2LogicalModel:MultilingualStringValue" maxOccurs="unbounded" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="MultilingualStringValue">
    <xs:simpleContent>
      <xs:extension base="D2LogicalModel:MultilingualStringValueType">
        <xs:attribute name="lang" type="xs:language" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>
  <xs:simpleType name="MultilingualStringValueType">
    <xs:restriction base="xs:string">
      <xs:maxLength value="1024" />
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="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="networkManagementExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="NonManagedCause">
    <xs:annotation>
      <xs:documentation>A cause of this situation record which is not managed by the publication creator, i.e. one which is not represented by another situation record produced by the same publication creator.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:Cause">
        <xs:sequence>
          <xs:element name="causeDescription" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Description of a cause which is not managed by the publication creator (e.g. an off network cause).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="nonManagedCauseExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="NonNegativeInteger">
    <xs:annotation>
      <xs:documentation>An integer number whose value space is the set {0, 1, 2, ..., 2147483645, 2147483646, 2147483647}.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:nonNegativeInteger" />
  </xs:simpleType>
  <xs:complexType name="NonOrderedLocationGroupByList">
    <xs:annotation>
      <xs:documentation>A group of (i.e. more than one) physically separate locations which have no specific order and where each location is explicitly listed.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:NonOrderedLocations">
        <xs:sequence>
          <xs:element name="locationContainedInGroup" type="D2LogicalModel:Location" minOccurs="2" maxOccurs="unbounded">
            <xs:annotation>
              <xs:documentation>A location contained in a non ordered group of locations.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="nonOrderedLocationGroupByListExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="NonOrderedLocations" abstract="true">
    <xs:annotation>
      <xs:documentation>Multiple (i.e. more than one) physically separate locations which have no specific order.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:GroupOfLocations">
        <xs:sequence>
          <xs:element name="nonOrderedLocationsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="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="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="firstDirection" type="D2LogicalModel:OpenlrLineLocationReference">
        <xs:annotation>
          <xs:documentation>First OpenLR reference in first/main direction.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="oppositeDirection" type="D2LogicalModel:OpenlrLineLocationReference" minOccurs="0">
        <xs:annotation>
          <xs:documentation>If both direction, this is tha reference in the opposite direction against firstDirection.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrExtendedPoint">
    <xs:annotation>
      <xs:documentation>Extension class for OpenLR point.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrPointLocationReference" type="D2LogicalModel:OpenlrPointLocationReference" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="OpenlrFormOfWayEnum">
    <xs:annotation>
      <xs:documentation>Enumeration of for of way</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="undefined">
        <xs:annotation>
          <xs:documentation>undefined</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="motorway">
        <xs:annotation>
          <xs:documentation>motorway</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="multipleCarriageway">
        <xs:annotation>
          <xs:documentation>multipleCarrigeway</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="singleCarriageway">
        <xs:annotation>
          <xs:documentation>single carrigeway</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roundabout">
        <xs:annotation>
          <xs:documentation>roadabout</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="slipRoad">
        <xs:annotation>
          <xs:documentation>sliproad</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="trafficSquare">
        <xs:annotation>
          <xs:documentation>traffic square</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>other</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="OpenlrFunctionalRoadClassEnum">
    <xs:annotation>
      <xs:documentation>Enemuration of functional road class</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="FRC0">
        <xs:annotation>
          <xs:documentation>Main road, highest importance</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC1">
        <xs:annotation>
          <xs:documentation>First class road</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC2">
        <xs:annotation>
          <xs:documentation>Second class road</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC3">
        <xs:annotation>
          <xs:documentation>Third class road</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC4">
        <xs:annotation>
          <xs:documentation>Fourth class road</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC5">
        <xs:annotation>
          <xs:documentation>Fifth class road</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC6">
        <xs:annotation>
          <xs:documentation>Sixth class road</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="FRC7">
        <xs:annotation>
          <xs:documentation>Other class road, lowest importance</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="OpenlrGeoCoordinate">
    <xs:annotation>
      <xs:documentation>A geo-coordinate pair is a position in a map defined by its longitude and latitude coordinate values.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrCoordinate" type="D2LogicalModel:PointCoordinates" />
      <xs:element name="openlrGeoCoordinateExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrLastLocationReferencePoint">
    <xs:annotation>
      <xs:documentation>The sequence of location reference points is terminated by a last location reference point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:OpenlrBaseLocationReferencePoint">
        <xs:sequence>
          <xs:element name="openlrLastLocationReferencePointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="OpenlrLineAttributes">
    <xs:annotation>
      <xs:documentation>Line attributes are part of a location reference point and consists of functional road class (FRC),form of way (FOW) and bearing (BEAR) data.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrFunctionalRoadClass" type="D2LogicalModel:OpenlrFunctionalRoadClassEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The functional road class (FRC) can hold eight different values as described in the logical format.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrFormOfWay" type="D2LogicalModel:OpenlrFormOfWayEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The form of way (FOW) can hold eight different values as described in the logical format.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrBearing" type="D2LogicalModel:AngleInDegrees" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>defines the bearing field as an integer value between 0 and 360 whereby “0” is included and “360” is excluded from that range.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrLineAttributesExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrLineLocationReference">
    <xs:annotation>
      <xs:documentation>A LineLocationReference is defined by an ordered sequence of location reference points and a terminating last location reference point.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrLocationReferencePoint" type="D2LogicalModel:OpenlrLocationReferencePoint" maxOccurs="unbounded" />
      <xs:element name="openlrLastLocationReferencePoint" type="D2LogicalModel:OpenlrLastLocationReferencePoint" />
      <xs:element name="openlrOffsets" type="D2LogicalModel:OpenlrOffsets" minOccurs="0" />
      <xs:element name="openlrLineLocationReferenceExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrLocationReferencePoint">
    <xs:annotation>
      <xs:documentation>The basis of a location reference is a sequence of location reference points (LRPs).</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:OpenlrBaseLocationReferencePoint">
        <xs:sequence>
          <xs:element name="openlrPathAttributes" type="D2LogicalModel:OpenlrPathAttributes" />
          <xs:element name="openlrLocationReferencePointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="OpenlrOffsets">
    <xs:annotation>
      <xs:documentation>Offsets are used to locate the start and end of a location more precisely than bounding to the nodes in a network.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrPositiveOffset" type="D2LogicalModel:MetresAsNonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The positive offset along the line of the location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrNegativeOffset" type="D2LogicalModel:MetresAsNonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The negative offset along the line of the location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrOffsetsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="OpenlrOrientationEnum">
    <xs:annotation>
      <xs:documentation>Enumeration of side of road</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="noOrientationOrUnknown">
        <xs:annotation>
          <xs:documentation>No orientation or unknown</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="withLineDirection">
        <xs:annotation>
          <xs:documentation>With line direction</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="againstLineDirection">
        <xs:annotation>
          <xs:documentation>Against line direction</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="both">
        <xs:annotation>
          <xs:documentation>Both directions</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="OpenlrPathAttributes">
    <xs:annotation>
      <xs:documentation>The field path attributes is part of a location reference point (except for the last location reference point) and consists of lowest functional road class (LFRCNP) and distance to next point (DNP) data.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrLowestFRCToNextLRPoint" type="D2LogicalModel:OpenlrFunctionalRoadClassEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The lowest FRC to the next point indicates the lowest functional road class used in the location reference path to the next LR-point.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrDistanceToNextLRPoint" type="D2LogicalModel:NonNegativeInteger" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The DNP attribute measures the distance in meters between two consecutive LR-points along the location reference path as described in the logical format.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="openlrPathAttributesExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrPointAlongLine">
    <xs:annotation>
      <xs:documentation>Point along a line</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:OpenlrBasePointLocation">
        <xs:sequence>
          <xs:element name="openlrPointAlongLineExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="OpenlrPointLocationReference">
    <xs:annotation>
      <xs:documentation>A point location is a zero-dimensional element in a map that specifies a geometric location.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="openlrGeoCoordinate" type="D2LogicalModel:OpenlrGeoCoordinate" minOccurs="0" />
      <xs:element name="openlrPoiWithAccessPoint" type="D2LogicalModel:OpenlrPoiWithAccessPoint" minOccurs="0" />
      <xs:element name="openlrPointAlongLine" type="D2LogicalModel:OpenlrPointAlongLine" minOccurs="0" />
      <xs:element name="openlrPointLocationReferenceExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="OpenlrPoiWithAccessPoint">
    <xs:annotation>
      <xs:documentation>Point along line with access is a point location which is defined by a line,an offset value and a coordinate.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:OpenlrBasePointLocation">
        <xs:sequence>
          <xs:element name="openlrCoordinate" type="D2LogicalModel:PointCoordinates">
            <xs:annotation>
              <xs:documentation>The coordinate of the actual point of interest</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="openlrPoiWithAccessPointExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="OpenlrSideOfRoadEnum">
    <xs:annotation>
      <xs:documentation>Enumeration of side of road</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="onRoadOrUnknown">
        <xs:annotation>
          <xs:documentation>On road or unknown</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="right">
        <xs:annotation>
          <xs:documentation>right</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="left">
        <xs:annotation>
          <xs:documentation>left</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="both">
        <xs:annotation>
          <xs:documentation>both</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="OperatingModeEnum">
    <xs:annotation>
      <xs:documentation>Modes of operation of the exchange.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="operatingMode0">
        <xs:annotation>
          <xs:documentation>"Subscription Management Mechanism" - a specialized operating mode to handle subscriptions.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="operatingMode1">
        <xs:annotation>
          <xs:documentation>"Publisher Push on Occurrence" operating mode.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="operatingMode2">
        <xs:annotation>
          <xs:documentation>"Publisher Push Periodic" operating mode.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="operatingMode3">
        <xs:annotation>
          <xs:documentation>"Client Pull" operating mode.</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="actionPlanIdentifier" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The identifier of the traffic management action plan to which this action relates.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="operatorActionStatus" type="D2LogicalModel:OperatorActionStatusEnum" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The status of the defined operator action.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="operatorActionExtension" type="D2LogicalModel:_OperatorActionExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="OperatorActionExtended">
    <xs:annotation>
      <xs:documentation>Extension class for OperatorAction.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="mainSpeedLimit" type="D2LogicalModel:KilometresPerHour" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The speed limit that covers the longest distance within the road works zone (i.e. there might be higher as well as lower speed limits in this roadworks zone, but for lower distances).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="minimumSpeedLimit" type="D2LogicalModel:KilometresPerHour" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The minimum speed limit within the roadworks zone (i.e. there might be segments with a higher speed limit).</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="OperatorActionStatusEnum">
    <xs:annotation>
      <xs:documentation>List of statuses associated with operator actions.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="requested">
        <xs:annotation>
          <xs:documentation>A request, either internal or external, has been received to implement an action. It has neither been approved nor has any activity yet been undertaken to implement the action.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="approved">
        <xs:annotation>
          <xs:documentation>The action has been approved by the recipient of the request but activity to implement the action has not yet commenced.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="beingImplemented">
        <xs:annotation>
          <xs:documentation>The action is in the process of being implemented.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="implemented">
        <xs:annotation>
          <xs:documentation>The action is fully implemented.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="rejected">
        <xs:annotation>
          <xs:documentation>The action has been rejected by the recipient of the request and hence is not implemented.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="terminationRequested">
        <xs:annotation>
          <xs:documentation>A request, either internal or external, has been received to terminate the action, but activity to terminate the action has not yet commenced.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="beingTerminated">
        <xs:annotation>
          <xs:documentation>The action is in the process of being terminated either because the action has reached the end of its validity period or because new circumstances have arisen and its termination has been requested, e.g. because of a traffic jam on the alternative route.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="OverallPeriod">
    <xs:annotation>
      <xs:documentation>A continuous or discontinuous period of validity defined by overall bounding start and end times and the possible intersection of valid periods (potentially recurring) with the complement of exception periods (also potentially recurring).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="overallStartTime" type="D2LogicalModel:DateTime" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Start of bounding period of validity defined by date and time.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="overallEndTime" type="D2LogicalModel:DateTime" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>End of bounding period of validity defined by date and time.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="validPeriod" type="D2LogicalModel:Period" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A single time period, a recurring time period or a set of different recurring time periods during which validity is true.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="exceptionPeriod" type="D2LogicalModel:Period" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A single time period, a recurring time period or a set of different recurring time periods during which validity is false.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="overallPeriodExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PayloadPublication" abstract="true">
    <xs:annotation>
      <xs:documentation>A payload publication of traffic related information or associated management information created at a specific point in time that can be exchanged via a DATEX II interface.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="publicationTime" type="D2LogicalModel:DateTime" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Date/time at which the payload publication was created.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="publicationCreator" type="D2LogicalModel:InternationalIdentifier" />
      <xs:element name="payloadPublicationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
    <xs:attribute name="lang" type="D2LogicalModel:Language" use="required">
      <xs:annotation>
        <xs:documentation>The default language used throughout the payload publication.</xs:documentation>
      </xs:annotation>
    </xs:attribute>
  </xs:complexType>
  <xs:simpleType name="Percentage">
    <xs:annotation>
      <xs:documentation>A measure of percentage.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Float" />
  </xs:simpleType>
  <xs:complexType name="Period">
    <xs:annotation>
      <xs:documentation>A continuous time period or a set of discontinuous time periods defined by the intersection of a set of criteria all within an overall delimiting interval.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="startOfPeriod" type="D2LogicalModel:DateTime" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Start of period.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="endOfPeriod" type="D2LogicalModel:DateTime" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>End of a period.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="periodName" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The name of the period.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="recurringTimePeriodOfDay" type="D2LogicalModel:TimePeriodOfDay" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A recurring period of a day.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="recurringDayWeekMonthPeriod" type="D2LogicalModel:DayWeekMonth" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A recurring period defined in terms of days of the week, weeks of the month and months of the year. </xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="periodExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Point">
    <xs:annotation>
      <xs:documentation>A single geospatial point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:NetworkLocation">
        <xs:sequence>
          <xs:element name="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="1" 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="bearing" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A bearing at the point measured in degrees (0 - 359). Unless otherwise specified the reference direction corresponding to 0 degrees is North.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pointCoordinates" type="D2LogicalModel:PointCoordinates" />
      <xs:element name="pointByCoordinatesExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="PointCoordinates">
    <xs:annotation>
      <xs:documentation>A pair of coordinates defining the geodetic position of a single point using the European Terrestrial Reference System 1989 (ETRS89).</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="latitude" type="D2LogicalModel:Float" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Latitude in decimal degrees using the European Terrestrial Reference System 1989 (ETRS89).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="longitude" type="D2LogicalModel:Float" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Longitude in decimal degrees using the European Terrestrial Reference System 1989 (ETRS89).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pointCoordinatesExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs: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:restriction>
  </xs:simpleType>
  <xs:complexType name="Referent">
    <xs:annotation>
      <xs:documentation>A referent on a linear object that has a known location such as a node, a reference marker (e.g. a markerpost), an intersection etc.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="referentIdentifier" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The identifier of the referent, unique on the specified linear element (i.e. road or part of).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="referentType" type="D2LogicalModel:ReferentTypeEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The type of the referent.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="pointCoordinates" type="D2LogicalModel:PointCoordinates" minOccurs="0" />
      <xs:element name="referentExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ReferentTypeEnum">
    <xs:annotation>
      <xs:documentation>A set of types of known points along a linear object such as a road.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="referenceMarker">
        <xs:annotation>
          <xs:documentation>A marker which is usually but not necessarily physical that is one of a sequence which are spaced out along the linear object (road)  to provide a location reference. The spacing of markers is not necessarily even.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="ResponseEnum">
    <xs:annotation>
      <xs:documentation>Types of response that a supplier can return to a requesting client.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="acknowledge">
        <xs:annotation>
          <xs:documentation>An acknowledgement that the supplier has received and complied with the client's request.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="requestDenied">
        <xs:annotation>
          <xs:documentation>A notification that the supplier has denied the client's request for a data.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="subscriptionRequestDenied">
        <xs:annotation>
          <xs:documentation>A notification that the supplier has denied the client's request for a subscription.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="RoadInformation">
    <xs:annotation>
      <xs:documentation>Road information.</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="roadDirection" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Direction of the road in terms of origin and destination (e.g. Aachen - Köln).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="roadNumber" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Identifier/number of the road of which the linear element forms a part.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="roadInformationExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </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="clearanceWork">
        <xs:annotation>
          <xs:documentation>Clearance work of an unspecified nature.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="installationWork">
        <xs:annotation>
          <xs:documentation>Installation of new equipments or systems on or along-side the roadway.</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="overheadWorks">
        <xs:annotation>
          <xs:documentation>Works which are overhead of the carriageway.</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="resurfacingWork">
        <xs:annotation>
          <xs:documentation>Work associated with relaying or renewal of worn-out road surface (pavement).</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="roadsideWork">
        <xs:annotation>
          <xs:documentation>Road side work of an unspecified nature.</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="sweepingOfRoad">
        <xs:annotation>
          <xs:documentation>Sweeping of the roadway.</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: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="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="carriagewayClosures">
        <xs:annotation>
          <xs:documentation>Carriageway closures are in operation at the specified location.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lanesDeviated">
        <xs:annotation>
          <xs:documentation>Lane deviations are in operation at the specified location.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="newRoadworksLayout">
        <xs:annotation>
          <xs:documentation>A new layout of lanes/carriageway has been implemented associated with roadworks.</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="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="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="roadworksDuration" type="D2LogicalModel:RoadworksDurationEnum" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Indicates in general terms the expected duration of the roadworks.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="urgentRoadworks" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Indication of whether the roadworks are considered to be urgent whereby emergency work is being, or needs to be, undertaken to mitigate safety concerns. 'True' indicates they are urgent.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="mobility" type="D2LogicalModel:Mobility" minOccurs="0" />
          <xs:element name="subjects" type="D2LogicalModel:Subjects" minOccurs="0" />
          <xs:element name="roadworksExtension" type="D2LogicalModel:_RoadworksExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="RoadworksDurationEnum">
    <xs:annotation>
      <xs:documentation>Expected durations of roadworks in general terms.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="longTerm">
        <xs:annotation>
          <xs:documentation>The roadworks are expected to last for a long term ( duration &gt; 6 months)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="shortTerm">
        <xs:annotation>
          <xs:documentation>The roadworks are expected to last for a short term ( duration &lt; = 1 month)</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="RoadworksExtended">
    <xs:annotation>
      <xs:documentation>RoadworksExtension</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="roadworksIdentifier" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>An internal identifier for the roadworks.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="roadworksLayout" type="D2LogicalModel:String" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A coded value to represent the road layout. Using this value needs an agreement about its specific coding.</xs:documentation>
        </xs:annotation>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="SeverityEnum">
    <xs:annotation>
      <xs:documentation>Levels of severity of a situation as whole assessed by the impact that the situation may have on traffic flow as perceived by the supplier.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="high">
        <xs:annotation>
          <xs:documentation>Perceived by supplier as being of a high level.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="medium">
        <xs:annotation>
          <xs:documentation>Perceived by supplier as being of a medium level.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="low">
        <xs:annotation>
          <xs:documentation>Perceived by supplier as being of a low level.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="none">
        <xs:annotation>
          <xs:documentation>Perceived by supplier as having a severity rating of none.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="unknown">
        <xs:annotation>
          <xs:documentation>Perceived by supplier as being of an unknown level.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </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="overallSeverity" type="D2LogicalModel:SeverityEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The overall assessment of the impact (in terms of severity) that the situation as a whole is having, or will have, on the traffic flow as perceived by the supplier.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="relatedSituation" type="D2LogicalModel:_SituationVersionedReference" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A reference to a related situation via its unique identifier.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="situationVersionTime" type="D2LogicalModel:DateTime" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The date/time that this current version of the Situation was written into the database of the supplier which is involved in the data exchange. Identity and version of the situation are defined by the class stereotype implementation.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="headerInformation" type="D2LogicalModel:HeaderInformation" />
      <xs:element name="situationRecord" type="D2LogicalModel:SituationRecord" maxOccurs="unbounded" />
      <xs:element name="situationExtension" type="D2LogicalModel:_SituationExtensionType" 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="SituationExtended">
    <xs:annotation>
      <xs:documentation>Adds the role 'overallSituation'.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="overallSituation" type="D2LogicalModel:SituationRecord" />
    </xs:sequence>
  </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="severity" type="D2LogicalModel:SeverityEnum" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The assessment of the impact (in terms of severity) that this element of the situation is having, or will have, on the traffic flow as perceived by the supplier.</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="cause" type="D2LogicalModel:Cause" 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="nonGeneralPublicComment" type="D2LogicalModel:Comment" minOccurs="0" maxOccurs="unbounded">
        <xs:annotation>
          <xs:documentation>A comment which should not be distributed to the general public.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="urlLink" type="D2LogicalModel:UrlLink" minOccurs="0" maxOccurs="unbounded" />
      <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:complexType name="SpeedManagement">
    <xs:annotation>
      <xs:documentation>Speed 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="speedManagementType" type="D2LogicalModel:SpeedManagementTypeEnum" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Type of speed management action instigated by operator.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="temporarySpeedLimit" type="D2LogicalModel:KilometresPerHour" minOccurs="0" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Temporary limit defining the maximum advisory or mandatory speed of vehicles.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="speedManagementExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="SpeedManagementTypeEnum">
    <xs:annotation>
      <xs:documentation>Management actions relating to speed.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="activeSpeedControlInOperation">
        <xs:annotation>
          <xs:documentation>Automatic speed control measures are in place at the specified location, whereby speed limits are set by an automatic system which is triggered by traffic sensing equipment.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="doNotSlowdownUnnecessarily">
        <xs:annotation>
          <xs:documentation>Do not slow down unnecessarily.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="observeSpeedLimit">
        <xs:annotation>
          <xs:documentation>Observe speed limit.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="policeSpeedChecksInOperation">
        <xs:annotation>
          <xs:documentation>Police speed checks are in operation.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="reduceYourSpeed">
        <xs:annotation>
          <xs:documentation>Reduce your speed.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="speedRestrictionInOperation">
        <xs:annotation>
          <xs:documentation>A speed restriction is in operation.</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="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="Subjects">
    <xs:annotation>
      <xs:documentation>The subjects with which the roadworks are associated.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="subjectTypeOfWorks" type="D2LogicalModel:SubjectTypeOfWorksEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The subject type of the roadworks (i.e. on what the construction or maintenance work is being performed).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="subjectsExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="SubjectTypeOfWorksEnum">
    <xs:annotation>
      <xs:documentation>Subject types of construction or maintenance work.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="bridge">
        <xs:annotation>
          <xs:documentation>Bridge on, over or under the highway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="buriedCables">
        <xs:annotation>
          <xs:documentation>Buried cables under or along the highway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="buriedServices">
        <xs:annotation>
          <xs:documentation>Unspecified buried services on, under or along the highway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="crashBarrier">
        <xs:annotation>
          <xs:documentation>Crash barrier.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="gantry">
        <xs:annotation>
          <xs:documentation>Gantry over or above the roadway.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="interchange">
        <xs:annotation>
          <xs:documentation>Motorway or major road interchange.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="junction">
        <xs:annotation>
          <xs:documentation>Motorway or major road junction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="noiseProtection">
        <xs:annotation>
          <xs:documentation>Installations along the roadway designed to reduce road noise in the surrounding environment.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="road">
        <xs:annotation>
          <xs:documentation>Road.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadsideDrains">
        <xs:annotation>
          <xs:documentation>Roadside drains.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="roadSigns">
        <xs:annotation>
          <xs:documentation>Road signs.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tunnel">
        <xs:annotation>
          <xs:documentation>Road tunnel.</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="Subscription">
    <xs:annotation>
      <xs:documentation>This item contains all information relating to a customer subscription.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="operatingMode" type="D2LogicalModel:OperatingModeEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The mode of operation of the exchange.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="subscriptionStartTime" type="D2LogicalModel:DateTime" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Gives the date/time at which the subscription becomes active.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="subscriptionState" type="D2LogicalModel:SubscriptionStateEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The current state of the the client's subscription.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="updateMethod" type="D2LogicalModel:UpdateMethodEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The type of updates of situations requested by the client.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="target" type="D2LogicalModel:Target" maxOccurs="unbounded" />
      <xs:element name="subscriptionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="SubscriptionStateEnum">
    <xs:annotation>
      <xs:documentation>The state of a client's current subscription.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="active">
        <xs:annotation>
          <xs:documentation>The client's subscription as registered with a supplier is currently active.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="suspended">
        <xs:annotation>
          <xs:documentation>The client's subscription as registered with a supplier is currently suspended.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </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="sequentialRampNumber" type="D2LogicalModel:NonNegativeInteger" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The sequential number of an exit/entrance ramp from a given location in a given direction (normally used to indicate a specific exit/entrance in a complex junction/intersection).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="affectedCarriagewayAndLanes" type="D2LogicalModel:AffectedCarriagewayAndLanes" minOccurs="0" maxOccurs="unbounded" />
      <xs:element name="supplementaryPositionalDescriptionExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Target">
    <xs:annotation>
      <xs:documentation>The details of a DATEX II target client.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="address" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The IP address of a DATEX II target client.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="protocol" type="D2LogicalModel:String" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The exchange protocol used between the supplier and the client.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="targetExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="Time">
    <xs:annotation>
      <xs:documentation>An instant of time that recurs every day. The value space of time is the space of time of day values as defined in § 5.3 of [ISO 8601]. Specifically, it is a set of zero-duration daily time instances.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:time" />
  </xs:simpleType>
  <xs:complexType name="TimePeriodByHour">
    <xs:annotation>
      <xs:documentation>Specification of a continuous period within a 24 hour period by times.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TimePeriodOfDay">
        <xs:sequence>
          <xs:element name="startTimeOfPeriod" type="D2LogicalModel:Time" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>Start of time period.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="endTimeOfPeriod" type="D2LogicalModel:Time" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>End of time period.</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="timePeriodByHourExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TimePeriodOfDay" abstract="true">
    <xs:annotation>
      <xs:documentation>Specification of a continuous period of time within a 24 hour period.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="timePeriodOfDayExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="Tonnes">
    <xs:annotation>
      <xs:documentation>A measure of weight defined in metric tonnes.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="D2LogicalModel:Float" />
  </xs:simpleType>
  <xs:complexType name="TpegDescriptor" abstract="true">
    <xs:annotation>
      <xs:documentation>A collection of information providing descriptive references to locations using the TPEG-Loc location referencing approach.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="descriptor" type="D2LogicalModel:MultilingualString" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A text string which describes or elaborates the location.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="tpegDescriptorExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="TpegIlcPointDescriptor">
    <xs:annotation>
      <xs:documentation>A descriptor for describing a junction by defining the intersecting roads.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegPointDescriptor">
        <xs:sequence>
          <xs:element name="tpegIlcPointDescriptorType" type="D2LogicalModel:TpegLoc03IlcPointDescriptorSubtypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The nature of the descriptor used to define the location under consideration (derived from the TPEG Loc table 03).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tpegIlcPointDescriptorExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TpegJunctionPointDescriptor">
    <xs:annotation>
      <xs:documentation>A descriptor for describing a point at a junction on a road network.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegPointDescriptor">
        <xs:sequence>
          <xs:element name="tpegJunctionPointDescriptorType" type="D2LogicalModel:TpegLoc03JunctionPointDescriptorSubtypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The nature of the descriptor used to define the location under consideration (derived from the TPEG Loc table 03).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tpegJunctionPointDescriptorExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="TpegLoc03IlcPointDescriptorSubtypeEnum">
    <xs:annotation>
      <xs:documentation>Descriptors for describing a junction by identifying the intersecting roads at a road junction.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="tpegIlcName1">
        <xs:annotation>
          <xs:documentation>The name of the road on which the junction point is located.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tpegIlcName2">
        <xs:annotation>
          <xs:documentation>The name of the first intersecting road at the junction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tpegIlcName3">
        <xs:annotation>
          <xs:documentation>The name of the second intersecting road (if one exists) at the junction.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TpegLoc03JunctionPointDescriptorSubtypeEnum">
    <xs:annotation>
      <xs:documentation>Descriptors for describing a point at a road junction.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="junctionName">
        <xs:annotation>
          <xs:documentation>Name of a road network junction where two or more roads join.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TpegLoc03OtherPointDescriptorSubtypeEnum">
    <xs:annotation>
      <xs:documentation>Descriptors other than junction names and road descriptors which can help to identify the location of points on the road network.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="administrativeAreaName">
        <xs:annotation>
          <xs:documentation>Name of an administrative area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="administrativeReferenceName">
        <xs:annotation>
          <xs:documentation>Reference name by which an administrative area is known.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="airportName">
        <xs:annotation>
          <xs:documentation>Name of an airport.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="areaName">
        <xs:annotation>
          <xs:documentation>Name of an area.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="buildingName">
        <xs:annotation>
          <xs:documentation>Name of a building.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="busStopIdentifier">
        <xs:annotation>
          <xs:documentation>Identifier of a bus stop on the road network.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="busStopName">
        <xs:annotation>
          <xs:documentation>Name of a bus stop on the road network.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="canalName">
        <xs:annotation>
          <xs:documentation>Name of a canal.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="countyName">
        <xs:annotation>
          <xs:documentation>Name of a county (administrative sub-division).</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="ferryPortName">
        <xs:annotation>
          <xs:documentation>Name of a ferry port.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="intersectionName">
        <xs:annotation>
          <xs:documentation>Name of a road network intersection.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="lakeName">
        <xs:annotation>
          <xs:documentation>Name of a lake.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="linkName">
        <xs:annotation>
          <xs:documentation>Name of a road link.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="localLinkName">
        <xs:annotation>
          <xs:documentation>Local name of a road link.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="metroStationName">
        <xs:annotation>
          <xs:documentation>Name of a metro/underground station.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nationName">
        <xs:annotation>
          <xs:documentation>Name of a nation (e.g. Wales) which is a sub-division of a ISO recognised country.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="nonLinkedPointName">
        <xs:annotation>
          <xs:documentation>Name of a point on the road network which is not at a junction or intersection. </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="parkingFacilityName">
        <xs:annotation>
          <xs:documentation>Name of a parking facility.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pointName">
        <xs:annotation>
          <xs:documentation>Name of a specific point.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="pointOfInterestName">
        <xs:annotation>
          <xs:documentation>Name of a general point of interest.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="railwayStation">
        <xs:annotation>
          <xs:documentation>Name of a railway station.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="regionName">
        <xs:annotation>
          <xs:documentation>Name of a geographic region.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="riverName">
        <xs:annotation>
          <xs:documentation>Name of a river.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="seaName">
        <xs:annotation>
          <xs:documentation>Name of a sea.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="serviceAreaName">
        <xs:annotation>
          <xs:documentation>Name of a service area on a road network.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="tidalRiverName">
        <xs:annotation>
          <xs:documentation>Name of a river which is of a tidal nature.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="townName">
        <xs:annotation>
          <xs:documentation>Name of a town.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="other">
        <xs:annotation>
          <xs:documentation>Other than as defined in this enumeration.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="TpegOtherPointDescriptor">
    <xs:annotation>
      <xs:documentation>General descriptor for describing a point.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegPointDescriptor">
        <xs:sequence>
          <xs:element name="tpegOtherPointDescriptorType" type="D2LogicalModel:TpegLoc03OtherPointDescriptorSubtypeEnum" minOccurs="1" maxOccurs="1">
            <xs:annotation>
              <xs:documentation>The nature of the descriptor used to define the location under consideration (derived from the TPEG Loc table 03).</xs:documentation>
            </xs:annotation>
          </xs:element>
          <xs:element name="tpegOtherPointDescriptorExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:complexType name="TpegPointDescriptor" abstract="true">
    <xs:annotation>
      <xs:documentation>A descriptor for describing a point location.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:extension base="D2LogicalModel:TpegDescriptor">
        <xs:sequence>
          <xs:element name="tpegPointDescriptorExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
  <xs:simpleType name="UpdateMethodEnum">
    <xs:annotation>
      <xs:documentation>The types of updates of situations that may be requested by a client.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="allElementUpdate">
        <xs:annotation>
          <xs:documentation>The client has currently requested that all situation elements are sent when one or more component elements are updated.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="singleElementUpdate">
        <xs:annotation>
          <xs:documentation>The client has currently requested that only the individual elements of a situation that have changed are sent when updated.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="snapshot">
        <xs:annotation>
          <xs:documentation>The client has requested that all situations and their elements which are valid at the time of request be sent together, i.e. a snapshot in time of all valid situations.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="Url">
    <xs:annotation>
      <xs:documentation>A Uniform Resource Locator (URL) address comprising a compact string of characters for a resource available on the Internet.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:anyURI" />
  </xs:simpleType>
  <xs:complexType name="UrlLink">
    <xs:annotation>
      <xs:documentation>Details of a Uniform Resource Locator (URL) address pointing to a resource available on the Internet from where further relevant information may be obtained.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="urlLinkAddress" type="D2LogicalModel:Url" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>A Uniform Resource Locator (URL) address pointing to a resource available on the Internet from where further relevant information may be obtained.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="urlLinkDescription" type="D2LogicalModel:MultilingualString" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Description of the relevant information available on the Internet from the URL link.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="urlLinkExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="Validity">
    <xs:annotation>
      <xs:documentation>Specification of validity, either explicitly or by a validity time period specification which may be discontinuous.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="validityStatus" type="D2LogicalModel:ValidityStatusEnum" minOccurs="1" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>Specification of validity, either explicitly overriding the validity time specification or confirming it.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="overrunning" type="D2LogicalModel:Boolean" minOccurs="0" maxOccurs="1">
        <xs:annotation>
          <xs:documentation>The activity or action described by the SituationRecord is still in progress, overrunning its planned duration as indicated in a previous version of this record.</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="validityTimeSpecification" type="D2LogicalModel:OverallPeriod">
        <xs:annotation>
          <xs:documentation>A specification of periods of validity defined by overall bounding start and end times and the possible intersection of valid periods with exception periods (exception periods overriding valid periods).</xs:documentation>
        </xs:annotation>
      </xs:element>
      <xs:element name="validityExtension" type="D2LogicalModel:_ExtensionType" minOccurs="0" />
    </xs:sequence>
  </xs:complexType>
  <xs:simpleType name="ValidityStatusEnum">
    <xs:annotation>
      <xs:documentation>Values of validity status that can be assigned to a described event, action or item.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="active">
        <xs:annotation>
          <xs:documentation>The described event, action or item is currently active regardless of the definition of the validity time specification.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="suspended">
        <xs:annotation>
          <xs:documentation>The described event, action or item is currently suspended, that is inactive, regardless of the definition of the validity time specification.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="definedByValidityTimeSpec">
        <xs:annotation>
          <xs:documentation>The validity status of the described event, action or item is in accordance with the definition of the validity time specification.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:complexType name="VersionedReference">
    <xs:attribute name="id" type="xs:string" use="required" />
    <xs:attribute name="version" type="xs:string" use="required" />
  </xs:complexType>
  <xs:simpleType name="WeekOfMonthEnum">
    <xs:annotation>
      <xs:documentation>Weeks of the month.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
      <xs:enumeration value="firstWeekOfMonth">
        <xs:annotation>
          <xs:documentation>First week of the month.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="secondWeekOfMonth">
        <xs:annotation>
          <xs:documentation>Second week of the month.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="thirdWeekOfMonth">
        <xs:annotation>
          <xs:documentation>Third week of the month.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fourthWeekOfMonth">
        <xs:annotation>
          <xs:documentation>Fourth week of the month.</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="fifthWeekOfMonth">
        <xs:annotation>
          <xs:documentation>Fifth week of the month (at most only 3 days and non in February when not a leap year). </xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>