<?xml version="1.0" encoding="UTF-8"?>
<!-- Output of XML portions of the registry data into file: DSRC-Draft-02-00-36.xsd -->
<!-- Run on Mini-Edit [Version 3.1.500] -->
<!-- From node C:136-5448-3969 Created on 11/11/2009 at 6:24:24 PM  -->
<!-- Source DB File: \DSRC_36\Dsrc_rev036.ITS rendered into namespace: DSRC  -->
<!-- Edit namespaces to reflect the schema releases you will be using. -->
<!-- Place at: www.YourSite.xxx/ITSschemas/DSRC-02-00-36/dsrc-draft-02-00-36.xsd  -->
<!-- Production releases of ITS schemas can be found at:  -->
<!--  http://serv1.itsware.net/itsschemas/ReadMe.htm -->
 
 
<!--  --> 
<xs:schema targetNamespace="http://www.DSRC-Adopted-02-00-36" 
   xmlns="http://www.DSRC-Adopted-02-00-36" 
   xmlns:xs="http://www.w3.org/2001/XMLSchema" 
   
xmlns:ntcip="http://www.NTCIP-00-00-00"
xmlns:itis="http://www.ITIS-Adopted-04-00-03"
xmlns:local="http://www.DSRC-Local-02-00-36"

   elementFormDefault="unqualified" 
   attributeFormDefault="unqualified" 
   version="DRAFT">
<!-- add for each space you define: xmlns:$NAME$="http://www.$NAME$-$RELEASE_TYPE$-$REVISION_STRING$ -->
 

<xs:import namespace="http://www.NTCIP-00-00-00" schemaLocation="NTCIP-00-00-00.xsd"/>
<xs:import namespace="http://www.ITIS-Adopted-04-00-03" schemaLocation="ITIS-Adopted-04-00-03.xsd"/>
<xs:import namespace="http://www.DSRC-Local-02-00-36" schemaLocation="DSRC-Local-02-00-36.xsd"/>

 
<xs:annotation>
   <xs:documentation>
      Exported on: 10:17:55 AM Thursday, November 12, 2009 From file: C:\Documents and Settings\DavidK.MOM\My Documents\DSRC work\DSRC_36\Dsrc_rev036.ITS [By: Mini-Edit Rev 2.1.444] 
   </xs:documentation>
</xs:annotation>
 

 
<!-- Descriptive Name: MSG_A_la_Carte-ACM -->
<xs:element name="alaCarte" type="AlaCarte"/>
<xs:complexType name="AlaCarte" >
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <!-- the message type -->
         <xs:element name="data" type="AllInclusive" />
         <!-- any possible set of data items here -->
         <xs:element name="crc" type="MsgCRC"  minOccurs="0"/>
         <xs:element name="localAlaCarte" type="local:AlaCarte" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_BasicSafetyMessage-BSM -->
<xs:element name="basicSafetyMessage" type="BasicSafetyMessage"/>
<xs:complexType name="BasicSafetyMessage" >
      <xs:sequence>
         <!-- Part I -->
         <xs:element name="msgID" type="DSRCmsgID" />
         <!-- 1 byte
         Sent as a single octet blob -->
         <xs:element name="blob1" type="BSMblob" />
         <!-- The blob consists of the following 38 packed bytes:
          -->
         <!-- msgCnt      MsgCount,              -x- 1 byte
         id          TemporaryID,           -x- 4 bytes
         secMark     DSecond,               -x- 2 bytes
         pos      PositionLocal3D,
         lat       Latitude,              -x- 4 bytes
         long      Longitude,             -x- 4 bytes
         elev      Elevation,             -x- 2 bytes
         accuracy  PositionalAccuracy,    -x- 4 bytes
         motion   Motion,
         speed     TransmissionAndSpeed,  -x- 2 bytes
         heading   Heading,               -x- 2 byte
         angle     SteeringWheelAngle    -x- 1 bytes
         accelSet  AccelerationSet4Way,   -x- 7 bytes
         control  Control,
         brakes      BrakeSystemStatus,     -x- 2 bytes
         basic    VehicleBasic,
         size        VehicleSize,           -x- 3 bytes
         Part II,  sent as required
         Part II, -->
         <xs:element name="safetyExt" type="VehicleSafetyExtension"  minOccurs="0"/>
         <xs:element name="status" type="VehicleStatus"  minOccurs="0"/>
         <xs:element name="localBasicSafetyMessage" type="local:BasicSafetyMessage" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_BasicSafetyMessage_Verbose -->
<xs:element name="basicSafetyMessageVerbose" type="BasicSafetyMessageVerbose"/>
<xs:complexType name="BasicSafetyMessageVerbose" >
      <xs:sequence>
         <!-- Part I,  sent at all times -->
         <xs:element name="msgID" type="DSRCmsgID" />
         <!-- App ID value,  1 byte -->
         <xs:element name="msgCnt" type="MsgCount" />
         <!-- 1 byte -->
         <xs:element name="id" type="TemporaryID" />
         <!-- 4 bytes -->
         <xs:element name="secMark" type="DSecond" />
         <!-- 2 bytes
         pos      PositionLocal3D, -->
         <xs:element name="lat" type="Latitude" />
         <!-- 4 bytes -->
         <xs:element name="long" type="Longitude" />
         <!-- 4 bytes -->
         <xs:element name="elev" type="Elevation" />
         <!-- 2 bytes -->
         <xs:element name="accuracy" type="PositionalAccuracy" />
         <!-- 4 bytes
         motion   Motion, -->
         <xs:element name="speed" type="TransmissionAndSpeed" />
         <!-- 2 bytes -->
         <xs:element name="heading" type="Heading" />
         <!-- 2 bytes -->
         <xs:element name="angle" type="SteeringWheelAngle" />
         <!-- 1 bytes -->
         <xs:element name="accelSet" type="AccelerationSet4Way" />
         <!-- 7 bytes
         control  Control, -->
         <xs:element name="brakes" type="BrakeSystemStatus" />
         <!-- 2 bytes
         basic    VehicleBasic, -->
         <xs:element name="size" type="VehicleSize" />
         <!-- 3 bytes
         Part II,  sent as required
         Part II, -->
         <xs:element name="safetyExt" type="VehicleSafetyExtension"  minOccurs="0"/>
         <xs:element name="status" type="VehicleStatus"  minOccurs="0"/>
         <xs:element name="localBasicSafetyMessageVerbose" type="local:BasicSafetyMessageVerbose" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_CommonSafetyRequest-CSR -->
<xs:element name="commonSafetyRequest" type="CommonSafetyRequest"/>
<xs:complexType name="CommonSafetyRequest" >
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <xs:element name="msgCnt" type="MsgCount"  minOccurs="0"/>
         <xs:element name="id" type="TemporaryID"  minOccurs="0"/>
         <!-- Note: Uses the same request as probe management -->
         <xs:element name="requests" >
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="32">
                  <xs:element name="request" type="RequestedItem" />
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="localCommonSafetyRequest" type="local:CommonSafetyRequest" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_EmergencyVehicleAlert-EVA -->
<xs:element name="emergencyVehicleAlert" type="EmergencyVehicleAlert"/>
<xs:complexType name="EmergencyVehicleAlert" >
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <xs:element name="id" type="TemporaryID"  minOccurs="0"/>
         <xs:element name="rsaMsg" type="RoadSideAlert" />
         <!-- the DSRCmsgID inside this
         data frame is set as per the
         RoadSideAlert.  The CRC is
         set to a value of zero. -->
         <xs:element name="responseType" type="ResponseType"  minOccurs="0"/>
         <xs:element name="details" type="EmergencyDetails"  minOccurs="0"/>
         <!-- Combines these 3 items:
         SirenInUse,
         LightbarInUse,
         MultiVehicleReponse, -->
         <xs:element name="mass" type="VehicleMass"  minOccurs="0"/>
         <xs:element name="basicType" type="VehicleType"  minOccurs="0"/>
         <!-- gross size and axle cnt
         type of vehicle and agency when known -->
         <xs:element name="vehicleType" type="itis:VehicleGroupAffected"  minOccurs="0"/>
         <xs:element name="responseEquip" type="itis:IncidentResponseEquipment"  minOccurs="0"/>
         <xs:element name="responderType" type="itis:ResponderGroupAffected"  minOccurs="0"/>
         <xs:element name="crc" type="MsgCRC" />
         <xs:element name="localEmergencyVehicleAlert" type="local:EmergencyVehicleAlert" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_IntersectionCollisionAvoidance-ICA -->
<xs:element name="intersectionCollision" type="IntersectionCollision"/>
<xs:complexType name="IntersectionCollision" >
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <xs:element name="msgCnt" type="MsgCount" />
         <xs:element name="id" type="TemporaryID" />
         <xs:element name="secMark" type="DSecond"  minOccurs="0"/>
         <xs:element name="path" type="PathHistory" />
         <!-- a set of recent path histories -->
         <xs:element name="intersetionID" type="IntersectionID" />
         <!-- the applicable Intersection,  from the MAP-GID
         the best applicable movement,  from the MAP-GID -->
         <xs:element name="laneNumber" type="LaneNumber" />
         <!-- the best applicable Lane,  from the MAP-SPAT-GID
         zero sent if unknown -->
         <xs:element name="eventFlag" type="EventFlags" />
         <!-- used to convey vehicle Panic Events,
         Set to indicate &quot;Intersection Violation&quot; -->
         <xs:element name="localIntersectionCollision" type="local:IntersectionCollision" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_MapData-MAP -->
<xs:element name="mapData" type="MapData"/>
<xs:complexType name="MapData" >
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <xs:element name="msgCnt" type="MsgCount" />
         <xs:element name="name" type="DescriptiveName"  minOccurs="0"/>
         <xs:element name="layerType" type="LayerType"  minOccurs="0"/>
         <xs:element name="layerID" type="LayerID"  minOccurs="0"/>
         <xs:element name="intersections"  minOccurs="0">
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="32">
                  <xs:element name="intersection" type="Intersection" />
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <!-- other objects may be added at this layer,  tbd,
         this might become a nested CHOICE statement
         roadSegments    SEQUENCE  (SIZE (1..32) )  OF
         RoadSegments  OPTIONAL ,
         curveSegments   SEQUENCE  (SIZE (1..32) )  OF
         curveSegments  OPTIONAL ,
         wanted: some type of data frame describing how
         the data was determined/processed to go here -->
         <xs:element name="dataParameters" type="DataParameters"  minOccurs="0"/>
         <xs:element name="crc" type="MsgCRC" />
         <xs:element name="localMapData" type="local:MapData" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_NMEA_Corrections-NMEA -->
<xs:element name="nMEA-Corrections" type="NMEA-Corrections"/>
<xs:complexType name="NMEA-Corrections" >
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <xs:element name="rev" type="NMEA-Revision" />
         <!-- the specific edition of the standard
         that is being sent,  normally 2.0 -->
         <xs:element name="msg" type="NMEA-MsgType" />
         <!-- the message and sub-message type,  as
         defined in the revision being used
         NOTE as the message type is also in the payload, -->
         <xs:element name="wdCount" >
            <xs:simpleType>
               <xs:restriction base="xs:unsignedShort">
                  <xs:maxInclusive value="1023"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- a count of bytes to follow -->
         <xs:element name="payload" type="NMEA-Payload" />
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_ProbeDataManagement-PDM -->
<xs:element name="probeDataManagement" type="ProbeDataManagement"/>
<xs:complexType name="ProbeDataManagement" >
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <!-- This is a unique message
         identifier,  NOT related to
         the PSID\PSC -->
         <xs:element name="sample" type="Sample" />
         <!-- identifies vehicle
         population affected -->
         <xs:element name="directions" type="HeadingSlice" />
         <!-- Applicable headings/directions -->
         <xs:element name="term" >
            <xs:complexType>
               <xs:choice>
                  <xs:element name="termtime" type="TermTime" />
                  <!-- Terminate management process
                  based on Time-to-Live -->
                  <xs:element name="termDistance" type="TermDistance" />
                  <!-- Terminate management process
                  based on Distance-to-Live -->
               </xs:choice>
            </xs:complexType>
         </xs:element>
         <xs:element name="snapshot" >
            <xs:complexType>
               <xs:choice>
                  <xs:element name="snapshotTime" type="SnapshotTime" />
                  <!-- Collect snapshots based on time -->
                  <xs:element name="snapshotDistance" type="SnapshotDistance" />
                  <!-- Collect snapshots based on Distance -->
               </xs:choice>
            </xs:complexType>
         </xs:element>
         <xs:element name="txInterval" type="TxTime" />
         <!-- Time Interval at which to send snapshots -->
         <xs:element name="cntTthreshold" type="Count" />
         <!-- number of thresholds that will be changed -->
         <xs:element name="dataElements" >
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="32">
                  <xs:element name="dataElement" type="VehicleStatusRequest" />
                  <!-- a data frame and its assoc thresholds -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_ProbeVehicleData-PVD -->
<xs:element name="probeVehicleData" type="ProbeVehicleData"/>
<xs:complexType name="ProbeVehicleData" >
      <xs:annotation>
         <xs:documentation>       
            Est size about 64 bytes plus snapshot sizes  (about 12 per)
         </xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <!-- App ID value,  1 byte -->
         <xs:element name="segNum" type="ProbeSegmentNumber"  minOccurs="0"/>
         <!-- a short term Ident value
         not used when ident is used -->
         <xs:element name="probeID" type="VehicleIdent"  minOccurs="0"/>
         <!-- ident data for selected
         types of vehicles -->
         <xs:element name="startVector" type="FullPositionVector" />
         <!-- the space and time of
         transmission to the RSU -->
         <xs:element name="vehicleType" type="VehicleType" />
         <!-- type of vehicle,  1 byte -->
         <xs:element name="cntSnapshots" type="Count"  minOccurs="0"/>
         <!-- a count of how many snaphots
         type entries will follow -->
         <xs:element name="snapshots" >
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="32">
                  <xs:element name="snapshot" type="Snapshot" />
                  <!-- a seq of name-value pairs along with the space and time of the first measurement set -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="localProbeVehicleData" type="local:ProbeVehicleData" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_RoadSideAlert-RSA -->
<xs:element name="roadSideAlert" type="RoadSideAlert"/>
<xs:complexType name="RoadSideAlert" >
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <!-- the message type. -->
         <xs:element name="msgCnt" type="MsgCount" />
         <xs:element name="typeEvent" >
            <xs:simpleType> 
               <xs:restriction base ="itis:ITIScodes"/>
            </xs:simpleType> 
         </xs:element>
         <!-- a category and an item from that category
         all ITS stds use the same types here
         to explain the type of  the
         alert / danger / hazard involved
         two bytes in length -->
         <xs:element name="description"  minOccurs="0">
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="8">
                  <xs:element name="description-item" >
                     <xs:simpleType> 
                        <xs:restriction base ="itis:ITIScodes"/>
                     </xs:simpleType> 
                  </xs:element>
                  <!-- up to eight ITIS code entries to further describe the event,  give advice,  or any other ITIS codes up to 16 bytes in length -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="priority" type="Priority"  minOccurs="0"/>
         <!-- the urgency of this message,  a relative
         degree of merit compared with other
         similar messages for this type  (not other
         message being sent by the device) ,  nor a
         priority of display urgency
         one byte in length -->
         <xs:element name="heading" type="HeadingSlice"  minOccurs="0"/>
         <!-- Applicable headings/direction -->
         <xs:element name="extent" type="Extent"  minOccurs="0"/>
         <!-- the spatial distance over which this
         message applies and should be presented
         to the driver
         one byte in length -->
         <xs:element name="positon" type="FullPositionVector"  minOccurs="0"/>
         <!-- a compact summary of the position,
         heading,  rate of speed,  etc of the
         event in question. Including stationary
         and wide area events. -->
         <xs:element name="furtherInfoID" type="FurtherInfoID"  minOccurs="0"/>
         <!-- a link to any other incident
         information data that may be available
         in the normal ATIS incident description
         or other messages
         1~2 bytes in length -->
         <xs:element name="crc" type="MsgCRC" />
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_RTCM_Corrections-RTCM -->
<xs:element name="rTCM-Corrections" type="RTCM-Corrections"/>
<xs:complexType name="RTCM-Corrections" >
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <xs:element name="msgCnt" type="MsgCount" />
         <xs:element name="rev" type="RTCM-Revision" />
         <!-- the specific edition of the standard
         that is being sent -->
         <xs:element name="anchorPoint" type="FullPositionVector"  minOccurs="0"/>
         <!-- precise observer position,  if needed
         precise ant position and noise data -->
         <xs:element name="rtcmHeader" type="RTCMHeader" />
         <!-- octets of:
         status      GPSstatus
         antOffsets  AntennaOffsetSet (x, y, z)
         one or more RTCM messages -->
         <xs:element name="rtcmSets" >
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="5">
                  <xs:element name="rtcmSet" type="RTCMmsg" />
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="localRTCM-Corrections" type="local:RTCM-Corrections" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_SignalRequestMessage-SRM -->
<xs:element name="signalRequestMsg" type="SignalRequestMsg"/>
<xs:complexType name="SignalRequestMsg" >
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <xs:element name="msgCnt" type="MsgCount" />
         <!-- Request Data -->
         <xs:element name="request" type="SignalRequest" />
         <!-- the specific request to the intersection
         contains IntersectionID,  cancel flags,
         requested action,    OPTIONAL   lanes data -->
         <xs:element name="timeOfService" type="DTime"  minOccurs="0"/>
         <!-- the time in the near future when service is
         requested to start -->
         <xs:element name="endOfService" type="DTime"  minOccurs="0"/>
         <!-- the time in the near future when service is
         requested to end -->
         <xs:element name="transitStatus" type="TransitStatus"  minOccurs="0"/>
         <!-- additional information pertaining
         to transit events
         User Data -->
         <xs:element name="vehicleVIN" type="VehicleIdent"  minOccurs="0"/>
         <!-- a set of unique strings to identify the requesting vehicle -->
         <xs:element name="vehicleData" type="BSMblob" />
         <!-- current position data about the vehicle -->
         <xs:element name="status" type="VehicleRequestStatus"  minOccurs="0"/>
         <!-- current status data about the vehicle -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_SignalStatusMessage-SSM -->
<xs:element name="signalStatusMessage" type="SignalStatusMessage"/>
<xs:complexType name="SignalStatusMessage" >
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <xs:element name="msgCnt" type="MsgCount" />
         <xs:element name="id" type="IntersectionID" />
         <!-- this provides a unique mapping to the
         intersection map in question
         which provides complete location
         and approach/move/lane data
         as well as zones for priority/preemption -->
         <xs:element name="status" type="IntersectionStatusObject" />
         <!-- general status of the signal controller -->
         <xs:element name="priority"  minOccurs="0">
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="7">
                  <xs:element name="priority-item" type="SignalState" />
                  <!-- all active priority state data is found here -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="priorityCause" type="VehicleIdent"  minOccurs="0"/>
         <!-- vehicle that requested
         the current priority -->
         <xs:element name="prempt"  minOccurs="0">
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="7">
                  <xs:element name="prempt-item" type="SignalState" />
                  <!-- all active preemption state data is found here -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="preemptCause" type="VehicleIdent"  minOccurs="0"/>
         <!-- vehicle that requested
         the current preempt -->
         <xs:element name="transitStatus" type="TransitStatus"  minOccurs="0"/>
         <!-- additional information pertaining
         to transit event,  if that is the active event -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_SignalPhaseAndTiming-Message-SPAT -->
<xs:element name="sPAT" type="SPAT"/>
<xs:complexType name="SPAT" >
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <xs:element name="name" type="DescriptiveName"  minOccurs="0"/>
         <!-- human readable name for this collection
         to be used only in debug mode -->
         <xs:element name="intersections" >
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="32">
                  <xs:element name="intersection" type="IntersectionState" />
                  <!-- sets of SPAT data  (one per intersection) -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="localSPAT" type="local:SPAT" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: MSG_TravelerInformation-Message-TIM -->
<xs:element name="travelerInformation" type="TravelerInformation"/>
<xs:complexType name="TravelerInformation" >
      <xs:sequence>
         <xs:element name="msgID" type="DSRCmsgID" />
         <xs:element name="packetID" type="UniqueMSGID"  minOccurs="0"/>
         <xs:element name="urlB" type="URL-Base"  minOccurs="0"/>
         <xs:element name="dataFrameCount" type="Count"  minOccurs="0"/>
         <xs:element name="dataFrames" >
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="8">
                  <xs:element name="dataFrame" >
                     <xs:complexType>
                        <xs:sequence>
                           <!-- Part I,  Frame header -->
                           <xs:element name="frameType" type="TravelerInfoType" />
                           <!-- (enum,  advisory or road sign) -->
                           <xs:element name="msgId" >
                              <xs:complexType>
                                 <xs:choice>
                                    <xs:element name="furtherInfoID" type="FurtherInfoID" />
                                    <!-- links to ATIS msg -->
                                    <xs:element name="roadSignID" type="RoadSignID" />
                                    <!-- an ID to other data -->
                                 </xs:choice>
                              </xs:complexType>
                           </xs:element>
                           <xs:element name="startYear" type="DYear"  minOccurs="0"/>
                           <!-- Current year used if missing -->
                           <xs:element name="startTime" type="MinuteOfTheYear" />
                           <xs:element name="duratonTime" type="MinutesDuration" />
                           <xs:element name="priority" type="SignPrority" />
                           <!-- Part II,  Applicable Regions of Use -->
                           <xs:element name="commonAnchor" type="Position3D"  minOccurs="0"/>
                           <!-- a shared anchorpoint -->
                           <xs:element name="commonLaneWidth" type="LaneWidth"  minOccurs="0"/>
                           <!-- a shared lane width -->
                           <xs:element name="commonDirectionality" type="DirectionOfUse"  minOccurs="0"/>
                           <!-- a shared direction of use -->
                           <xs:element name="regions" >
                              <xs:complexType>
                                 <xs:sequence minOccurs="1" maxOccurs="16">
                                    <xs:element name="region" type="ValidRegion" />
                                 </xs:sequence>
                              </xs:complexType>
                           </xs:element>
                           <!-- Part III,  Content -->
                           <xs:choice >
                              <xs:element name="advisory" type="itis:ITIScodesAndText" />
                              <!-- typical ITIS warnings -->
                              <xs:element name="workZone" type="WorkZone" />
                              <!-- work zone signs and directions -->
                              <xs:element name="genericSign" type="GenericSignage" />
                              <!-- MUTCD signs and directions -->
                              <xs:element name="speedLimit" type="SpeedLimit" />
                              <!-- speed limits and cautions -->
                              <xs:element name="exitService" type="ExitService" />
                              <!-- roadside avaiable services
                              other types may be added in future revisions -->
                           </xs:choice>
                           <xs:element name="url" type="URL-Short"  minOccurs="0"/>
                           <!-- May link to image or other content -->
                        </xs:sequence>
                     </xs:complexType>
                  </xs:element>
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="crc" type="MsgCRC" />
         <xs:element name="localTravelerInformation" type="local:TravelerInformation" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
  
 
<!-- Descriptive Name: DF_AccelerationSet4Way -->
<xs:complexType name="AccelerationSet4Way" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            composed of the following:
            SEQUENCE  {
            long Acceleration,           -x- Along the Vehicle Longitudinal axis
            lat  Acceleration,           -x- Along the Vehicle Lateral axis
            vert VerticalAcceleration,   -x- Along the Vehicle Vertical axis
            yaw  YawRate
            }
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="AccelerationSet4Way-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="AccelerationSet4Way-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="10"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_AccelSteerYawRateConfidence -->
<xs:complexType name="AccelSteerYawRateConfidence" >
      <xs:sequence>
         <xs:element name="yawRate" type="YawRateConfidence" />
         <!-- 3 bits -->
         <xs:element name="acceleration" type="AccelerationConfidence" />
         <!-- 3 bits -->
         <xs:element name="steeringWheelAngle" type="SteeringWheelAngleConfidence" />
         <!-- 2 bits -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_AllInclusive -->
<xs:complexType name="AllInclusive" >
      <xs:sequence>
         <!-- Data Frame Items -->
         <xs:element name="item6-1" type="AccelerationSet4Way"  minOccurs="0"/>
         <xs:element name="item6-2" type="AccelSteerYawRateConfidence"  minOccurs="0"/>
         <!-- item6-3     AllInclusive                             OPTIONAL , -->
         <xs:element name="item6-4" type="AntennaOffsetSet"  minOccurs="0"/>
         <xs:element name="item6-5" type="Approach"  minOccurs="0"/>
         <xs:element name="item6-6" type="ApproachObject"  minOccurs="0"/>
         <xs:element name="item6-7" type="BarrierLane"  minOccurs="0"/>
         <xs:element name="item6-8" type="BrakeSystemStatus"  minOccurs="0"/>
         <xs:element name="item6-9" type="BSMblob"  minOccurs="0"/>
         <xs:element name="item6-10" type="BumperHeights"  minOccurs="0"/>
         <xs:element name="item6-11" type="Circle"  minOccurs="0"/>
         <xs:element name="item6-12" type="ConfidenceSet"  minOccurs="0"/>
         <xs:element name="item6-13" type="ConnectsTo"  minOccurs="0"/>
         <xs:element name="item6-14" type="CrosswalkLane"  minOccurs="0"/>
         <xs:element name="item6-15" type="DataParameters"  minOccurs="0"/>
         <xs:element name="item6-16" type="DDate"  minOccurs="0"/>
         <xs:element name="item6-17" type="DDateTime"  minOccurs="0"/>
         <xs:element name="item6-18" type="DFullTime"  minOccurs="0"/>
         <xs:element name="item6-19" type="DMonthDay"  minOccurs="0"/>
         <xs:element name="item6-20" type="DTime"  minOccurs="0"/>
         <xs:element name="item6-21" type="DYearMonth"  minOccurs="0"/>
         <xs:element name="item6-22" type="FullPositionVector"  minOccurs="0"/>
         <xs:element name="item6-23" type="Intersection"  minOccurs="0"/>
         <xs:element name="item6-24" type="IntersectionState"  minOccurs="0"/>
         <xs:element name="item6-25" type="ExitService"  minOccurs="0"/>
         <xs:element name="item6-26" type="GenericSignage"  minOccurs="0"/>
         <xs:element name="item6-27" type="SpeedLimit"  minOccurs="0"/>
         <xs:element name="item6-28" type="WorkZone"  minOccurs="0"/>
         <xs:element name="item6-29" type="J1939data"  minOccurs="0"/>
         <xs:element name="item6-30" type="MovementState"  minOccurs="0"/>
         <xs:element name="item6-31" type="NodeList"  minOccurs="0"/>
         <xs:element name="item6-32" type="Offsets"  minOccurs="0"/>
         <xs:element name="item6-33" type="PathHistory"  minOccurs="0"/>
         <xs:element name="item6-34" type="PathHistoryPointType-01"  minOccurs="0"/>
         <xs:element name="item6-35" type="PathHistoryPointType-02"  minOccurs="0"/>
         <xs:element name="item6-36" type="PathHistoryPointType-03"  minOccurs="0"/>
         <xs:element name="item6-37" type="PathHistoryPointType-04"  minOccurs="0"/>
         <xs:element name="item6-38" type="PathHistoryPointType-05"  minOccurs="0"/>
         <xs:element name="item6-39" type="PathHistoryPointType-06"  minOccurs="0"/>
         <xs:element name="item6-40" type="PathHistoryPointType-07"  minOccurs="0"/>
         <xs:element name="item6-41" type="PathHistoryPointType-08"  minOccurs="0"/>
         <xs:element name="item6-42" type="PathHistoryPointType-09"  minOccurs="0"/>
         <xs:element name="item6-43" type="PathHistoryPointType-10"  minOccurs="0"/>
         <xs:element name="item6-44" type="PathPrediction"  minOccurs="0"/>
         <xs:element name="item6-45" type="Position3D"  minOccurs="0"/>
         <xs:element name="item6-46" type="PositionalAccuracy"  minOccurs="0"/>
         <xs:element name="item6-47" type="PositionConfidenceSet"  minOccurs="0"/>
         <xs:element name="item6-48" type="RegionList"  minOccurs="0"/>
         <xs:element name="item6-49" type="RegionOffsets"  minOccurs="0"/>
         <xs:element name="item6-50" type="RegionPointSet"  minOccurs="0"/>
         <xs:element name="item6-51" type="RoadSignID"  minOccurs="0"/>
         <xs:element name="item6-52" type="RTCMHeader"  minOccurs="0"/>
         <xs:element name="item6-53" type="RTCMmsg"  minOccurs="0"/>
         <xs:element name="item6-54" type="RTCMPackage"  minOccurs="0"/>
         <xs:element name="item6-55" type="Sample"  minOccurs="0"/>
         <xs:element name="item6-56" type="ShapePointSet"  minOccurs="0"/>
         <xs:element name="item6-57" type="SignalControlZone"  minOccurs="0"/>
         <xs:element name="item6-58" type="SignalRequest"  minOccurs="0"/>
         <xs:element name="item6-59" type="SnapshotDistance"  minOccurs="0"/>
         <xs:element name="item6-60" type="Snapshot"  minOccurs="0"/>
         <xs:element name="item6-61" type="SnapshotTime"  minOccurs="0"/>
         <xs:element name="item6-62" type="SpecialLane"  minOccurs="0"/>
         <xs:element name="item6-63" type="SpeedandHeadingandThrottleConfidence"  minOccurs="0"/>
         <xs:element name="item6-64" type="TransmissionAndSpeed"  minOccurs="0"/>
         <xs:element name="item6-65" type="ValidRegion"  minOccurs="0"/>
         <xs:element name="item6-66" type="VehicleComputedLane"  minOccurs="0"/>
         <xs:element name="item6-67" type="VehicleIdent"  minOccurs="0"/>
         <xs:element name="item6-68" type="VehicleReferenceLane"  minOccurs="0"/>
         <xs:element name="item6-69" type="VehicleSafetyExtension"  minOccurs="0"/>
         <xs:element name="item6-70" type="VehicleSize"  minOccurs="0"/>
         <xs:element name="item6-71" type="VehicleStatusRequest"  minOccurs="0"/>
         <xs:element name="item6-72" type="VehicleStatus"  minOccurs="0"/>
         <xs:element name="item6-73" type="WiperStatus"  minOccurs="0"/>
         <!-- Data Element Items -->
         <xs:element name="item7-1" type="Acceleration"  minOccurs="0"/>
         <xs:element name="item7-2" type="AccelerationConfidence"  minOccurs="0"/>
         <xs:element name="item7-3" type="AmbientAirPressure"  minOccurs="0"/>
         <xs:element name="item7-4" type="AmbientAirTemperature"  minOccurs="0"/>
         <xs:element name="item7-5" type="AntiLockBrakeStatus"  minOccurs="0"/>
         <xs:element name="item7-6" type="ApproachNumber"  minOccurs="0"/>
         <xs:element name="item7-7" type="AuxiliaryBrakeStatus"  minOccurs="0"/>
         <xs:element name="item7-8" type="BarrierAttributes"  minOccurs="0"/>
         <xs:element name="item7-9" type="BrakeAppliedPressure"  minOccurs="0"/>
         <xs:element name="item7-10" type="BrakeAppliedStatus"  minOccurs="0"/>
         <xs:element name="item7-11" type="BrakeBoostApplied"  minOccurs="0"/>
         <xs:element name="item7-12" type="BumperHeightFront"  minOccurs="0"/>
         <xs:element name="item7-13" type="BumperHeightRear"  minOccurs="0"/>
         <xs:element name="item7-14" type="CodeWord"  minOccurs="0"/>
         <xs:element name="item7-15" type="CoefficientOfFriction"  minOccurs="0"/>
         <xs:element name="item7-16" type="ColorState"  minOccurs="0"/>
         <xs:element name="item7-17" type="Count"  minOccurs="0"/>
         <xs:element name="item7-18" type="CrosswalkLaneAttributes"  minOccurs="0"/>
         <xs:element name="item7-19" type="DDay"  minOccurs="0"/>
         <xs:element name="item7-20" type="DescriptiveName"  minOccurs="0"/>
         <xs:element name="item7-21" type="DHour"  minOccurs="0"/>
         <xs:element name="item7-22" type="DirectionOfUse"  minOccurs="0"/>
         <xs:element name="item7-23" type="DMinute"  minOccurs="0"/>
         <xs:element name="item7-24" type="DMonth"  minOccurs="0"/>
         <xs:element name="item7-25" type="DOffset"  minOccurs="0"/>
         <xs:element name="item7-26" type="DrivenLineOffset"  minOccurs="0"/>
         <xs:element name="item7-27" type="DrivingWheelAngle"  minOccurs="0"/>
         <xs:element name="item7-28" type="DSecond"  minOccurs="0"/>
         <xs:element name="item7-29" type="DSignalSeconds"  minOccurs="0"/>
         <xs:element name="item7-30" type="DSRCmsgID"  minOccurs="0"/>
         <xs:element name="item7-31" type="DYear"  minOccurs="0"/>
         <xs:element name="item7-32" type="ElevationConfidence"  minOccurs="0"/>
         <xs:element name="item7-33" type="Elevation"  minOccurs="0"/>
         <xs:element name="item7-34" type="EmergencyDetails"  minOccurs="0"/>
         <xs:element name="item7-35" type="EventFlags"  minOccurs="0"/>
         <xs:element name="item7-36" type="Extent"  minOccurs="0"/>
         <xs:element name="item7-37" type="ExteriorLights"  minOccurs="0"/>
         <xs:element name="item7-38" type="FurtherInfoID"  minOccurs="0"/>
         <xs:element name="item7-39" type="GPSstatus"  minOccurs="0"/>
         <xs:element name="item7-40" type="HeadingConfidence"  minOccurs="0"/>
         <xs:element name="item7-41" type="Heading"  minOccurs="0"/>
         <xs:element name="item7-42" type="HeadingSlice"  minOccurs="0"/>
         <xs:element name="item7-43" type="IntersectionStatusObject"  minOccurs="0"/>
         <xs:element name="item7-44" type="IntersectionID"  minOccurs="0"/>
         <xs:element name="item7-45" type="AxleLocation"  minOccurs="0"/>
         <xs:element name="item7-46" type="AxleWeight"  minOccurs="0"/>
         <xs:element name="item7-47" type="CargoWeight"  minOccurs="0"/>
         <xs:element name="item7-48" type="DriveAxleLiftAirPressure"  minOccurs="0"/>
         <xs:element name="item7-49" type="DriveAxleLocation"  minOccurs="0"/>
         <xs:element name="item7-50" type="DriveAxleLubePressure"  minOccurs="0"/>
         <xs:element name="item7-51" type="DriveAxleTemperature"  minOccurs="0"/>
         <xs:element name="item7-52" type="SteeringAxleLubePressure"  minOccurs="0"/>
         <xs:element name="item7-53" type="SteeringAxleTemperature"  minOccurs="0"/>
         <xs:element name="item7-54" type="TireLeakageRate"  minOccurs="0"/>
         <xs:element name="item7-55" type="TireLocation"  minOccurs="0"/>
         <xs:element name="item7-56" type="TirePressureThresholdDetection"  minOccurs="0"/>
         <xs:element name="item7-57" type="TirePressure"  minOccurs="0"/>
         <xs:element name="item7-58" type="TireTemp"  minOccurs="0"/>
         <xs:element name="item7-59" type="TrailerWeight"  minOccurs="0"/>
         <xs:element name="item7-60" type="WheelEndElectFault"  minOccurs="0"/>
         <xs:element name="item7-61" type="WheelSensorStatus"  minOccurs="0"/>
         <xs:element name="item7-62" type="LaneCount"  minOccurs="0"/>
         <xs:element name="item7-63" type="LaneManeuverCode"  minOccurs="0"/>
         <xs:element name="item7-64" type="LaneNumber"  minOccurs="0"/>
         <xs:element name="item7-65" type="LaneSet"  minOccurs="0"/>
         <xs:element name="item7-66" type="LaneWidth"  minOccurs="0"/>
         <xs:element name="item7-67" type="Latitude"  minOccurs="0"/>
         <xs:element name="item7-68" type="LayerID"  minOccurs="0"/>
         <xs:element name="item7-69" type="LayerType"  minOccurs="0"/>
         <xs:element name="item7-70" type="LightbarInUse"  minOccurs="0"/>
         <xs:element name="item7-71" type="Longitude"  minOccurs="0"/>
         <xs:element name="item7-72" type="Location-quality"  minOccurs="0"/>
         <xs:element name="item7-73" type="Location-tech"  minOccurs="0"/>
         <xs:element name="item7-74" type="MinuteOfTheYear"  minOccurs="0"/>
         <xs:element name="item7-75" type="MinutesDuration"  minOccurs="0"/>
         <xs:element name="item7-76" type="MsgCount"  minOccurs="0"/>
         <xs:element name="item7-77" type="MsgCRC"  minOccurs="0"/>
         <xs:element name="item7-78" type="MultiVehicleResponse"  minOccurs="0"/>
         <xs:element name="item7-79" type="MUTCDCode"  minOccurs="0"/>
         <xs:element name="item7-80" type="NMEA-MsgType"  minOccurs="0"/>
         <xs:element name="item7-81" type="NMEA-Payload"  minOccurs="0"/>
         <xs:element name="item7-82" type="NMEA-Revision"  minOccurs="0"/>
         <xs:element name="item7-83" type="NTCIPVehicleclass"  minOccurs="0"/>
         <xs:element name="item7-84" type="ObjectCount"  minOccurs="0"/>
         <xs:element name="item7-85" type="ObstacleDirection"  minOccurs="0"/>
         <xs:element name="item7-86" type="ObstacleDistance"  minOccurs="0"/>
         <xs:element name="item7-87" type="PayloadData"  minOccurs="0"/>
         <xs:element name="item7-88" type="Payload"  minOccurs="0"/>
         <xs:element name="item7-89" type="PedestrianDetect"  minOccurs="0"/>
         <xs:element name="item7-90" type="PedestrianSignalState"  minOccurs="0"/>
         <xs:element name="item7-91" type="PositionConfidence"  minOccurs="0"/>
         <xs:element name="item7-92" type="PreemptState"  minOccurs="0"/>
         <xs:element name="item7-93" type="Priority"  minOccurs="0"/>
         <xs:element name="item7-94" type="PriorityState"  minOccurs="0"/>
         <xs:element name="item7-95" type="ProbeSegmentNumber"  minOccurs="0"/>
         <xs:element name="item7-96" type="RainSensor"  minOccurs="0"/>
         <xs:element name="item7-97" type="RequestedItem"  minOccurs="0"/>
         <xs:element name="item7-98" type="ResponseType"  minOccurs="0"/>
         <xs:element name="item7-99" type="RTCM-ID"  minOccurs="0"/>
         <xs:element name="item7-100" type="RTCM-Payload"  minOccurs="0"/>
         <xs:element name="item7-101" type="RTCM-Revision"  minOccurs="0"/>
         <xs:element name="item7-102" type="SignalLightState"  minOccurs="0"/>
         <xs:element name="item7-103" type="SignalReqScheme"  minOccurs="0"/>
         <xs:element name="item7-104" type="SignalState"  minOccurs="0"/>
         <xs:element name="item7-105" type="SignPrority"  minOccurs="0"/>
         <xs:element name="item7-106" type="SirenInUse"  minOccurs="0"/>
         <xs:element name="item7-107" type="SpecialLaneAttributes"  minOccurs="0"/>
         <xs:element name="item7-108" type="SpecialSignalState"  minOccurs="0"/>
         <xs:element name="item7-109" type="SpeedConfidence"  minOccurs="0"/>
         <xs:element name="item7-110" type="Speed"  minOccurs="0"/>
         <xs:element name="item7-111" type="StabilityControlStatus"  minOccurs="0"/>
         <xs:element name="item7-112" type="StateConfidence"  minOccurs="0"/>
         <xs:element name="item7-113" type="SteeringWheelAngleConfidence"  minOccurs="0"/>
         <xs:element name="item7-114" type="SteeringWheelAngleRateOfChange"  minOccurs="0"/>
         <xs:element name="item7-115" type="SteeringWheelAngle"  minOccurs="0"/>
         <xs:element name="item7-116" type="SunSensor"  minOccurs="0"/>
         <xs:element name="item7-117" type="TemporaryID"  minOccurs="0"/>
         <xs:element name="item7-118" type="TermDistance"  minOccurs="0"/>
         <xs:element name="item7-119" type="TermTime"  minOccurs="0"/>
         <xs:element name="item7-120" type="ThrottleConfidence"  minOccurs="0"/>
         <xs:element name="item7-121" type="ThrottlePosition"  minOccurs="0"/>
         <xs:element name="item7-122" type="TimeConfidence"  minOccurs="0"/>
         <xs:element name="item7-123" type="TimeMark"  minOccurs="0"/>
         <xs:element name="item7-124" type="TractionControlState"  minOccurs="0"/>
         <xs:element name="item7-125" type="TransitPreEmptionRequest"  minOccurs="0"/>
         <xs:element name="item7-126" type="TransitStatus"  minOccurs="0"/>
         <xs:element name="item7-127" type="TransmissionState"  minOccurs="0"/>
         <xs:element name="item7-128" type="TxTime"  minOccurs="0"/>
         <xs:element name="item7-129" type="TravelerInfoType"  minOccurs="0"/>
         <xs:element name="item7-130" type="UniqueMSGID"  minOccurs="0"/>
         <xs:element name="item7-131" type="URL-Base"  minOccurs="0"/>
         <xs:element name="item7-132" type="URL-Link"  minOccurs="0"/>
         <xs:element name="item7-133" type="URL-Short"  minOccurs="0"/>
         <xs:element name="item7-134" type="VehicleHeight"  minOccurs="0"/>
         <xs:element name="item7-135" type="VehicleLaneAttributes"  minOccurs="0"/>
         <xs:element name="item7-136" type="VehicleLength"  minOccurs="0"/>
         <xs:element name="item7-137" type="VehicleMass"  minOccurs="0"/>
         <xs:element name="item7-138" type="VehicleRequestStatus"  minOccurs="0"/>
         <xs:element name="item7-139" type="VehicleStatusDeviceTypeTag"  minOccurs="0"/>
         <xs:element name="item7-140" type="VehicleType"  minOccurs="0"/>
         <xs:element name="item7-141" type="VehicleWidth"  minOccurs="0"/>
         <xs:element name="item7-142" type="VerticalAccelerationThreshold"  minOccurs="0"/>
         <xs:element name="item7-143" type="VerticalAcceleration"  minOccurs="0"/>
         <xs:element name="item7-144" type="VINstring"  minOccurs="0"/>
         <xs:element name="item7-145" type="WiperRate"  minOccurs="0"/>
         <xs:element name="item7-146" type="WiperStatusFront"  minOccurs="0"/>
         <xs:element name="item7-147" type="WiperStatusRear"  minOccurs="0"/>
         <xs:element name="item7-148" type="YawRateConfidence"  minOccurs="0"/>
         <xs:element name="item7-149" type="YawRate"  minOccurs="0"/>
         <!-- External Items -->
         <xs:element name="item8-1" type="itis:IncidentResponseEquipment"  minOccurs="0"/>
         <xs:element name="item8-2" type="itis:ITIStext"  minOccurs="0"/>
         <xs:element name="item8-3" type="itis:ResponderGroupAffected"  minOccurs="0"/>
         <xs:element name="item8-4" type="itis:VehicleGroupAffected"  minOccurs="0"/>
         <xs:element name="item8-5" type="itis:ITIScodesAndText"  minOccurs="0"/>
         <xs:element name="item8-6" type="ntcip:EssMobileFriction"  minOccurs="0"/>
         <xs:element name="item8-7" type="ntcip:EssPrecipRate"  minOccurs="0"/>
         <xs:element name="item8-8" type="ntcip:EssPrecipSituation"  minOccurs="0"/>
         <xs:element name="item8-9" type="ntcip:EssPrecipYesNo"  minOccurs="0"/>
         <xs:element name="item8-10" type="ntcip:EssSolarRadiation"  minOccurs="0"/>
         <xs:element name="item8-11" type="itis:ITIScodes"  minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_AntennaOffsetSet -->
<xs:complexType name="AntennaOffsetSet" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            defined as:
            SEQUENCE  {
            antOffsetX  INTEGER  (-8191..8191) ,
            14 bits in length
            units of 1cm from center
            8191 to be used for unavailable
            antOffsetY  INTEGER  (-255..255) ,
            9 bits in length
            units of 1cm from center
            255 to be used for unavailable
            antOffsetZ  INTEGER  (0..511)
            9 bits in length
            units of 1cm from ground
            511 to be used for unavailable
            }
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="AntennaOffsetSet-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="AntennaOffsetSet-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="6"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_Approach -->
<xs:complexType name="Approach" >
      <xs:sequence>
         <xs:element name="name" type="DescriptiveName"  minOccurs="0"/>
         <xs:element name="id" type="ApproachNumber"  minOccurs="0"/>
         <xs:element name="drivingLanes"  minOccurs="0">
            <xs:complexType>
               <xs:sequence minOccurs="0" maxOccurs="32">
                  <xs:element name="drivingLane" type="VehicleReferenceLane" />
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="computedLanes"  minOccurs="0">
            <xs:complexType>
               <xs:sequence minOccurs="0" maxOccurs="32">
                  <xs:element name="computedLane" type="VehicleComputedLane" />
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="trainsAndBuses"  minOccurs="0">
            <xs:complexType>
               <xs:sequence minOccurs="0" maxOccurs="32">
                  <xs:element name="trainsAndBuse" type="SpecialLane" />
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="barriers"  minOccurs="0">
            <xs:complexType>
               <xs:sequence minOccurs="0" maxOccurs="32">
                  <xs:element name="barrier" type="BarrierLane" />
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="crosswalks"  minOccurs="0">
            <xs:complexType>
               <xs:sequence minOccurs="0" maxOccurs="32">
                  <xs:element name="crosswalk" type="CrosswalkLane" />
               </xs:sequence>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_ApproachesObject -->
<xs:complexType name="ApproachObject" >
      <xs:sequence>
         <xs:element name="refPoint" type="Position3D"  minOccurs="0"/>
         <!-- OPTIONAL   reference from which subsequent
         data points in this link are offset -->
         <xs:element name="laneWidth" type="LaneWidth"  minOccurs="0"/>
         <!-- reference width used by subsequent
         lanes until a new width is given -->
         <xs:element name="approach" type="Approach"  minOccurs="0"/>
         <!-- list of Approaches and their lanes -->
         <xs:element name="egress" type="Approach"  minOccurs="0"/>
         <!-- list of Egresses and thier lanes -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_BarrierLane -->
<xs:complexType name="BarrierLane" >
      <xs:sequence>
         <xs:element name="laneNumber" type="LaneNumber" />
         <xs:element name="laneWidth" type="LaneWidth"  minOccurs="0"/>
         <xs:element name="barrierAttributes" type="BarrierAttributes" />
         <xs:element name="nodeList" type="NodeList" />
         <!-- path details of the Barrier -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_BrakeSystemStatus -->
<xs:complexType name="BrakeSystemStatus" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            Encoded with the packed content of:
            SEQUENCE  {
            wheelBrakes        BrakeAppliedStatus,
            -x- 4 bits
            wheelBrakesUnavailable  BOOL
            -x- 1 bit  (1=true)
            spareBit
            -x- 1 bit,  set to zero
            traction           TractionControlState,
            -x- 2 bits
            abs                AntiLockBrakeStatus,
            -x- 2 bits
            scs                StabilityControlStatus,
            -x- 2 bits
            brakeBoost         BrakeBoostApplied,
            -x- 2 bits
            auxBrakes          AuxiliaryBrakeStatus,
            -x- 2 bits
            }
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="BrakeSystemStatus-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="BrakeSystemStatus-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="3"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_BSM_Blob -->
<xs:complexType name="BSMblob" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            made up of the following 38 packed bytes:
            msgCnt      MsgCount,              -x- 1 byte
            id          TemporaryID,           -x- 4 bytes
            secMark     DSecond,               -x- 2 bytes
            lat         Latitude,              -x- 4 bytes
            long        Longitude,             -x- 4 bytes
            elev        Elevation,             -x- 2 bytes
            accuracy    PositionalAccuracy,    -x- 4 bytes
            speed       TransmissionAndSpeed,  -x- 2 bytes
            heading     Heading,               -x- 2 byte
            angle       SteeringWheelAngle    -x- 1 byte
            accelSet    AccelerationSet4Way,   -x- accel set  (four way)  7 bytes
            brakes      BrakeSystemStatus,     -x- 2 bytes
            size        VehicleSize,           -x- 3 bytes
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="BSMblob-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="BSMblob-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="51"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_BumperHeights -->
<xs:complexType name="BumperHeights" >
      <xs:sequence>
         <xs:element name="frnt" type="BumperHeightFront" />
         <xs:element name="rear" type="BumperHeightRear" />
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_Circle -->
<xs:complexType name="Circle" >
      <xs:sequence>
         <xs:element name="center" type="Position3D" />
         <xs:choice >
            <xs:element name="radiusSteps" >
               <xs:simpleType>
                  <xs:restriction base="xs:unsignedShort">
                     <xs:maxInclusive value="32767"/>
                  </xs:restriction>
               </xs:simpleType>
            </xs:element>
            <!-- in unsigned values where
            the LSB is in units of 2.5 cm -->
            <xs:element name="miles" >
               <xs:simpleType>
                  <xs:restriction base="xs:unsignedShort">
                     <xs:minInclusive value="1"/>
                     <xs:maxInclusive value="2000"/>
                  </xs:restriction>
               </xs:simpleType>
            </xs:element>
            <xs:element name="km" >
               <xs:simpleType>
                  <xs:restriction base="xs:unsignedShort">
                     <xs:minInclusive value="1"/>
                     <xs:maxInclusive value="5000"/>
                  </xs:restriction>
               </xs:simpleType>
            </xs:element>
         </xs:choice>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_ConfidenceSet -->
<xs:complexType name="ConfidenceSet" >
      <xs:sequence>
         <xs:element name="accelConfidence" type="AccelSteerYawRateConfidence"  minOccurs="0"/>
         <xs:element name="speedConfidence" type="SpeedandHeadingandThrottleConfidence"  minOccurs="0"/>
         <xs:element name="timeConfidence" type="TimeConfidence"  minOccurs="0"/>
         <xs:element name="posConfidence" type="PositionConfidenceSet"  minOccurs="0"/>
         <xs:element name="steerConfidence" type="SteeringWheelAngleConfidence"  minOccurs="0"/>
         <xs:element name="throttleConfidence" type="ThrottleConfidence"  minOccurs="0"/>
         <xs:element name="localConfidenceSet" type="local:ConfidenceSet" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_ConnectsTo -->
<xs:complexType name="ConnectsTo" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            sets of 2 byte pairs,
            the first byte is a lane number
            the second byte is a LaneManeuverCode
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="ConnectsTo-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="ConnectsTo-string">
   <xs:restriction base="xs:base64Binary">
      <xs:minLength value="3"/>
      <xs:maxLength value="43"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_CrosswalkLane -->
<xs:complexType name="CrosswalkLane" >
      <xs:sequence>
         <xs:element name="laneNumber" type="LaneNumber" />
         <xs:element name="laneWidth" type="LaneWidth"  minOccurs="0"/>
         <xs:element name="laneAttributes" type="CrosswalkLaneAttributes" />
         <xs:element name="nodeList" type="NodeList" />
         <!-- path details of the lane
         note that this may cross or pass
         by driven lanes -->
         <xs:element name="keepOutList" type="NodeList"  minOccurs="0"/>
         <!-- no stop points along the path
         typically the end points unless
         islands are represented in the path -->
         <xs:element name="connectsTo" type="ConnectsTo"  minOccurs="0"/>
         <!-- a list of other lanes and their
         turning use by this lane -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_DataParameters -->
<xs:complexType name="DataParameters" >
      <xs:sequence>
         <xs:element name="processMethod"  minOccurs="0">
            <xs:simpleType>
               <xs:restriction base="xs:string">
                  <xs:minLength value="1"/>
                  <xs:maxLength value="255"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <xs:element name="processAgency"  minOccurs="0">
            <xs:simpleType>
               <xs:restriction base="xs:string">
                  <xs:minLength value="1"/>
                  <xs:maxLength value="255"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <xs:element name="lastCheckedDate"  minOccurs="0">
            <xs:simpleType>
               <xs:restriction base="xs:string">
                  <xs:minLength value="1"/>
                  <xs:maxLength value="255"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <xs:element name="geiodUsed"  minOccurs="0">
            <xs:simpleType>
               <xs:restriction base="xs:string">
                  <xs:minLength value="1"/>
                  <xs:maxLength value="255"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <xs:element name="localDataParameters" type="local:DataParameters" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_DDate -->
<xs:complexType name="DDate" >
      <xs:sequence>
         <xs:element name="year" type="DYear" />
         <!-- 2 bytes -->
         <xs:element name="month" type="DMonth" />
         <!-- 1 byte -->
         <xs:element name="day" type="DDay" />
         <!-- 1 byte -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_DDateTime -->
<xs:complexType name="DDateTime" >
      <xs:sequence>
         <xs:element name="year" type="DYear"  minOccurs="0"/>
         <!-- 2 bytes -->
         <xs:element name="month" type="DMonth"  minOccurs="0"/>
         <!-- 1 byte -->
         <xs:element name="day" type="DDay"  minOccurs="0"/>
         <!-- 1 byte -->
         <xs:element name="hour" type="DHour"  minOccurs="0"/>
         <!-- 1 byte -->
         <xs:element name="minute" type="DMinute"  minOccurs="0"/>
         <!-- 1 byte -->
         <xs:element name="second" type="DSecond"  minOccurs="0"/>
         <!-- 2 bytes -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_DFullTime -->
<xs:complexType name="DFullTime" >
      <xs:sequence>
         <xs:element name="year" type="DYear" />
         <!-- 2 bytes -->
         <xs:element name="month" type="DMonth" />
         <!-- 1 byte -->
         <xs:element name="day" type="DDay" />
         <!-- 1 byte -->
         <xs:element name="hour" type="DHour" />
         <!-- 1 byte -->
         <xs:element name="minute" type="DMinute" />
         <!-- 1 byte -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_DMonthDay -->
<xs:complexType name="DMonthDay" >
      <xs:sequence>
         <xs:element name="month" type="DMonth" />
         <!-- 1 byte -->
         <xs:element name="day" type="DDay" />
         <!-- 1 byte -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_DTime -->
<xs:complexType name="DTime" >
      <xs:sequence>
         <xs:element name="hour" type="DHour" />
         <!-- 1 byte -->
         <xs:element name="minute" type="DMinute" />
         <!-- 1 byte -->
         <xs:element name="second" type="DSecond" />
         <!-- 2 bytes -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_DYearMonth -->
<xs:complexType name="DYearMonth" >
      <xs:sequence>
         <xs:element name="year" type="DYear" />
         <!-- 2 bytes -->
         <xs:element name="month" type="DMonth" />
         <!-- 1 byte -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_ITIS_Phrase_ExitService -->
<xs:complexType name="ExitService" >
      <xs:sequence minOccurs="1" maxOccurs="10">
         <xs:element name="exitService-item" >
            <xs:complexType>
               <xs:sequence>
                  <xs:choice >
                     <xs:element name="itis" type="itis:ITIScodes" />
                     <xs:element name="text" >
                        <xs:simpleType>
                           <xs:restriction base="xs:string">
                              <xs:minLength value="1"/>
                              <xs:maxLength value="16"/>
                           </xs:restriction>
                        </xs:simpleType>
                     </xs:element>
                  </xs:choice>
               </xs:sequence>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_FullPositionVector -->
<xs:complexType name="FullPositionVector" >
      <xs:sequence>
         <xs:element name="utcTime" type="DDateTime"  minOccurs="0"/>
         <!-- time with mSec precision -->
         <xs:element name="long" type="Longitude" />
         <!-- 1/10th microdegree -->
         <xs:element name="lat" type="Latitude" />
         <!-- 1/10th microdegree -->
         <xs:element name="elevation" type="Elevation"  minOccurs="0"/>
         <!-- 3 bytes,  0.1 m -->
         <xs:element name="heading" type="Heading"  minOccurs="0"/>
         <xs:element name="speed" type="TransmissionAndSpeed"  minOccurs="0"/>
         <xs:element name="posAccuracy" type="PositionalAccuracy"  minOccurs="0"/>
         <xs:element name="timeConfidence" type="TimeConfidence"  minOccurs="0"/>
         <xs:element name="posConfidence" type="PositionConfidenceSet"  minOccurs="0"/>
         <xs:element name="speedConfidence" type="SpeedandHeadingandThrottleConfidence"  minOccurs="0"/>
         <xs:element name="localFullPositionVector" type="local:FullPositionVector" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_ITIS_Phrase_GenericSignage -->
<xs:complexType name="GenericSignage" >
      <xs:sequence minOccurs="1" maxOccurs="10">
         <xs:element name="genericSignage-item" >
            <xs:complexType>
               <xs:sequence>
                  <xs:choice >
                     <xs:element name="itis" type="itis:ITIScodes" />
                     <xs:element name="text" >
                        <xs:simpleType>
                           <xs:restriction base="xs:string">
                              <xs:minLength value="1"/>
                              <xs:maxLength value="16"/>
                           </xs:restriction>
                        </xs:simpleType>
                     </xs:element>
                  </xs:choice>
               </xs:sequence>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_Intersection -->
<xs:complexType name="Intersection" >
      <xs:sequence>
         <xs:element name="name" type="DescriptiveName"  minOccurs="0"/>
         <xs:element name="id" type="IntersectionID" />
         <!-- a gloablly unique value,
         the upper bytes of which may not
         be sent if the context is known -->
         <xs:element name="refPoint" type="Position3D"  minOccurs="0"/>
         <!-- the reference from which subsequent
         data points are offset until a new
         point is used. -->
         <xs:element name="refInterNum" type="IntersectionID"  minOccurs="0"/>
         <!-- present only if this is a computed
         intersection instance -->
         <xs:element name="orientation" type="Heading"  minOccurs="0"/>
         <!-- present only if this is a computed
         intersection instance -->
         <xs:element name="laneWidth" type="LaneWidth"  minOccurs="0"/>
         <!-- reference width used by subsequent
         lanes until a new width is given -->
         <xs:element name="type" type="IntersectionStatusObject"  minOccurs="0"/>
         <!-- data about the intersection type -->
         <xs:element name="approaches" >
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="32">
                  <xs:element name="approache" type="ApproachObject" />
                  <!-- data about one or more approaches (lane data is found here) -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="preemptZones"  minOccurs="0">
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="32">
                  <xs:element name="preemptZone" type="SignalControlZone" />
                  <!-- data about one or more preempt zones -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="priorityZones"  minOccurs="0">
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="32">
                  <xs:element name="priorityZone" type="SignalControlZone" />
                  <!-- data about one or more priority zones -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_IntersectionState -->
<xs:complexType name="IntersectionState" >
      <xs:sequence>
         <xs:element name="name" type="DescriptiveName"  minOccurs="0"/>
         <!-- human readable name for intersection
         to be used only in debug mode -->
         <xs:element name="id" type="IntersectionID" />
         <!-- this provided a unique mapping to the
         intersection map in question
         which provides complete location
         and approach/move/lane data -->
         <xs:element name="status" type="IntersectionStatusObject" />
         <!-- general status of the controller -->
         <xs:element name="timeStamp" type="TimeMark"  minOccurs="0"/>
         <!-- the point in local time that
         this message was constructed -->
         <xs:element name="lanesCnt"  minOccurs="0">
            <xs:simpleType>
               <xs:restriction base="xs:unsignedByte">
                  <xs:minInclusive value="1"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- number of states to follow  (not always
         one per lane because sign states may be shared) -->
         <xs:element name="states" >
            <xs:complexType>
               <xs:sequence minOccurs="1" maxOccurs="255">
                  <xs:element name="state" type="MovementState" />
                  <!-- each active Movement/lane is given in turn and contains its state,  and seconds to the next event etc. -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="priority" type="SignalState"  minOccurs="0"/>
         <!-- the active priority state data,  if present -->
         <xs:element name="preempt" type="SignalState"  minOccurs="0"/>
         <!-- the active preemption state data,  if present -->
         <xs:element name="localIntersectionState" type="local:IntersectionState" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_J1939-Data-Items -->
<xs:complexType name="J1939data" >
      <xs:sequence>
         <!-- Tire conditions -->
         <xs:element name="tires"  minOccurs="0">
            <xs:complexType>
               <xs:sequence minOccurs="0" maxOccurs="16">
                  <xs:element name="tire" >
                     <xs:complexType>
                        <xs:sequence>
                           <xs:element name="location" type="TireLocation"  minOccurs="0"/>
                           <xs:element name="pressure" type="TirePressure"  minOccurs="0"/>
                           <xs:element name="temp" type="TireTemp"  minOccurs="0"/>
                           <xs:element name="wheelSensorStatus" type="WheelSensorStatus"  minOccurs="0"/>
                           <xs:element name="wheelEndElectFault" type="WheelEndElectFault"  minOccurs="0"/>
                           <xs:element name="leakageRate" type="TireLeakageRate"  minOccurs="0"/>
                           <xs:element name="detection" type="TirePressureThresholdDetection"  minOccurs="0"/>
                        </xs:sequence>
                     </xs:complexType>
                  </xs:element>
                  <!-- Vehicle Weight by axle -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="axle"  minOccurs="0">
            <xs:complexType>
               <xs:sequence minOccurs="0" maxOccurs="16">
                  <xs:element name="axle-item" >
                     <xs:complexType>
                        <xs:sequence>
                           <xs:element name="location" type="AxleLocation"  minOccurs="0"/>
                           <xs:element name="weight" type="AxleWeight"  minOccurs="0"/>
                        </xs:sequence>
                     </xs:complexType>
                  </xs:element>
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="trailerWeight" type="TrailerWeight"  minOccurs="0"/>
         <xs:element name="cargoWeight" type="CargoWeight"  minOccurs="0"/>
         <xs:element name="steeringAxleTemperature" type="SteeringAxleTemperature"  minOccurs="0"/>
         <xs:element name="driveAxleLocation" type="DriveAxleLocation"  minOccurs="0"/>
         <xs:element name="driveAxleLiftAirPressure" type="DriveAxleLiftAirPressure"  minOccurs="0"/>
         <xs:element name="driveAxleTemperature" type="DriveAxleTemperature"  minOccurs="0"/>
         <xs:element name="driveAxleLubePressure" type="DriveAxleLubePressure"  minOccurs="0"/>
         <xs:element name="steeringAxleLubePressure" type="SteeringAxleLubePressure"  minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_MovementState -->
<xs:complexType name="MovementState" >
      <xs:sequence>
         <!-- The MovementNumber is contained in the enclosing DF. -->
         <xs:element name="movementName" type="DescriptiveName"  minOccurs="0"/>
         <!-- uniquely defines movement by name -->
         <xs:element name="laneCnt" type="LaneCount"  minOccurs="0"/>
         <!-- the number of lanes to follow -->
         <xs:element name="laneSet" type="LaneSet" />
         <!-- each encoded as a LaneNumber,
         the collection of lanes,  by num,
         to which this state data applies
         For the current movement State,  you may CHOICE one of the below: -->
         <xs:element name="currState" type="SignalLightState"  minOccurs="0"/>
         <!-- the state of a Motorised lane -->
         <xs:element name="pedState" type="PedestrianSignalState"  minOccurs="0"/>
         <!-- the state of a Pedestrian type lane -->
         <xs:element name="specialState" type="SpecialSignalState"  minOccurs="0"/>
         <!-- the state of a special type lane
         such as a dedicated train lane -->
         <xs:element name="timeToChange" type="TimeMark" />
         <!-- the point in time this state will change -->
         <xs:element name="stateConfidence" type="StateConfidence"  minOccurs="0"/>
         <!-- Yellow phase time intervals
         (used for motorised vehicle lanes and pedestrian lanes)
         For the yellow Signal State,  a CHOICE of one of the below: -->
         <xs:element name="yellState" type="SignalLightState"  minOccurs="0"/>
         <!-- the next state of a
         Motorised lane -->
         <xs:element name="yellPedState" type="PedestrianSignalState"  minOccurs="0"/>
         <!-- the next state of a
         Pedestrian type lane -->
         <xs:element name="yellTimeToChange" type="TimeMark"  minOccurs="0"/>
         <xs:element name="yellStateConfidence" type="StateConfidence"  minOccurs="0"/>
         <!-- below items are all   OPTIONAL   based on use and context
         some are used only for ped lane types -->
         <xs:element name="vehicleCount" type="ObjectCount"  minOccurs="0"/>
         <xs:element name="pedDetect" type="PedestrianDetect"  minOccurs="0"/>
         <!-- true if ANY ped are detected crossing
         the above lanes -->
         <xs:element name="pedCount" type="ObjectCount"  minOccurs="0"/>
         <!-- est count of peds -->
         <xs:element name="localMovementState" type="local:MovementState" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_NodeList -->
<xs:complexType name="NodeList" >
      <xs:sequence minOccurs="1" maxOccurs="64">
         <xs:element name="node" type="Offsets" />
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_Offsets -->
<xs:complexType name="Offsets" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            Made up of
            SEQUENCE  {
            xOffset  INTEGER  (-32767..32767) ,
            yOffset  INTEGER  (-32767..32767) ,
            if 6 or 8 bytes in length:
            zOffset  INTEGER  (-32767..32767)   OPTIONAL ,
            all above in signed values where
            the LSB is in units of 1.0 cm
            if 8 bytes in length:
            width    LaneWidth                OPTIONAL
            a length of 7 bytes is never used
            }
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="Offsets-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="Offsets-string">
   <xs:restriction base="xs:base64Binary">
      <xs:minLength value="6"/>
      <xs:maxLength value="11"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_PathHistory -->
<xs:complexType name="PathHistory" >
      <xs:sequence>
         <xs:element name="initialPosition" type="FullPositionVector"  minOccurs="0"/>
         <xs:element name="currGPSstatus" type="GPSstatus"  minOccurs="0"/>
         <xs:element name="itemCnt" type="Count"  minOccurs="0"/>
         <!-- Limited to range 1 to 23
         number of points in set to follow -->
         <xs:element name="crumbData" >
            <xs:complexType>
               <xs:choice>
                  <!-- select one of the possible data sets to be used -->
                  <xs:element name="pathHistoryPointSets-01" >
                     <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="23">
                           <xs:element name="pathHistoryPointSets-01-item" type="PathHistoryPointType-01" />
                           <!-- made up of sets of the: PathHistoryPointType-1 a set of all data elements,  it is non-uniform in size,  each item tagged in BER -->
                        </xs:sequence>
                     </xs:complexType>
                  </xs:element>
                  <xs:element name="pathHistoryPointSets-02" >
                     <xs:complexType><xs:simpleContent>
                        <xs:extension base="pathHistoryPointSets-02-string" >
                           <xs:attribute name="EncodingType" use="required">
                             <xs:simpleType>
                                <xs:restriction base="xs:NMTOKEN">
                                   <xs:enumeration value="base64Binary"/>
                                </xs:restriction>
                             </xs:simpleType>
                           </xs:attribute>
                        </xs:extension>
                     </xs:simpleContent> </xs:complexType>
                  </xs:element>
                  <!-- made up of sets of the: PathHistoryPointType-02
                  sets of all data elements including:
                  lat,  long,  elev,  time,  accuracy,  heading,  and speed
                  offsets sent as a packed blob of 15 bytes per point -->
                  <xs:element name="pathHistoryPointSets-03" >
                    <xs:complexType> <xs:simpleContent>
                        <xs:extension base="pathHistoryPointSets-03-string" >
                           <xs:attribute name="EncodingType" use="required">
                             <xs:simpleType>
                                <xs:restriction base="xs:NMTOKEN">
                                   <xs:enumeration value="base64Binary"/>
                                </xs:restriction>
                             </xs:simpleType>
                           </xs:attribute>
                        </xs:extension>
                    </xs:simpleContent> </xs:complexType> 
                  </xs:element>
                  <!-- made up of sets of the: PathHistoryPointType-03
                  sets of the following data elements:
                  lat,  long,  elev,  time,  and accuracy
                  offsets sent as a packed blob of 12 bytes per point -->
                  <xs:element name="pathHistoryPointSets-04" >
                    <xs:complexType> <xs:simpleContent>
                        <xs:extension base="pathHistoryPointSets-04-string" >
                           <xs:attribute name="EncodingType" use="required">
                             <xs:simpleType>
                                <xs:restriction base="xs:NMTOKEN">
                                   <xs:enumeration value="base64Binary"/>
                                </xs:restriction>
                             </xs:simpleType>
                           </xs:attribute>
                        </xs:extension>
                    </xs:simpleContent> </xs:complexType> 
                  </xs:element>
                  <!-- made up of sets of the: PathHistoryPointType-04
                  sets of the following data elements:
                  lat,  long,  elev,  and time
                  offsets sent as a packed blob of 8 bytes per point -->
                  <xs:element name="pathHistoryPointSets-05" >
                     <xs:complexType><xs:simpleContent>
                        <xs:extension base="pathHistoryPointSets-05-string" >
                           <xs:attribute name="EncodingType" use="required">
                             <xs:simpleType>
                                <xs:restriction base="xs:NMTOKEN">
                                   <xs:enumeration value="base64Binary"/>
                                </xs:restriction>
                             </xs:simpleType>
                           </xs:attribute>
                        </xs:extension>
                     </xs:simpleContent></xs:complexType> 
                  </xs:element>
                  <!-- made up of sets of the: PathHistoryPointType-05
                  sets of the following data elements:
                  lat,  long,  elev,  and accuracy
                  offsets sent as a packed blob of 10 bytes per point -->
                  <xs:element name="pathHistoryPointSets-06" >
                     <xs:complexType><xs:simpleContent>
                        <xs:extension base="pathHistoryPointSets-06-string" >
                           <xs:attribute name="EncodingType" use="required">
                             <xs:simpleType>
                                <xs:restriction base="xs:NMTOKEN">
                                   <xs:enumeration value="base64Binary"/>
                                </xs:restriction>
                             </xs:simpleType>
                           </xs:attribute>
                        </xs:extension>
                     </xs:simpleContent></xs:complexType> 
                  </xs:element>
                  <!-- made up of sets of the: PathHistoryPointType-06
                  sets of the following data elements:
                  lat,  long,  and elev
                  offsets sent as a packed blob of 6 bytes per point -->
                  <xs:element name="pathHistoryPointSets-07" >
                    <xs:complexType> <xs:simpleContent>
                        <xs:extension base="pathHistoryPointSets-07-string" >
                           <xs:attribute name="EncodingType" use="required">
                             <xs:simpleType>
                                <xs:restriction base="xs:NMTOKEN">
                                   <xs:enumeration value="base64Binary"/>
                                </xs:restriction>
                             </xs:simpleType>
                           </xs:attribute>
                        </xs:extension>
                    </xs:simpleContent> </xs:complexType> 
                  </xs:element>
                  <!-- made up of sets of the: PathHistoryPointType-07
                  sets of the following data elements:
                  lat,  long,  time,  and accuracy
                  offsets sent as a packed blob of 10.5 bytes per point -->
                  <xs:element name="pathHistoryPointSets-08" >
                     <xs:complexType><xs:simpleContent>
                        <xs:extension base="pathHistoryPointSets-08-string" >
                           <xs:attribute name="EncodingType" use="required">
                             <xs:simpleType>
                                <xs:restriction base="xs:NMTOKEN">
                                   <xs:enumeration value="base64Binary"/>
                                </xs:restriction>
                             </xs:simpleType>
                           </xs:attribute>
                        </xs:extension>
                    </xs:simpleContent></xs:complexType> 
                  </xs:element>
                  <!-- made up of sets of the: PathHistoryPointType-08
                  sets of the following data elements:
                  lat,  long,  and time
                  offsets sent as a packed blob of 7 bytes per point -->
                  <xs:element name="pathHistoryPointSets-09" >
                     <xs:complexType><xs:simpleContent>
                        <xs:extension base="pathHistoryPointSets-09-string" >
                           <xs:attribute name="EncodingType" use="required">
                             <xs:simpleType>
                                <xs:restriction base="xs:NMTOKEN">
                                   <xs:enumeration value="base64Binary"/>
                                </xs:restriction>
                             </xs:simpleType>
                           </xs:attribute>
                        </xs:extension>
                    </xs:simpleContent> </xs:complexType> 
                  </xs:element>
                  <!-- made up of sets of the: PathHistoryPointType-09
                  sets of the following data elements:
                  lat,  long,  and accuracy
                  offsets sent as a packed blob of 8.5 bytes per point -->
                  <xs:element name="pathHistoryPointSets-10" >
                     <xs:complexType><xs:simpleContent>
                        <xs:extension base="pathHistoryPointSets-10-string" >
                           <xs:attribute name="EncodingType" use="required">
                             <xs:simpleType>
                                <xs:restriction base="xs:NMTOKEN">
                                   <xs:enumeration value="base64Binary"/>
                                </xs:restriction>
                             </xs:simpleType>
                           </xs:attribute>
                        </xs:extension>
                     </xs:simpleContent></xs:complexType> 
                  </xs:element>
                  <!-- made up of sets of the: PathHistoryPointType-10
                  sets of the following data elements:
                  lat and long
                  offsets sent as a packed blob of 4.5 bytes per point -->
               </xs:choice>
            </xs:complexType>
         </xs:element>
         <xs:element name="localPathHistory" type="local:PathHistory" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>

                  <xs:simpleType name="pathHistoryPointSets-02-string">
                     <xs:restriction base="xs:base64Binary">
                        <xs:minLength value="20"/>
                        <xs:maxLength value="460"/>
                     </xs:restriction>
                  </xs:simpleType >
                  <xs:simpleType name="pathHistoryPointSets-03-string">
                     <xs:restriction base="xs:base64Binary">
                        <xs:minLength value="16"/>
                        <xs:maxLength value="368"/>
                     </xs:restriction>
                  </xs:simpleType >
                  <xs:simpleType name="pathHistoryPointSets-04-string">
                     <xs:restriction base="xs:base64Binary">
                        <xs:minLength value="11"/>
                        <xs:maxLength value="246"/>
                     </xs:restriction>
                  </xs:simpleType >
                  <xs:simpleType name="pathHistoryPointSets-05-string">
                     <xs:restriction base="xs:base64Binary">
                        <xs:minLength value="14"/>
                        <xs:maxLength value="307"/>
                     </xs:restriction>
                  </xs:simpleType >
                  <xs:simpleType name="pathHistoryPointSets-06-string">
                     <xs:restriction base="xs:base64Binary">
                        <xs:minLength value="8"/>
                        <xs:maxLength value="184"/>
                     </xs:restriction>
                  </xs:simpleType >
                  <xs:simpleType name="pathHistoryPointSets-07-string">
                     <xs:restriction base="xs:base64Binary">
                        <xs:minLength value="15"/>
                        <xs:maxLength value="323"/>
                     </xs:restriction>
                  </xs:simpleType >
                  <xs:simpleType name="pathHistoryPointSets-08-string">
                     <xs:restriction base="xs:base64Binary">
                        <xs:minLength value="10"/>
                        <xs:maxLength value="215"/>
                     </xs:restriction>
                  </xs:simpleType >
                  <xs:simpleType name="pathHistoryPointSets-09-string">
                     <xs:restriction base="xs:base64Binary">
                        <xs:minLength value="12"/>
                        <xs:maxLength value="266"/>
                     </xs:restriction>
                  </xs:simpleType >
                  <xs:simpleType name="pathHistoryPointSets-10-string">
                     <xs:restriction base="xs:base64Binary">
                        <xs:minLength value="7"/>
                        <xs:maxLength value="139"/>
                     </xs:restriction>
                  </xs:simpleType >
 
<!-- Descriptive Name: DF_PathHistoryPointType-01 -->
<xs:complexType name="PathHistoryPointType-01" >
      <xs:sequence>
         <xs:element name="latOffset" >
            <xs:simpleType>   
               <xs:restriction base="xs:int">
                  <xs:minInclusive value="-131072"/>
                  <xs:maxInclusive value="131071"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- in 1/10th micro degrees
         value  131071 to be used for  131071 or greater
         value -131071 to be used for -131071 or less
         value -131072 to be used for unavailable lat or long -->
         <xs:element name="longOffset" >
            <xs:simpleType>   
               <xs:restriction base="xs:int">
                  <xs:minInclusive value="-131072"/>
                  <xs:maxInclusive value="131071"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- in 1/10th micro degrees
         value  131071 to be used for  131071 or greater
         value -131071 to be used for -131071 or less
         value -131072 to be used for unavailable lat or long -->
         <xs:element name="elevationOffset"  minOccurs="0">
            <xs:simpleType>
               <xs:restriction base="xs:short">
                  <xs:minInclusive value="-2048"/>
                  <xs:maxInclusive value="2047"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- LSB units of of 10 cm
         value  2047 to be used for  2047 or greater
         value -2047 to be used for -2047 or greater
         value -2048 to be unavailable -->
         <xs:element name="timeOffset"  minOccurs="0">
            <xs:simpleType>
               <xs:restriction base="xs:unsignedShort">
                  <xs:minInclusive value="1"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- LSB units of of 10 mSec
         value  65534 to be used for 65534 or greater
         value  65535 to be unavailable -->
         <xs:element name="posAccuracy" type="PositionalAccuracy"  minOccurs="0"/>
         <!-- four packed bytes -->
         <xs:element name="heading"  minOccurs="0">
            <xs:simpleType>  
               <xs:restriction base="xs:byte">
                  <xs:minInclusive value="-128"/>
               </xs:restriction>
            </xs:simpleType>  
         </xs:element>
         <!-- where the LSB is in
         units of 1.5 degrees
         value -128 for unavailable
         not an offset value -->
         <xs:element name="speed" type="TransmissionAndSpeed"  minOccurs="0"/>
         <!-- upper bits encode transmission
         where the LSB is in
         units of 0.02 m/s
         not an offset value -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_PathHistoryPointType-02 -->
<xs:complexType name="PathHistoryPointType-02" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            To be made up of packed bytes as follows:
            latOffset  INTEGER  (-131072..131071)   (18 signed bits)
            longOffset INTEGER  (-131072..131071)   (18 signed bits)
            in 1/10th micro degrees
            value  131071 to be used for  131071 or greater
            value -131071 to be used for -131071 or less
            value -131072 to be used for unavailable lat or long
            elevationOffset    INTEGER  (-2048..2047) ,   (12 signed bits)
            LSB units of 10 cm
            value  2047 to be used for  2047 or greater
            value -2047 to be used for -2047 or greater
            value -2048 to be unavailable
            timeOffset INTEGER  (0..65535) ,   (16 unsigned bits)
            LSB units of of 10 mSec
            value  65534 to be used for 65534 or greater
            value  65535 to be unavailable
            accuracy   PositionalAccuracy
            four packed bytes
            heading    INTEGER  (-128..127) ,   (8 signed bits)
            where the LSB is in
            units of 1.5 degrees
            value -128 for unavailable
            not an offset value
            speed      TransmissionAndSpeed  (16 encoded bits)
            upper bits encode transmission
            where the LSB is in
            units of 0.02 m/s
            not an offset value
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="PathHistoryPointType-02-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="PathHistoryPointType-02-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="20"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_PathHistoryPointType-03 -->
<xs:complexType name="PathHistoryPointType-03" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            To be made up of packed bytes as follows:
            latOffset  INTEGER  (-131072..131071)   (18 signed bits)
            longOffset INTEGER  (-131072..131071)   (18 signed bits)
            in 1/10th micro degrees
            value  131071 to be used for  131071 or greater
            value -131071 to be used for -131071 or less
            value -131072 to be used for unavailable lat or long
            elevationOffset    INTEGER  (-2048..2047) ,   (12 signed bits)
            LSB units of 10 cm
            value  2047 to be used for  2047 or greater
            value -2047 to be used for -2047 or greater
            value -2048 to be unavailable
            timeOffset INTEGER  (0..65535) ,   (16 unsigned bits)
            LSB units of of 10 mSec
            value  65534 to be used for 65534 or greater
            value  65535 to be unavailable
            accuracy   PositionalAccuracy
            four packed bytes
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="PathHistoryPointType-03-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="PathHistoryPointType-03-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="16"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_PathHistoryPointType-04 -->
<xs:complexType name="PathHistoryPointType-04" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            To be made up of packed bytes as follows:
            latOffset  INTEGER  (-131072..131071)   (18 signed bits)
            longOffset INTEGER  (-131072..131071)   (18 signed bits)
            in 1/10th micro degrees
            value  131071 to be used for  131071 or greater
            value -131071 to be used for -131071 or less
            value -131072 to be used for unavailable lat or long
            elevationOffset    INTEGER  (-2048..2047) ,   (12 signed bits)
            LSB units of 10 cm
            value  2047 to be used for  2047 or greater
            value -2047 to be used for -2047 or greater
            value -2048 to be unavailable
            timeOffset INTEGER  (0..65535) ,   (16 unsigned bits)
            LSB units of of 10 mSec
            value  65534 to be used for 65534 or greater
            value  65535 to be unavailable
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="PathHistoryPointType-04-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="PathHistoryPointType-04-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="11"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_PathHistoryPointType-05 -->
<xs:complexType name="PathHistoryPointType-05" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            To be made up of packed bytes as follows:
            latOffset  INTEGER  (-131072..131071)   (18 signed bits)
            longOffset INTEGER  (-131072..131071)   (18 signed bits)
            in 1/10th micro degrees
            value  131071 to be used for  131071 or greater
            value -131071 to be used for -131071 or less
            value -131072 to be used for unavailable lat or long
            elevationOffset    INTEGER  (-2048..2047) ,   (12 signed bits)
            LSB units of 10 cm
            value  2047 to be used for  2047 or greater
            value -2047 to be used for -2047 or greater
            value -2048 to be unavailable
            accuracy   PositionalAccuracy
            four packed bytes
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="PathHistoryPointType-05-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="PathHistoryPointType-05-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="14"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_PathHistoryPointType-06 -->
<xs:complexType name="PathHistoryPointType-06" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            To be made up of packed bytes as follows:
            latOffset  INTEGER  (-131072..131071)   (18 signed bits)
            longOffset INTEGER  (-131072..131071)   (18 signed bits)
            in 1/10th micro degrees
            value  131071 to be used for  131071 or greater
            value -131071 to be used for -131071 or less
            value -131072 to be used for unavailable lat or long
            elevationOffset    INTEGER  (-2048..2047) ,   (12 signed bits)
            LSB units of 10 cm
            value  2047 to be used for  2047 or greater
            value -2047 to be used for -2047 or greater
            value -2048 to be unavailable
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="PathHistoryPointType-06-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="PathHistoryPointType-06-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="8"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_PathHistoryPointType-07 -->
<xs:complexType name="PathHistoryPointType-07" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            in fact 10.5
            To be made up of packed bytes as follows:
            latOffset  INTEGER  (-131072..131071)   (18 signed bits)
            longOffset INTEGER  (-131072..131071)   (18 signed bits)
            in 1/10th micro degrees
            value  131071 to be used for  131071 or greater
            value -131071 to be used for -131071 or less
            value -131072 to be used for unavailable lat or long
            timeOffset INTEGER  (0..65535) ,   (16 unsigned bits)
            LSB units of of 10 mSec
            value  65534 to be used for 65534 or greater
            value  65535 to be unavailable
            accuracy   PositionalAccuracy
            four packed bytes
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="PathHistoryPointType-07-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="PathHistoryPointType-07-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="15"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_PathHistoryPointType-08 -->
<xs:complexType name="PathHistoryPointType-08" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            in fact 6.5
            To be made up of packed bytes as follows:
            latOffset  INTEGER  (-131072..131071)   (18 signed bits)
            longOffset INTEGER  (-131072..131071)   (18 signed bits)
            in 1/10th micro degrees
            value  131071 to be used for  131071 or greater
            value -131071 to be used for -131071 or less
            value -131072 to be used for unavailable lat or long
            timeOffset INTEGER  (0..65535) ,   (16 unsigned bits)
            LSB units of of 10 mSec
            value  65534 to be used for 65534 or greater
            value  65535 to be unavailable
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="PathHistoryPointType-08-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="PathHistoryPointType-08-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="10"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_PathHistoryPointType-09 -->
<xs:complexType name="PathHistoryPointType-09" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            in fact 8.5
            To be made up of packed bytes as follows:
            latOffset  INTEGER  (-131072..131071)   (18 signed bits)
            longOffset INTEGER  (-131072..131071)   (18 signed bits)
            in 1/10th micro degrees
            value  131071 to be used for  131071 or greater
            value -131071 to be used for -131071 or less
            value -131072 to be used for unavailable lat or long
            accuracy   PositionalAccuracy
            four packed bytes
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="PathHistoryPointType-09-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="PathHistoryPointType-09-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="12"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_PathHistoryPointType-10 -->
<xs:complexType name="PathHistoryPointType-10" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            in fact 4.5
            To be made up of packed bytes as follows:
            latOffset  INTEGER  (-131072..131071)   (18 signed bits)
            longOffset INTEGER  (-131072..131071)   (18 signed bits)
            in 1/10th micro degrees
            value  131071 to be used for  131071 or greater
            value -131071 to be used for -131071 or less
            value -131072 to be used for unavailable lat or long
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="PathHistoryPointType-10-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="PathHistoryPointType-10-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="7"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_PathPrediction -->
<xs:complexType name="PathPrediction" >
      <xs:sequence>
         <xs:element name="radiusOfCurve" >
            <xs:simpleType>
               <xs:restriction base="xs:short">
                  <xs:minInclusive value="-32767"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- LSB units of 10cm
         straight path to use value of 32767 -->
         <xs:element name="confidence" >
            <xs:simpleType>
               <xs:restriction base="xs:unsignedByte">
                  <xs:maxInclusive value="200"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- LSB units of 0.5 percent -->
         <xs:element name="localPathPrediction" type="local:PathPrediction" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_Position3D -->
<xs:complexType name="Position3D" >
      <xs:sequence>
         <xs:element name="lat" type="Latitude" />
         <!-- in 1/10th micro degrees -->
         <xs:element name="long" type="Longitude" />
         <!-- in 1/10th micro degrees -->
         <xs:element name="elevation" type="Elevation"  minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_PositionalAccuracy -->
<xs:complexType name="PositionalAccuracy" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            And the bytes defined as folllows
            Byte 1: semi-major accuracy at one standard dev
            range 0-12.7 meter,  LSB = .05m
            0xFE=254=any value equal or greater than 12.70 meter
            0xFF=255=unavailable semi-major value
            Byte 2: semi-minor accuracy at one standard dev
            range 0-12.7 meter,  LSB = .05m
            0xFE=254=any value equal or greater than 12.70 meter
            0xFF=255=unavailable semi-minor value
            Bytes 3-4: orientation of semi-major axis
            relative to true north  (0~359.9945078786 degrees)
            LSB units of 360/65535 deg  = 0.0054932479
            a value of 0x0000 =0 shall be 0 degrees
            a value of 0x0001 =1 shall be 0.0054932479degrees
            a value of 0xFFFE =65534 shall be 359.9945078786 deg
            a value of 0xFFFF =65535 shall be used for orientation unavailable
            (In NMEA GPGST)
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="PositionalAccuracy-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="PositionalAccuracy-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="6"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_PositionConfidenceSet -->
<xs:complexType name="PositionConfidenceSet" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            To be encoded as:
            SEQUENCE  {
            pos        PositionConfidence,
            -x- 4 bits,  for both horizontal directions
            elevation  ElevationConfidence
            -x- 4 bits
            }
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="PositionConfidenceSet-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="PositionConfidenceSet-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="2"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_RegionList -->
<xs:complexType name="RegionList" >
      <xs:sequence minOccurs="1" maxOccurs="64">
         <xs:element name="region" type="RegionOffsets" />
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_RegionOffsets -->
<xs:complexType name="RegionOffsets" >
      <xs:sequence>
         <xs:element name="xOffset" >
            <xs:simpleType>
               <xs:restriction base="xs:short">
                  <xs:minInclusive value="-32767"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <xs:element name="yOffset" >
            <xs:simpleType>
               <xs:restriction base="xs:short">
                  <xs:minInclusive value="-32767"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <xs:element name="zOffset"  minOccurs="0">
            <xs:simpleType>
               <xs:restriction base="xs:short">
                  <xs:minInclusive value="-32767"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- all in signed values where
         the LSB is in units of 1 meter -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_RegionPointSet -->
<xs:complexType name="RegionPointSet" >
      <xs:sequence>
         <xs:element name="anchor" type="Position3D"  minOccurs="0"/>
         <xs:element name="nodeList" type="RegionList" />
         <!-- path details of the regions outline -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_RoadSignID -->
<xs:complexType name="RoadSignID" >
      <xs:sequence>
         <xs:element name="position" type="Position3D" />
         <!-- Location of sign -->
         <xs:element name="viewAngle" type="HeadingSlice" />
         <!-- Vehicle direction of travel while
         facing active side of sign -->
         <xs:element name="mutcdCode" type="MUTCDCode"  minOccurs="0"/>
         <!-- Tag for MUTCD code or &quot;generic sign&quot; -->
         <xs:element name="crc" type="MsgCRC"  minOccurs="0"/>
         <!-- Used to provide a check sum -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_RTCMHeader -->
<xs:complexType name="RTCMHeader" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            defined as:
            SEQUENCE  {
            status     GPSstatus,
            to occupy 1 byte
            offsetSet  AntennaOffsetSet
            to occupy 4 bytes
            }
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="RTCMHeader-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="RTCMHeader-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="7"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_RTCMmsg -->
<xs:complexType name="RTCMmsg" >
      <xs:sequence>
         <xs:element name="rev" type="RTCM-Revision"  minOccurs="0"/>
         <xs:element name="rtcmID" type="RTCM-ID"  minOccurs="0"/>
         <!-- the message and sub-message type,  as
         defined in the RTCM revision being used -->
         <xs:element name="payload" type="RTCM-Payload" />
         <!-- the payload bytes -->
         <xs:element name="localRTCMmsg" type="local:RTCMmsg" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_RTCMPackage -->
<xs:complexType name="RTCMPackage" >
      <xs:sequence>
         <xs:element name="anchorPoint" type="FullPositionVector"  minOccurs="0"/>
         <!-- precise observer position,  if needed -->
         <xs:element name="rtcmHeader" type="RTCMHeader" />
         <!-- an octet blob consisting of:
         one byte with:
         GPSstatus
         4 bytes with:
         AntennaOffsetSet  containing x, y, z data
         note that a max of 16 satellites are allowed -->
         <xs:element name="msg1001"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1001-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- pRange data GPS L1 -->
         <xs:element name="msg1002"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1002-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- pRange data GPS L1 -->
         <xs:element name="msg1003"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1003-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- pRange data GPS L1,  L2 -->
         <xs:element name="msg1004"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1004-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- pRange data GPS L1,  L2 -->
         <xs:element name="msg1005"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1005-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- observer station data -->
         <xs:element name="msg1006"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1006-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- observer station data -->
         <xs:element name="msg1007"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1007-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- antenna of observer station data -->
         <xs:element name="msg1008"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1008-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- antenna of observer station data -->
         <xs:element name="msg1009"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1009-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- pRange data GLONASS L1 -->
         <xs:element name="msg1010"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1010-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- pRange data GLONASS L1 -->
         <xs:element name="msg1011"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1011-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- pRange data GLONASS L1,  L2 -->
         <xs:element name="msg1012"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1012-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- pRange data GLONASS L1,  L2 -->
         <xs:element name="msg1013"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1013-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- system parameters data -->
         <!-- The below items shall never be sent
         over WSM stack encoding  (other encodings may be used)
         and may be removed from the ASN -->
         <xs:element name="localRTCMPackage" type="local:RTCMPackage" minOccurs="0"/>
         <xs:element name="msg1014"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1014-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Network Aux Station  (NAS)  data -->
         <xs:element name="msg1015"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1015-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Ionospheric Correction data -->
         <xs:element name="msg1016"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1016-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Geometry Correction data -->
         <xs:element name="msg1017"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1017-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Combined Ionospheric and Geometry data
         msg1018 is reserved at this time -->
         <xs:element name="msg1019"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1019-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Satellite Ephermeris data -->
         <xs:element name="msg1020"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1020-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Satellite Ephermeris data -->
         <xs:element name="msg1021"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1021-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Helmert-Abridged Molodenski Transform data -->
         <xs:element name="msg1022"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1022-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Molodenski-Badekas Transform data -->
         <xs:element name="msg1023"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1023-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Ellipse Residuals data -->
         <xs:element name="msg1024"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1024-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Plane-Grid Residuals data -->
         <xs:element name="msg1025"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1025-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Non-Lab Conic Project data -->
         <xs:element name="msg1026"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1026-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Lab Conic Conform Project data -->
         <xs:element name="msg1027"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1027-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Ob Mercator Project data
         msg1028 is reserved at this time -->
         <xs:element name="msg1029"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1029-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Unicode test type data -->
         <xs:element name="msg1030"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1030-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- GPS Residuals data -->
         <xs:element name="msg1031"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1031-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- GLONASS Residuals data -->
         <xs:element name="msg1032"  minOccurs="0">
            <xs:complexType><xs:simpleContent>
               <xs:extension base="msg1032-string" >
                  <xs:attribute name="EncodingType" use="required">
                    <xs:simpleType>
                       <xs:restriction base="xs:NMTOKEN">
                          <xs:enumeration value="base64Binary"/>
                       </xs:restriction>
                    </xs:simpleType>
                  </xs:attribute>
               </xs:extension>
            </xs:simpleContent></xs:complexType>
         </xs:element>
         <!-- Ref Station Position data
         Proprietary Data content  (msg40xx to msg4095)
         may be added as needed -->
         <xs:element name="localRTCMPackage2" type="local:RTCMPackage2" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>

         <xs:simpleType name="msg1001-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="22"/>
               <xs:maxLength value="166"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1002-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="24"/>
               <xs:maxLength value="208"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1003-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="28"/>
               <xs:maxLength value="280"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1004-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="32"/>
               <xs:maxLength value="344"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1005-string">
            <xs:restriction base="xs:base64Binary">
               <xs:length value="26"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1006-string">
            <xs:restriction base="xs:base64Binary">
               <xs:length value="28"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1007-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="7"/>
               <xs:maxLength value="48"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1008-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="8"/>
               <xs:maxLength value="91"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1009-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="22"/>
               <xs:maxLength value="182"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1010-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="24"/>
               <xs:maxLength value="222"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1011-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="28"/>
               <xs:maxLength value="296"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1012-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="32"/>
               <xs:maxLength value="358"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1013-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="18"/>
               <xs:maxLength value="36"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1014-string">
            <xs:restriction base="xs:base64Binary">
               <xs:length value="20"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1015-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="18"/>
               <xs:maxLength value="92"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1016-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="19"/>
               <xs:maxLength value="108"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1017-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="22"/>
               <xs:maxLength value="154"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1019-string">
            <xs:restriction base="xs:base64Binary">
               <xs:length value="83"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1020-string">
            <xs:restriction base="xs:base64Binary">
               <xs:length value="60"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1021-string">
            <xs:restriction base="xs:base64Binary">
               <xs:length value="83"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1022-string">
            <xs:restriction base="xs:base64Binary">
               <xs:length value="100"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1023-string">
            <xs:restriction base="xs:base64Binary">
               <xs:length value="98"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1024-string">
            <xs:restriction base="xs:base64Binary">
               <xs:length value="99"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1025-string">
            <xs:restriction base="xs:base64Binary">
               <xs:length value="34"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1026-string">
            <xs:restriction base="xs:base64Binary">
               <xs:length value="40"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1027-string">
            <xs:restriction base="xs:base64Binary">
               <xs:length value="44"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1029-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="14"/>
               <xs:maxLength value="92"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1030-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="19"/>
               <xs:maxLength value="140"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1031-string">
            <xs:restriction base="xs:base64Binary">
               <xs:minLength value="20"/>
               <xs:maxLength value="143"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType name="msg1032-string">
            <xs:restriction base="xs:base64Binary">
               <xs:length value="27"/>
            </xs:restriction>
         </xs:simpleType >
 
<!-- Descriptive Name: DF_Sample -->
<xs:complexType name="Sample" >
      <xs:sequence>
         <xs:element name="sampleStart" >
            <xs:simpleType>
               <xs:restriction base="xs:unsignedByte"/>
            </xs:simpleType>
         </xs:element>
         <!-- Sample Starting Point -->
         <xs:element name="sampleEnd" >
            <xs:simpleType>
               <xs:restriction base="xs:unsignedByte"/>
            </xs:simpleType>
         </xs:element>
         <!-- Sample Ending Point -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_ShapePointSet -->
<xs:complexType name="ShapePointSet" >
      <xs:sequence>
         <xs:element name="anchor" type="Position3D"  minOccurs="0"/>
         <xs:element name="laneWidth" type="LaneWidth"  minOccurs="0"/>
         <xs:element name="directionality" type="DirectionOfUse"  minOccurs="0"/>
         <xs:element name="nodeList" type="NodeList" />
         <!-- path details of the lane and width -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_SignalControlZone -->
<xs:complexType name="SignalControlZone" >
      <xs:sequence>
         <xs:element name="name" type="DescriptiveName"  minOccurs="0"/>
         <!-- used only for debugging -->
         <xs:element name="pValue" type="SignalReqScheme" />
         <!-- preempt or priorty value  (0..7) ,
         and any strategy value to be used -->
         <xs:element name="data" >
            <xs:complexType>
               <xs:choice>
                  <xs:element name="laneSet" >
                     <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="32">
                           <xs:element name="laneSet-item" type="LaneNumber" />
                           <!-- a seq of of defined LaneNumbers, to be used with this p value see thier nodelists for paths -->
                        </xs:sequence>
                     </xs:complexType>
                  </xs:element>
                  <xs:element name="zones" >
                     <xs:complexType>
                        <xs:sequence minOccurs="1" maxOccurs="32">
                           <xs:element name="zone" >
                              <xs:complexType>
                                 <xs:sequence>
                                    <xs:element name="enclosed"  minOccurs="0">
                                       <xs:complexType>
                                          <xs:sequence minOccurs="1" maxOccurs="32">
                                             <xs:element name="enclosed-item" type="LaneNumber" />
                                             <!-- lanes in this region -->
                                          </xs:sequence>
                                       </xs:complexType>
                                    </xs:element>
                                    <xs:element name="laneWidth" type="LaneWidth"  minOccurs="0"/>
                                    <xs:element name="nodeList" type="NodeList" />
                                    <!-- path details of
                                    the region starting from
                                    the stop line -->
                                 </xs:sequence>
                              </xs:complexType>
                           </xs:element>
                           <!-- Note: unlike a nodelist for lanes, zones may overlap by a considerable degree -->
                        </xs:sequence>
                     </xs:complexType>
                  </xs:element>
               </xs:choice>
            </xs:complexType>
         </xs:element>
         <xs:element name="localSignalControlZone" type="local:SignalControlZone" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_SignalRequest -->
<xs:complexType name="SignalRequest" >
      <xs:sequence>
         <!-- the regionally unique ID of the target intersection -->
         <xs:element name="id" type="IntersectionID" />
         <!-- intersection ID
         Below present only when canceling a prior request -->
         <xs:element name="isCancel" type="SignalReqScheme"  minOccurs="0"/>
         <!-- In typical use either a SignalReqScheme
         or a lane number would be given,  this
         indicates the scheme to use or the
         path through the intersection
         to the degree it is known.
         Note that SignalReqScheme can hold either
         a preempt or a priority value. -->
         <xs:element name="requestedAction" type="SignalReqScheme"  minOccurs="0"/>
         <!-- preempt ID or the
         priority ID
         (and strategy) -->
         <xs:element name="inLane" type="LaneNumber"  minOccurs="0"/>
         <!-- approach Lane -->
         <xs:element name="outLane" type="LaneNumber"  minOccurs="0"/>
         <!-- egress Lane -->
         <xs:element name="type" type="NTCIPVehicleclass" />
         <!-- Two 4 bit nibbles as:
         NTCIP vehicle class type
         NTCIP vehicle class level
         any validation string used by the system -->
         <xs:element name="codeWord" type="CodeWord"  minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_Snapshot -->
<xs:complexType name="Snapshot" >
      <xs:sequence>
         <xs:element name="thePosition" type="FullPositionVector" />
         <!-- data of the position and speed, -->
         <xs:element name="safetyExt" type="VehicleSafetyExtension"  minOccurs="0"/>
         <xs:element name="datSet" type="VehicleStatus"  minOccurs="0"/>
         <!-- a seq of data frames
         which encodes the data -->
         <xs:element name="localSnapshot" type="local:Snapshot" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_SnapshotDistance -->
<xs:complexType name="SnapshotDistance" >
      <xs:sequence>
         <xs:element name="d1" >
            <xs:simpleType>
               <xs:restriction base="xs:unsignedShort">
                  <xs:maxInclusive value="999"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- meters -->
         <xs:element name="s1" >
            <xs:simpleType>
               <xs:restriction base="xs:unsignedByte">
                  <xs:maxInclusive value="50"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- meters\second -->
         <xs:element name="d2" >
            <xs:simpleType>
               <xs:restriction base="xs:unsignedShort">
                  <xs:maxInclusive value="999"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- meters -->
         <xs:element name="s2" >
            <xs:simpleType>
               <xs:restriction base="xs:unsignedByte">
                  <xs:maxInclusive value="50"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- meters\second -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_SnapshotTime -->
<xs:complexType name="SnapshotTime" >
      <xs:sequence>
         <xs:element name="t1" >
            <xs:simpleType>
               <xs:restriction base="xs:unsignedByte">
                  <xs:minInclusive value="1"/>
                  <xs:maxInclusive value="99"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- m/sec - the instantaneous speed when the
         calculation is performed -->
         <xs:element name="s1" >
            <xs:simpleType>
               <xs:restriction base="xs:unsignedByte">
                  <xs:maxInclusive value="50"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- seconds -->
         <xs:element name="t2" >
            <xs:simpleType>
               <xs:restriction base="xs:unsignedByte">
                  <xs:minInclusive value="1"/>
                  <xs:maxInclusive value="99"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- m/sec - the instantaneous speed when the
         calculation is performed -->
         <xs:element name="s2" >
            <xs:simpleType>
               <xs:restriction base="xs:unsignedByte">
                  <xs:maxInclusive value="50"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- seconds -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_SpecialLane -->
<xs:complexType name="SpecialLane" >
      <xs:sequence>
         <xs:element name="laneNumber" type="LaneNumber" />
         <xs:element name="laneWidth" type="LaneWidth"  minOccurs="0"/>
         <xs:element name="laneAttributes" type="SpecialLaneAttributes" />
         <xs:element name="nodeList" type="NodeList" />
         <!-- path details of the lane and width -->
         <xs:element name="keepOutList" type="NodeList"  minOccurs="0"/>
         <!-- no stop points along the path -->
         <xs:element name="connectsTo" type="ConnectsTo"  minOccurs="0"/>
         <!-- a list of other lanes and their
         turning use by this lane -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_Speed_Heading_Throttle_Confidence -->
<xs:complexType name="SpeedandHeadingandThrottleConfidence" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            to be packed as follows:
            SEQUENCE  {
            heading   HeadingConfidence,    -x- 3 bits
            speed     SpeedConfidence,      -x- 3 bits
            throttle  ThrottleConfidence   -x- 2 bits
            }
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="SpeedandHeadingandThrottleConfidence-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="SpeedandHeadingandThrottleConfidence-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="2"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_ITIS_Phrase_SpeedLimit -->
<xs:complexType name="SpeedLimit" >
      <xs:sequence minOccurs="1" maxOccurs="10">
         <xs:element name="speedLimit-item" >
            <xs:complexType>
               <xs:sequence>
                  <xs:choice >
                     <xs:element name="itis" type="itis:ITIScodes" />
                     <xs:element name="text" >
                        <xs:simpleType>
                           <xs:restriction base="xs:string">
                              <xs:minLength value="1"/>
                              <xs:maxLength value="16"/>
                           </xs:restriction>
                        </xs:simpleType>
                     </xs:element>
                  </xs:choice>
               </xs:sequence>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_TransmissionAndSpeed -->
<xs:complexType name="TransmissionAndSpeed" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            bits 13~15 to be made up of the data element
            DE_TransmissionState
            bits 0~12 to be made up of the data element
            DE_Speed
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="TransmissionAndSpeed-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="TransmissionAndSpeed-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="3"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DF_ValidRegion -->
<xs:complexType name="ValidRegion" >
      <xs:sequence>
         <xs:element name="direction" type="HeadingSlice" />
         <!-- field of view over which this applies, -->
         <xs:element name="extent" type="Extent"  minOccurs="0"/>
         <!-- the spatial distance over which this
         message applies and should be presented
         to the driver -->
         <xs:element name="area" >
            <xs:complexType>
               <xs:choice>
                  <xs:element name="shapePointSet" type="ShapePointSet" />
                  <!-- A short road segment -->
                  <xs:element name="circle" type="Circle" />
                  <!-- A point and radius -->
                  <xs:element name="regionPointSet" type="RegionPointSet" />
                  <!-- Wide area enclosed regions -->
               </xs:choice>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_VehicleComputedLane -->
<xs:complexType name="VehicleComputedLane" >
      <xs:sequence>
         <xs:element name="laneNumber" type="LaneNumber" />
         <xs:element name="laneWidth" type="LaneWidth"  minOccurs="0"/>
         <xs:element name="laneAttributes" type="VehicleLaneAttributes"  minOccurs="0"/>
         <!-- if not present,  same as ref lane -->
         <xs:element name="refLaneNum" type="LaneNumber" />
         <!-- number of the ref lane to be used -->
         <xs:element name="lineOffset" type="DrivenLineOffset" />
         <xs:element name="keepOutList" type="NodeList"  minOccurs="0"/>
         <!-- no stop points along the path -->
         <xs:element name="connectsTo" type="ConnectsTo"  minOccurs="0"/>
         <!-- a list of other lanes and their
         turning use by this lane -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_VehicleIdent -->
<xs:complexType name="VehicleIdent" >
      <xs:sequence>
         <xs:element name="name" type="DescriptiveName"  minOccurs="0"/>
         <!-- a human readable name for debugging use -->
         <xs:element name="vin" type="VINstring"  minOccurs="0"/>
         <!-- vehicle VIN value -->
         <xs:element name="ownerCode"  minOccurs="0">
            <xs:simpleType>
               <xs:restriction base="xs:string">
                  <xs:minLength value="1"/>
                  <xs:maxLength value="32"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <!-- vehicle owner code -->
         <xs:element name="id" type="TemporaryID"  minOccurs="0"/>
         <!-- same value used in the BSM -->
         <xs:element name="vehicleType" type="VehicleType"  minOccurs="0"/>
         <xs:element name="vehicleClass"  minOccurs="0">
            <xs:complexType>
               <xs:choice>
                  <xs:element name="vGroup" type="itis:VehicleGroupAffected" />
                  <xs:element name="rGroup" type="itis:ResponderGroupAffected" />
                  <xs:element name="rEquip" type="itis:IncidentResponseEquipment" />
               </xs:choice>
            </xs:complexType>
         </xs:element>
         <xs:element name="localVehicleIdent" type="local:VehicleIdent" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_VehicleReferenceLane -->
<xs:complexType name="VehicleReferenceLane" >
      <xs:sequence>
         <xs:element name="laneNumber" type="LaneNumber" />
         <xs:element name="laneWidth" type="LaneWidth"  minOccurs="0"/>
         <xs:element name="laneAttributes" type="VehicleLaneAttributes" />
         <xs:element name="nodeList" type="NodeList" />
         <!-- path details of the lane and width -->
         <xs:element name="keepOutList" type="NodeList"  minOccurs="0"/>
         <!-- no stop points along the path -->
         <xs:element name="connectsTo" type="ConnectsTo"  minOccurs="0"/>
         <!-- a list of other lanes and their
         turning use by this lane -->
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_VehicleSafetyExtension -->
<xs:complexType name="VehicleSafetyExtension" >
      <xs:sequence>
         <xs:element name="events" type="EventFlags"  minOccurs="0"/>
         <xs:element name="pathHistory" type="PathHistory"  minOccurs="0"/>
         <xs:element name="pathPrediction" type="PathPrediction"  minOccurs="0"/>
         <xs:element name="theRTCM" type="RTCMPackage"  minOccurs="0"/>
         <xs:element name="localVehicleSafetyExtension" type="local:VehicleSafetyExtension" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_VehicleSize -->
<xs:complexType name="VehicleSize" >
      <xs:annotation>
         <xs:documentation>       
            3 bytes in length
         </xs:documentation>
      </xs:annotation>
      <xs:sequence>
         <xs:element name="width" type="VehicleWidth" />
         <xs:element name="length" type="VehicleLength" />
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_VehicleStatus -->
<xs:complexType name="VehicleStatus" >
      <xs:sequence>
         <xs:element name="lights" type="ExteriorLights"  minOccurs="0"/>
         <!-- Exterior Lights -->
         <xs:element name="lightBar" type="LightbarInUse"  minOccurs="0"/>
         <!-- PS Lights -->
         <xs:element name="wipers"  minOccurs="0">
            <xs:complexType>
               <xs:sequence>
                  <xs:element name="statusFront" type="WiperStatusFront" />
                  <xs:element name="rateFront" type="WiperRate" />
                  <xs:element name="statusRear" type="WiperStatusRear"  minOccurs="0"/>
                  <xs:element name="rateRear" type="WiperRate"  minOccurs="0"/>
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <!-- Wipers -->
         <xs:element name="brakeStatus" type="BrakeSystemStatus"  minOccurs="0"/>
         <!-- 2 bytes with the following in it:
         wheelBrakes        BrakeAppliedStatus,
         -x- 4 bits
         traction           TractionControlState,
         -x- 2 bits
         abs                AntiLockBrakeStatus,
         -x- 2 bits
         scs                StablityControlStatus,
         -x- 2 bits
         brakeBoost         BrakeBoostApplied,
         -x- 2 bits
         spareBits
         -x- 4 bits
         Note that is present in BSM Part I
         Braking Data -->
         <xs:element name="brakePressure" type="BrakeAppliedPressure"  minOccurs="0"/>
         <!-- Braking Pressure -->
         <xs:element name="roadFriction" type="CoefficientOfFriction"  minOccurs="0"/>
         <!-- Roadway Friction -->
         <xs:element name="sunData" type="SunSensor"  minOccurs="0"/>
         <!-- Sun Sensor -->
         <xs:element name="rainData" type="RainSensor"  minOccurs="0"/>
         <!-- Rain Sensor -->
         <xs:element name="airTemp" type="AmbientAirTemperature"  minOccurs="0"/>
         <!-- Air Temperature -->
         <xs:element name="airPres" type="AmbientAirPressure"  minOccurs="0"/>
         <!-- Air Pressure -->
         <xs:element name="steering"  minOccurs="0">
            <xs:complexType>
               <xs:sequence>
                  <xs:element name="angle" type="SteeringWheelAngle" />
                  <xs:element name="confidence" type="SteeringWheelAngleConfidence"  minOccurs="0"/>
                  <xs:element name="rate" type="SteeringWheelAngleRateOfChange"  minOccurs="0"/>
                  <xs:element name="wheels" type="DrivingWheelAngle"  minOccurs="0"/>
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <!-- steering data -->
         <xs:element name="accelSets"  minOccurs="0">
            <xs:complexType>
               <xs:sequence>
                  <xs:element name="accel4way" type="AccelerationSet4Way"  minOccurs="0"/>
                  <xs:element name="vertAccelThres" type="VerticalAccelerationThreshold"  minOccurs="0"/>
                  <!-- Wheel Exceeded point -->
                  <xs:element name="yawRateCon" type="YawRateConfidence"  minOccurs="0"/>
                  <!-- Yaw Rate Confidence -->
                  <xs:element name="hozAccelCon" type="AccelerationConfidence"  minOccurs="0"/>
                  <!-- Acceleration Confidence -->
                  <xs:element name="confidenceSet" type="ConfidenceSet"  minOccurs="0"/>
                  <!-- general ConfidenceSet -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <xs:element name="object"  minOccurs="0">
            <xs:complexType>
               <xs:sequence>
                  <xs:element name="obDist" type="ObstacleDistance" />
                  <!-- Obstacle Distance -->
                  <xs:element name="obDirect" type="ObstacleDirection" />
                  <!-- Obstacle Direction -->
                  <xs:element name="dateTime" type="DDateTime" />
                  <!-- time detected -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <!-- detected Obstacle data -->
         <xs:element name="fullPos" type="FullPositionVector"  minOccurs="0"/>
         <!-- complete set of time and
         position,  speed,  heading -->
         <xs:element name="throttlePos" type="ThrottlePosition"  minOccurs="0"/>
         <xs:element name="speedHeadC" type="SpeedandHeadingandThrottleConfidence"  minOccurs="0"/>
         <xs:element name="speedC" type="SpeedConfidence"  minOccurs="0"/>
         <xs:element name="vehicleData"  minOccurs="0">
            <xs:complexType>
               <xs:sequence>
                  <xs:element name="height" type="VehicleHeight" />
                  <xs:element name="bumpers" type="BumperHeights" />
                  <xs:element name="mass" type="VehicleMass" />
                  <xs:element name="trailerWeight" type="TrailerWeight" />
                  <xs:element name="type" type="VehicleType" />
                  <!-- values for width and length are sent in BSM part I as well. -->
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <!-- vehicle data -->
         <xs:element name="vehicleIdent" type="VehicleIdent"  minOccurs="0"/>
         <!-- comm vehicle data -->
         <xs:element name="j1939data" type="J1939data"  minOccurs="0"/>
         <!-- Various SAE J1938 data items -->
         <xs:element name="weatherReport"  minOccurs="0">
            <xs:complexType>
               <xs:sequence>
                  <xs:element name="isRaining" type="ntcip:EssPrecipYesNo" />
                  <xs:element name="rainRate" type="ntcip:EssPrecipRate"  minOccurs="0"/>
                  <xs:element name="precipSituation" type="ntcip:EssPrecipSituation"  minOccurs="0"/>
                  <xs:element name="solarRadiation" type="ntcip:EssSolarRadiation"  minOccurs="0"/>
                  <xs:element name="friction" type="ntcip:EssMobileFriction"  minOccurs="0"/>
               </xs:sequence>
            </xs:complexType>
         </xs:element>
         <!-- local weather data -->
         <xs:element name="gpsStatus" type="GPSstatus"  minOccurs="0"/>
         <!-- vehicle&apos;s GPS -->
         <xs:element name="localVehicleStatus" type="local:VehicleStatus" minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_VehicleStatusRequest -->
<xs:complexType name="VehicleStatusRequest" >
      <xs:sequence>
         <xs:element name="dataType" type="VehicleStatusDeviceTypeTag" />
         <xs:element name="subType"  minOccurs="0">
            <xs:simpleType>
               <xs:restriction base="xs:unsignedByte">
                  <xs:minInclusive value="1"/>
                  <xs:maxInclusive value="15"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <xs:element name="sendOnLessThenValue"  minOccurs="0">
            <xs:simpleType>
               <xs:restriction base="xs:short">
                  <xs:minInclusive value="-32767"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <xs:element name="sendOnMoreThenValue"  minOccurs="0">
            <xs:simpleType>
               <xs:restriction base="xs:short">
                  <xs:minInclusive value="-32767"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:element>
         <xs:element name="sendAll"  minOccurs="0">
            <xs:simpleType>  
               <xs:restriction base="xs:boolean"/> 
            </xs:simpleType>  
         </xs:element>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_WiperStatus -->
<xs:complexType name="WiperStatus" >
      <xs:sequence>
         <xs:element name="statusFront" type="WiperStatusFront" />
         <xs:element name="rateFront" type="WiperRate" />
         <xs:element name="statusRear" type="WiperStatusRear"  minOccurs="0"/>
         <xs:element name="rateRear" type="WiperRate"  minOccurs="0"/>
      </xs:sequence>
</xs:complexType>
 
<!-- Descriptive Name: DF_ITIS_Phrase_WorkZone -->
<xs:complexType name="WorkZone" >
      <xs:sequence minOccurs="1" maxOccurs="10">
         <xs:element name="workZone-item" >
            <xs:complexType>
               <xs:sequence>
                  <xs:choice >
                     <xs:element name="itis" type="itis:ITIScodes" />
                     <xs:element name="text" >
                        <xs:simpleType>
                           <xs:restriction base="xs:string">
                              <xs:minLength value="1"/>
                              <xs:maxLength value="16"/>
                           </xs:restriction>
                        </xs:simpleType>
                     </xs:element>
                  </xs:choice>
               </xs:sequence>
            </xs:complexType>
         </xs:element>
      </xs:sequence>
</xs:complexType>
  
 
<!-- Descriptive Name: DE_Acceleration -->
<xs:simpleType name="Acceleration" >
      <xs:annotation>
         <xs:documentation>       
            LSB units are 0.01 m/s^2
            the value 2000 shall be used for values greater than 2000
            the value -2000 shall be used for values less than -2000
            a value of 2001 shall be used for Unavailable
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:short">
         <xs:minInclusive value="-2000"/>
         <xs:maxInclusive value="2001"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_AccelerationConfidence -->
<xs:simpleType name="AccelerationConfidence" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- B&apos;000  Not Equipped or data is unavailable
            accl 100 00 (1) -- B&apos;001  100  meters / second squared
            accl 010 00 (2) -- B&apos;010  10   meters / second squared
            accl 005 00 (3) -- B&apos;011  5    meters / second squared
            accl 001 00 (4) -- B&apos;100  1    meters / second squared
            accl 000 10 (5) -- B&apos;101  0.1  meters / second squared
            accl 000 05 (6) -- B&apos;110  0.05 meters / second squared
            accl 000 01 (7) -- B&apos;111  0.01 meters / second squared
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 3 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="7"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="accl 100 00"/>
               <xs:enumeration value="accl 010 00"/>
               <xs:enumeration value="accl 005 00"/>
               <xs:enumeration value="accl 001 00"/>
               <xs:enumeration value="accl 000 10"/>
               <xs:enumeration value="accl 000 05"/>
               <xs:enumeration value="accl 000 01"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_AmbientAirPressure-Barometric-Pressure -->
<xs:simpleType name="AmbientAirPressure" >
      <xs:annotation>
         <xs:documentation>       
            8 Bits in hPa starting at 580 with a resolution of
            2 hPa resulting in a range of 580 to 1090
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_AmbientAirTemperature -->
<xs:simpleType name="AmbientAirTemperature" >
      <xs:annotation>
         <xs:documentation>       
            in deg C with a -40 offset
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="191"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_AntiLockBrakeStatus -->
<xs:simpleType name="AntiLockBrakeStatus" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- B&apos;00  Vehicle Not Equipped with ABS
             -- or ABS status is unavailable
            off (1) -- B&apos;01  Vehicle&apos;s ABS is Off
            on (2) -- B&apos;10  Vehicle&apos;s ABS is On  (but not engaged)
            engaged (3) -- B&apos;11  Vehicle&apos;s ABS is Engaged
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 2 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="off"/>
               <xs:enumeration value="on"/>
               <xs:enumeration value="engaged"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_ApproachNumber -->
<xs:simpleType name="ApproachNumber" >
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="127"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_AuxiliaryBrakeStatus -->
<xs:simpleType name="AuxiliaryBrakeStatus" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- B&apos;00  Vehicle Not Equipped with Aux Brakes
             -- or Aux Brakes status is unavailable
            off (1) -- B&apos;01  Vehicle&apos;s Aux Brakes are Off
            on (2) -- B&apos;10  Vehicle&apos;s Aux Brakes are On  ( Engaged )
            reserved (3) -- B&apos;11
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 2 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="off"/>
               <xs:enumeration value="on"/>
               <xs:enumeration value="reserved"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Axle-Location -->
<xs:simpleType name="AxleLocation" >
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="127"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Axle-Weight -->
<xs:simpleType name="AxleWeight" >
      <xs:restriction base="xs:unsignedShort"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_BarrierAttributes -->
<xs:simpleType name="BarrierAttributes" >
      <xs:annotation>
         <xs:documentation>       
            With bits as defined:
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="8192"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_BrakeAppliedPressure -->
<xs:simpleType name="BrakeAppliedPressure" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- B&apos;0000 Not Equipped
             -- or Brake Pres status is unavailable
            minPressure (1) -- B&apos;0001 Minimum Braking Pressure
            bkLvl 2 (2) -- B&apos;0010
            bkLvl 3 (3) -- B&apos;0011
            bkLvl 4 (4) -- B&apos;0100
            bkLvl 5 (5) -- B&apos;0101
            bkLvl 6 (6) -- B&apos;0110
            bkLvl 7 (7) -- B&apos;0111
            bkLvl 8 (8) -- B&apos;1000
            bkLvl 9 (9) -- B&apos;1001
            bkLvl 10 (10) -- B&apos;1010
            bkLvl 11 (11) -- B&apos;1011
            bkLvl 12 (12) -- B&apos;1100
            bkLvl 13 (13) -- B&apos;1101
            bkLvl 14 (14) -- B&apos;1110
            maxPressure (15) -- B&apos;1111 Maximum Braking Pressure
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 4 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="15"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="minPressure"/>
               <xs:enumeration value="bkLvl 2"/>
               <xs:enumeration value="bkLvl 3"/>
               <xs:enumeration value="bkLvl 4"/>
               <xs:enumeration value="bkLvl 5"/>
               <xs:enumeration value="bkLvl 6"/>
               <xs:enumeration value="bkLvl 7"/>
               <xs:enumeration value="bkLvl 8"/>
               <xs:enumeration value="bkLvl 9"/>
               <xs:enumeration value="bkLvl 10"/>
               <xs:enumeration value="bkLvl 11"/>
               <xs:enumeration value="bkLvl 12"/>
               <xs:enumeration value="bkLvl 13"/>
               <xs:enumeration value="bkLvl 14"/>
               <xs:enumeration value="maxPressure"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_BrakeAppliedStatus -->
<xs:simpleType name="BrakeAppliedStatus-item" >
      <xs:annotation>
         <xs:appinfo>
            allOff (0) -- B&apos;0000  The condition All Off
            leftFront (1) -- B&apos;0001  Left Front Active
            leftRear (2) -- B&apos;0010  Left Rear Active
            rightFront (4) -- B&apos;0100  Right Front Active
            rightRear (8) -- B&apos;1000  Right Rear Active
         </xs:appinfo>
         <xs:documentation>       
            to fit in 4 bits
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:int">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="8"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="allOff"/>
               <xs:enumeration value="leftFront"/>
               <xs:enumeration value="leftRear"/>
               <xs:enumeration value="rightFront"/>
               <xs:enumeration value="rightRear"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
<xs:simpleType name="BrakeAppliedStatus">
   <xs:list itemType="BrakeAppliedStatus-item"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_BrakeBoostApplied -->
<xs:simpleType name="BrakeBoostApplied" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- Vehicle not equipped with brake boost
             -- or brake boost data is unavailable
            off (1) -- Vehicle&apos;s brake boost is off
            on (2) -- Vehicle&apos;s brake boost is on  (applied)
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 2 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="2"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="off"/>
               <xs:enumeration value="on"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_BumperHeightFront -->
<xs:simpleType name="BumperHeightFront" >
      <xs:annotation>
         <xs:documentation>       
            in units of 0.01 meters from ground surface.
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="127"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_BumperHeightRear -->
<xs:simpleType name="BumperHeightRear" >
      <xs:annotation>
         <xs:documentation>       
            in units of 0.01 meters from ground surface.
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="127"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Cargo-Weight -->
<xs:simpleType name="CargoWeight" >
      <xs:restriction base="xs:unsignedShort"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_CodeWord -->
<xs:complexType name="CodeWord" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            any octect string up to 16 bytes
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="CodeWord-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="CodeWord-string">
   <xs:restriction base="xs:base64Binary">
      <xs:minLength value="2"/>
      <xs:maxLength value="22"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_CoefficientOfFriction -->
<xs:simpleType name="CoefficientOfFriction" >
      <xs:annotation>
         <xs:documentation>       
            where 0 = 0.00 micro  (frictonless)
            and 50 = 0.98 micro,  in steps of 0.02
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="50"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_ColorState -->
<xs:simpleType name="ColorState" >
      <xs:annotation>
         <xs:appinfo>
            dark (0) -- (B0000)  Dark ,
            green (1) -- (B0001)
            green flashing (9) -- (B1001)
            yellow (2) -- (B0010)
            yellow flashing (10) -- (B1010)
            red (4) -- (B0100)
            red flashing (12) -- (B1100)
         </xs:appinfo>
         <xs:documentation>       
            a 4 bit encoded value
            note that above may be combined
            to create additonal patterns
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="12"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="dark"/>
               <xs:enumeration value="green"/>
               <xs:enumeration value="green flashing"/>
               <xs:enumeration value="yellow"/>
               <xs:enumeration value="yellow flashing"/>
               <xs:enumeration value="red"/>
               <xs:enumeration value="red flashing"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_Count -->
<xs:simpleType name="Count" >
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="32"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_CrosswalkLaneAttributes -->
<xs:simpleType name="CrosswalkLaneAttributes" >
      <xs:annotation>
         <xs:appinfo>
            noData (0) -- (&apos;0000000000000000&apos;B)
            twoWayPath (1) -- (&apos;0000000000000001&apos;B)
            pedestrianCrosswalk (2) -- (&apos;0000000000000010&apos;B)
            bikeLane (4) -- (&apos;0000000000000100&apos;B)
            railRoadTrackPresent (8) -- (&apos;0000000000001000&apos;B)
            oneWayPathOfTravel (16) -- (&apos;0000000000010000&apos;B)
            pedestrianCrosswalkTypeA (32) -- (&apos;0000000000100000&apos;B)
            pedestrianCrosswalkTypeB (64) -- (&apos;0000000001000000&apos;B)
            pedestrianCrosswalkTypeC (128) -- (&apos;0000000010000000&apos;B)
         </xs:appinfo>
         <xs:documentation>       
            MUTCD provides no real &amp;quot;types&amp;quot; to use here
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="128"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="noData"/>
               <xs:enumeration value="twoWayPath"/>
               <xs:enumeration value="pedestrianCrosswalk"/>
               <xs:enumeration value="bikeLane"/>
               <xs:enumeration value="railRoadTrackPresent"/>
               <xs:enumeration value="oneWayPathOfTravel"/>
               <xs:enumeration value="pedestrianCrosswalkTypeA"/>
               <xs:enumeration value="pedestrianCrosswalkTypeB"/>
               <xs:enumeration value="pedestrianCrosswalkTypeC"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_DDay -->
<xs:simpleType name="DDay" >
      <xs:annotation>
         <xs:documentation>       
            units of days
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="31"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_DescriptiveName -->
<xs:simpleType name="DescriptiveName" >
      <xs:restriction base="xs:string">
         <xs:minLength value="1"/>
         <xs:maxLength value="63"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_DHour -->
<xs:simpleType name="DHour" >
      <xs:annotation>
         <xs:documentation>       
            units of hours
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="31"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_DirectionOfUse -->
<xs:simpleType name="DirectionOfUse" >
      <xs:annotation>
         <xs:appinfo>
            forward (0) -- direction of travel follows node ordering
            reverse (1) -- direction of travel is the reverse of node ordering
            both (2) -- direction of travel allowed in both directions
         </xs:appinfo>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="2"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="forward"/>
               <xs:enumeration value="reverse"/>
               <xs:enumeration value="both"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_DMinute -->
<xs:simpleType name="DMinute" >
      <xs:annotation>
         <xs:documentation>       
            units of minutes
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="63"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_DMonth -->
<xs:simpleType name="DMonth" >
      <xs:annotation>
         <xs:documentation>       
            units of months
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="15"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_DOffset -->
<xs:simpleType name="DOffset" >
      <xs:annotation>
         <xs:documentation>       
            units of minutes from UTC time
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:short">
         <xs:minInclusive value="-840"/>
         <xs:maxInclusive value="840"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Drive-Axle-Lift-Air-Pressure -->
<xs:simpleType name="DriveAxleLiftAirPressure" >
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="1000"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Drive-Axle-Location -->
<xs:simpleType name="DriveAxleLocation" >
      <xs:restriction base="xs:unsignedByte"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Drive-Axle-Lube-Pressure -->
<xs:simpleType name="DriveAxleLubePressure" >
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="1000"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Drive-Axle-Temperature -->
<xs:simpleType name="DriveAxleTemperature" >
      <xs:restriction base="xs:short">
         <xs:minInclusive value="-40"/>
         <xs:maxInclusive value="210"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_DrivenLineOffset -->
<xs:simpleType name="DrivenLineOffset" >
      <xs:annotation>
         <xs:documentation>       
            LSB units are 1 cm.
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:short">
         <xs:minInclusive value="-32767"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_DrivingWheelAngle -->
<xs:simpleType name="DrivingWheelAngle" >
      <xs:annotation>
         <xs:documentation>       
            LSB units of 0.3333 degrees.
            a range of 42.33 degrees each way
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:byte">
         <xs:minInclusive value="-127"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_DSecond -->
<xs:simpleType name="DSecond" >
      <xs:annotation>
         <xs:documentation>       
            units of miliseconds
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_DSignalSeconds -->
<xs:simpleType name="DSignalSeconds" >
      <xs:annotation>
         <xs:documentation>       
            units of 0.01 seconds
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="30000"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_DSRC_MessageID -->
<xs:simpleType name="DSRCmsgID" >
      <xs:annotation>
         <xs:appinfo>
            reserved (0)
            alaCarteMessage (1) -- ACM
            basicSafetyMessage (2) -- BSM ,
            basicSafetyMessageVerbose (3) -- used for testing only
            commonSafetyRequest (4) -- CSR
            emergencyVehicleAlert (5) -- EVA
            intersectionCollisionAlert (6) -- ICA
            mapData (7) -- MAP ,
            nmeaCorrections (8) -- NMEA
            probeDataManagement (9) -- PDM
            probeVehicleData (10) -- PVD
            roadSideAlert (11) -- RSA
            rtcmCorrections (12) -- RTCM
            signalPhaseAndTimingMessage (13) -- SPAT
            signalRequestMessage (14) -- SRM
            signalStatusMessage (15) -- SSM
            travelerInformation (16) -- TIM
         </xs:appinfo>
         <xs:documentation>       
            values to 127 reserved for std use
            values 128 to 255 reserved for local use
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="16"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="reserved"/>
               <xs:enumeration value="alaCarteMessage"/>
               <xs:enumeration value="basicSafetyMessage"/>
               <xs:enumeration value="basicSafetyMessageVerbose"/>
               <xs:enumeration value="commonSafetyRequest"/>
               <xs:enumeration value="emergencyVehicleAlert"/>
               <xs:enumeration value="intersectionCollisionAlert"/>
               <xs:enumeration value="mapData"/>
               <xs:enumeration value="nmeaCorrections"/>
               <xs:enumeration value="probeDataManagement"/>
               <xs:enumeration value="probeVehicleData"/>
               <xs:enumeration value="roadSideAlert"/>
               <xs:enumeration value="rtcmCorrections"/>
               <xs:enumeration value="signalPhaseAndTimingMessage"/>
               <xs:enumeration value="signalRequestMessage"/>
               <xs:enumeration value="signalStatusMessage"/>
               <xs:enumeration value="travelerInformation"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:DSRCmsgID" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_DYear -->
<xs:simpleType name="DYear" >
      <xs:annotation>
         <xs:documentation>       
            units of years
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="9999"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_Elevation -->
<xs:complexType name="Elevation" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            1 decimeter LSB  (10 cm)
            Encode elevations from 0 to 6143.9 meters
            above the reference ellipsoid as 0x0000 to 0xEFFF.
            Encode elevations from -409.5 to -0.1 meters,
            i.e. below the reference ellipsoid,  as 0xF001 to 0xFFFF
            unknown as 0xF000
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="Elevation-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="Elevation-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="3"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_ElevationConfidence -->
<xs:simpleType name="ElevationConfidence" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- B&apos;0000  Not Equipped or unavailable
            elev 500 00 (1) -- B&apos;0001   (500 m)
            elev 200 00 (2) -- B&apos;0010   (200 m)
            elev 100 00 (3) -- B&apos;0011   (100 m)
            elev 050 00 (4) -- B&apos;0100   (50 m)
            elev 020 00 (5) -- B&apos;0101   (20 m)
            elev 010 00 (6) -- B&apos;0110   (10 m)
            elev 005 00 (7) -- B&apos;0111   (5 m)
            elev 002 00 (8) -- B&apos;1000   (2 m)
            elev 001 00 (9) -- B&apos;1001   (1 m)
            elev 000 50 (10) -- B&apos;1010   (50 cm)
            elev 000 20 (11) -- B&apos;1011   (20 cm)
            elev 000 10 (12) -- B&apos;1100   (10 cm)
            elev 000 05 (13) -- B&apos;1101   (5 cm)
            elev 000 02 (14) -- B&apos;1110   (2 cm)
            elev 000 01 (15) -- B&apos;1111   (1 cm)
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 4 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="15"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="elev 500 00"/>
               <xs:enumeration value="elev 200 00"/>
               <xs:enumeration value="elev 100 00"/>
               <xs:enumeration value="elev 050 00"/>
               <xs:enumeration value="elev 020 00"/>
               <xs:enumeration value="elev 010 00"/>
               <xs:enumeration value="elev 005 00"/>
               <xs:enumeration value="elev 002 00"/>
               <xs:enumeration value="elev 001 00"/>
               <xs:enumeration value="elev 000 50"/>
               <xs:enumeration value="elev 000 20"/>
               <xs:enumeration value="elev 000 10"/>
               <xs:enumeration value="elev 000 05"/>
               <xs:enumeration value="elev 000 02"/>
               <xs:enumeration value="elev 000 01"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_EmergencyDetails -->
<xs:simpleType name="EmergencyDetails" >
      <xs:annotation>
         <xs:documentation>       
            First two bit  (MSB set to zero.
            Combining these 3 items in the remaning 6 bits
            sirenUse        SirenInUse
            lightsUse       LightbarInUse
            multi           MultiVehicleReponse
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="63"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_EventFlags -->
<xs:simpleType name="EventFlags" >
      <xs:annotation>
         <xs:documentation>       
            With bits as defined:
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="8192"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_Extent -->
<xs:simpleType name="Extent" >
      <xs:annotation>
         <xs:appinfo>
            useInstantlyOnly (0)
            useFor3meters (1)
            useFor10meters (2)
            useFor50meters (3)
            useFor100meters (4)
            useFor500meters (5)
            useFor1000meters (6)
            useFor5000meters (7)
            useFor10000meters (8)
            useFor50000meters (9)
            useFor100000meters (10)
            forever (127) -- very wide area
         </xs:appinfo>
         <xs:documentation>       
            encode as a single byte
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="127"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="useInstantlyOnly"/>
               <xs:enumeration value="useFor3meters"/>
               <xs:enumeration value="useFor10meters"/>
               <xs:enumeration value="useFor50meters"/>
               <xs:enumeration value="useFor100meters"/>
               <xs:enumeration value="useFor500meters"/>
               <xs:enumeration value="useFor1000meters"/>
               <xs:enumeration value="useFor5000meters"/>
               <xs:enumeration value="useFor10000meters"/>
               <xs:enumeration value="useFor50000meters"/>
               <xs:enumeration value="useFor100000meters"/>
               <xs:enumeration value="forever"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_ExteriorLights -->
<xs:simpleType name="ExteriorLights" >
      <xs:annotation>
         <xs:documentation>       
            With bits as defined:
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="256"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_FurtherInfoID -->
<xs:complexType name="FurtherInfoID" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            a link to any other incident
            information data that may be available
            in the normal ATIS incident description
            or other messages
            two value bytes in length
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="FurtherInfoID-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="FurtherInfoID-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="3"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_GPSstatus -->
<xs:simpleType name="GPSstatus-item" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- Not Equipped or unavailable
            isHealthy (1)
            isMonitored (2)
            baseStationType (3) -- Set to zero if a moving base station ,
             -- set to one if it is a fixed base station
            aPDOPofUnder5 (4) -- A dilution of precision greater then 5
            inViewOfUnder5 (5) -- Less then 5 satellites in view
            localCorrectionsPresent (6)
            networkCorrectionsPresent (7)
         </xs:appinfo>
         <xs:documentation>       
            (SIZE (1) )
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:int">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="7"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="isHealthy"/>
               <xs:enumeration value="isMonitored"/>
               <xs:enumeration value="baseStationType"/>
               <xs:enumeration value="aPDOPofUnder5"/>
               <xs:enumeration value="inViewOfUnder5"/>
               <xs:enumeration value="localCorrectionsPresent"/>
               <xs:enumeration value="networkCorrectionsPresent"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
<xs:simpleType name="GPSstatus">
   <xs:list itemType="GPSstatus-item"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_Heading -->
<xs:simpleType name="Heading" >
      <xs:annotation>
         <xs:documentation>       
            LSB of 0.0125 degrees
            A range of 0 to 359.9875 degrees
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="28800"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_HeadingConfidence -->
<xs:simpleType name="HeadingConfidence" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- B&apos;000  Not Equipped or unavailable
            prec45deg (1) -- B&apos;001  45   degrees
            prec10deg (2) -- B&apos;010  10   degrees
            prec05deg (3) -- B&apos;011  5    degrees
            prec01deg (4) -- B&apos;100  1    degrees
            prec0 1deg (5) -- B&apos;101  0.1  degrees
            prec0 05deg (6) -- B&apos;110  0.05 degrees
            prec0 01deg (7) -- B&apos;111  0.01 degrees
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 3 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="7"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="prec45deg"/>
               <xs:enumeration value="prec10deg"/>
               <xs:enumeration value="prec05deg"/>
               <xs:enumeration value="prec01deg"/>
               <xs:enumeration value="prec0 1deg"/>
               <xs:enumeration value="prec0 05deg"/>
               <xs:enumeration value="prec0 01deg"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_HeadingSlice -->
<xs:complexType name="HeadingSlice" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            Each bit 22.5 degree starting from
            North and moving Eastward  (clockwise)
            Define global enums for this entry
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="HeadingSlice-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="HeadingSlice-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="3"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_IntersectionID -->
<xs:complexType name="IntersectionID" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            note that often only the lower 16 bits of this value
            will be sent as the operational region  (state etc)  will
            be known and not sent each time
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="IntersectionID-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="IntersectionID-string">
   <xs:restriction base="xs:base64Binary">
      <xs:minLength value="3"/>
      <xs:maxLength value="6"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_Intersection-Status-Object -->
<xs:complexType name="IntersectionStatusObject" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            with bits set as follows Bit #:
            0    Manual Control is enabled.  Timing reported is per
            programmed values,  etc but person at cabinet can
            manually request that certain intervals are terminated
            early  (e.g. green) .
            1    Stop Time is activated and all counting/timing has stopped.
            2    Intersection is in Conflict Flash.
            3    Preempt is Active
            4    Transit Signal Priority  (TSP)  is Active
            5    Reserved
            6    Reserved
            7    Reserved as zero
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="IntersectionStatusObject-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="IntersectionStatusObject-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="2"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_LaneCount -->
<xs:simpleType name="LaneCount" >
      <xs:annotation>
         <xs:documentation>       
            the number of lanes to follow
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_LaneManeuverCode -->
<xs:simpleType name="LaneManeuverCode" >
      <xs:annotation>
         <xs:appinfo>
            unknown (0) -- used for N.A. as well
            uTurn (1)
            leftTurn (2)
            rightTurn (3)
            straightAhead (4)
            softLeftTurn (5)
            softRightTurn (6)
         </xs:appinfo>
         <xs:documentation>       
            values to 127 reserved for std use
            values 128 to 255 reserved for local use
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="6"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unknown"/>
               <xs:enumeration value="uTurn"/>
               <xs:enumeration value="leftTurn"/>
               <xs:enumeration value="rightTurn"/>
               <xs:enumeration value="straightAhead"/>
               <xs:enumeration value="softLeftTurn"/>
               <xs:enumeration value="softRightTurn"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_LaneNumber -->
<xs:complexType name="LaneNumber" >
   <xs:simpleContent>
      <xs:extension base="LaneNumber-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="LaneNumber-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="2"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_LaneSet -->
<xs:complexType name="LaneSet" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            each byte encoded as a: LaneNumber,
            the collection of lanes,  by num,
            to which some state data applies
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="LaneSet-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="LaneSet-string">
   <xs:restriction base="xs:base64Binary">
      <xs:minLength value="2"/>
      <xs:maxLength value="170"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_LaneWidth -->
<xs:simpleType name="LaneWidth" >
      <xs:annotation>
         <xs:documentation>       
            units of 1 cm
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="32767"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_Latitude -->
<xs:simpleType name="Latitude" >
      <xs:annotation>
         <xs:documentation>       
            LSB = 1/10 micro degree
            Providing a range of plus-minus 90 degrees
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:int">
         <xs:minInclusive value="-900000000"/>
         <xs:maxInclusive value="900000001"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_LayerID -->
<xs:simpleType name="LayerID" >
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="100"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_LayerType -->
<xs:simpleType name="LayerType" >
      <xs:annotation>
         <xs:appinfo>
            none (0)
            mixedContent (1) -- two or more of the below types
            generalMapData (2)
            intersectionData (3)
            curveData (4)
            roadwaySectionData (5)
            parkingAreaData (6)
            sharedLaneData (7)
         </xs:appinfo>
         <xs:documentation>       
            values to 127 reserved for std use
            values 128 to 255 reserved for local use
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="7"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="none"/>
               <xs:enumeration value="mixedContent"/>
               <xs:enumeration value="generalMapData"/>
               <xs:enumeration value="intersectionData"/>
               <xs:enumeration value="curveData"/>
               <xs:enumeration value="roadwaySectionData"/>
               <xs:enumeration value="parkingAreaData"/>
               <xs:enumeration value="sharedLaneData"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:LayerType" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_LightbarInUse -->
<xs:simpleType name="LightbarInUse" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- Not Equipped or unavailable
            notInUse (1) -- none active
            inUse (2)
            sirenInUse (3)
            yellowCautionLights (4)
            schooldBusLights (5)
            arrowSignsActive (6)
            slowMovingVehicle (7)
            freqStops (8)
            reserved (9) -- for future use
         </xs:appinfo>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="9"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="notInUse"/>
               <xs:enumeration value="inUse"/>
               <xs:enumeration value="sirenInUse"/>
               <xs:enumeration value="yellowCautionLights"/>
               <xs:enumeration value="schooldBusLights"/>
               <xs:enumeration value="arrowSignsActive"/>
               <xs:enumeration value="slowMovingVehicle"/>
               <xs:enumeration value="freqStops"/>
               <xs:enumeration value="reserved"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_MAYDAY_Location_quality_code -->
<xs:simpleType name="Location-quality" >
      <xs:annotation>
         <xs:appinfo>
            loc qual bt1m (0) -- quality better than 1 meter
            loc qual bt5m (1) -- quality better than 5 meters
            loc qual bt12m (2) -- quality better than 12.5 meters
            loc qual bt50m (3) -- quality better than 50 meters
            loc qual bt125m (4) -- quality better than 125 meters
            loc qual bt500m (5) -- quality better than 500 meters
            loc qual bt1250m (6) -- quality better than 1250 meters
            loc qual unknown (7) -- quality value unknown
         </xs:appinfo>
         <xs:documentation>       
            3 bits,  appends with loc-tech to make one octet  (0..7)
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="7"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="loc qual bt1m"/>
               <xs:enumeration value="loc qual bt5m"/>
               <xs:enumeration value="loc qual bt12m"/>
               <xs:enumeration value="loc qual bt50m"/>
               <xs:enumeration value="loc qual bt125m"/>
               <xs:enumeration value="loc qual bt500m"/>
               <xs:enumeration value="loc qual bt1250m"/>
               <xs:enumeration value="loc qual unknown"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_MAYDAY_Location_tech_code -->
<xs:simpleType name="Location-tech" >
      <xs:annotation>
         <xs:appinfo>
            loc tech unknown (0) -- technology type unknown
            loc tech GPS (1) -- GPS technology only
            loc tech DGPS (2) -- differential GPS  (DGPS)  technology
            loc tech drGPS (3) -- dead reckoning system w/GPS
            loc tech drDGPS (4) -- dead reckoning system w/DGPS
            loc tech dr (5) -- dead reckoning only
            loc tech nav (6) -- autonomous navigation system on-board
            loc tech fault (31) -- feature is not working
         </xs:appinfo>
         <xs:documentation>       
            (0..31)  5 bits,  appends with loc-quality to make one octet
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="31"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="loc tech unknown"/>
               <xs:enumeration value="loc tech GPS"/>
               <xs:enumeration value="loc tech DGPS"/>
               <xs:enumeration value="loc tech drGPS"/>
               <xs:enumeration value="loc tech drDGPS"/>
               <xs:enumeration value="loc tech dr"/>
               <xs:enumeration value="loc tech nav"/>
               <xs:enumeration value="loc tech fault"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_Longitude -->
<xs:simpleType name="Longitude" >
      <xs:annotation>
         <xs:documentation>       
            LSB = 1/10 micro degree
            Providing a range of plus-minus 180 degrees
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:int">
         <xs:minInclusive value="-1800000000"/>
         <xs:maxInclusive value="1800000001"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_MinuteOfTheYear -->
<xs:simpleType name="MinuteOfTheYear" >
      <xs:restriction base="xs:unsignedInt">
         <xs:maxInclusive value="525960"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_MinutesDuration -->
<xs:simpleType name="MinutesDuration" >
      <xs:annotation>
         <xs:documentation>       
            units of minutes
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="32000"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_MsgCount -->
<xs:simpleType name="MsgCount" >
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="127"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_MsgCRC -->
<xs:complexType name="MsgCRC" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            created with the CRC-CCITT polynomial
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="MsgCRC-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="MsgCRC-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="3"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_MultiVehicleResponse -->
<xs:simpleType name="MultiVehicleResponse" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- Not Equipped or unavailable
            singleVehicle (1)
            multiVehicle (2)
            reserved (3) -- for future use
         </xs:appinfo>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="singleVehicle"/>
               <xs:enumeration value="multiVehicle"/>
               <xs:enumeration value="reserved"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_MUTCDCode -->
<xs:simpleType name="MUTCDCode" >
      <xs:annotation>
         <xs:appinfo>
            none (0) -- non-MUTCD information
            regulatory (1) -- &quot;R&quot; Regulatory signs
            warning (2) -- &quot;W&quot; warning signs
            maintenance (3) -- &quot;M&quot; Maintenance and construction
            motoristService (4) -- Motorist Services
            guide (5) -- &quot;G&quot; Guide signs
            rec (6) -- Recreation and Cultural Interest
         </xs:appinfo>
         <xs:documentation>       
            values to 127 reserved for std use
            values 128 to 255 reserved for local use
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="6"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="none"/>
               <xs:enumeration value="regulatory"/>
               <xs:enumeration value="warning"/>
               <xs:enumeration value="maintenance"/>
               <xs:enumeration value="motoristService"/>
               <xs:enumeration value="guide"/>
               <xs:enumeration value="rec"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:MUTCDCode" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_NMEA_MsgType -->
<xs:simpleType name="NMEA-MsgType" >
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="32767"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_NMEA_Payload -->
<xs:complexType name="NMEA-Payload" >
   <xs:simpleContent>
      <xs:extension base="NMEA-Payload-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="NMEA-Payload-string">
   <xs:restriction base="xs:base64Binary">
      <xs:minLength value="2"/>
      <xs:maxLength value="1364"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_NMEA_Revision -->
<xs:simpleType name="NMEA-Revision" >
      <xs:annotation>
         <xs:appinfo>
            unknown (0)
            reserved (1)
            rev1 (10)
            rev2 (20)
            rev3 (30)
            rev4 (40)
            rev5 (50)
         </xs:appinfo>
         <xs:documentation>       
            values to 127 reserved for std use
            values 128 to 255 reserved for local use
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="50"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unknown"/>
               <xs:enumeration value="reserved"/>
               <xs:enumeration value="rev1"/>
               <xs:enumeration value="rev2"/>
               <xs:enumeration value="rev3"/>
               <xs:enumeration value="rev4"/>
               <xs:enumeration value="rev5"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:NMEA-Revision" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_NTCIPVehicleclass, -->
<xs:complexType name="NTCIPVehicleclass" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            With bits set as per NTCIP values
            Priority Request Vehicle Class Type
            in the upper nibble
            Priority Request Vehicle Class Level
            in the lower nibble
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="NTCIPVehicleclass-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="NTCIPVehicleclass-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="2"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_ObjectCount -->
<xs:simpleType name="ObjectCount" >
      <xs:annotation>
         <xs:documentation>       
            a count of objects
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="6000"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_ObstacleDirection -->
<xs:simpleType name="ObstacleDirection" >
      <xs:annotation>
         <xs:documentation>       
            Use the header DE for this unless it proves different.
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base ="Heading"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_ObstacleDistance -->
<xs:simpleType name="ObstacleDistance" >
      <xs:annotation>
         <xs:documentation>       
            LSB units of meters
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="32767"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_Payload -->
<xs:complexType name="Payload" >
   <xs:simpleContent>
      <xs:extension base="Payload-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="Payload-string">
   <xs:restriction base="xs:base64Binary">
      <xs:minLength value="2"/>
      <xs:maxLength value="86"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_PayloadData -->
<xs:complexType name="PayloadData" >
   <xs:simpleContent>
      <xs:extension base="PayloadData-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="PayloadData-string">
   <xs:restriction base="xs:base64Binary">
      <xs:minLength value="2"/>
      <xs:maxLength value="2731"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_PedestrianDetect -->
<xs:simpleType name="PedestrianDetect" >
      <xs:annotation>
         <xs:appinfo>
            none (0) -- (B00000001)
            maybe (1) -- (B00000010)
            one (2) -- (B00000100)
            some (3) -- (B00001000)  Indicates more than one
         </xs:appinfo>
         <xs:documentation>       
            one byte
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="none"/>
               <xs:enumeration value="maybe"/>
               <xs:enumeration value="one"/>
               <xs:enumeration value="some"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_PedestrianSignalState -->
<xs:simpleType name="PedestrianSignalState" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- Not Equipped or unavailable
            stop (1) -- (B00000001)  do not walk
            caution (2) -- (B00000010)  flashing dont walk sign
            walk (3) -- (B00000100)  walk active
         </xs:appinfo>
         <xs:documentation>       
            one byte
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="stop"/>
               <xs:enumeration value="caution"/>
               <xs:enumeration value="walk"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_PositionConfidence -->
<xs:simpleType name="PositionConfidence" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- B&apos;0000  Not Equipped or unavailable
            a500m (1) -- B&apos;0001  500m  or about 5 * 10 ^ -3 decimal degrees
            a200m (2) -- B&apos;0010  200m  or about 2 * 10 ^ -3 decimal degrees
            a100m (3) -- B&apos;0011  100m  or about 1 * 10 ^ -3 decimal degrees
            a50m (4) -- B&apos;0100  50m   or about 5 * 10 ^ -4 decimal degrees
            a20m (5) -- B&apos;0101  20m   or about 2 * 10 ^ -4 decimal degrees
            a10m (6) -- B&apos;0110  10m   or about 1 * 10 ^ -4 decimal degrees
            a5m (7) -- B&apos;0111  5m    or about 5 * 10 ^ -5 decimal degrees
            a2m (8) -- B&apos;1000  2m    or about 2 * 10 ^ -5 decimal degrees
            a1m (9) -- B&apos;1001  1m    or about 1 * 10 ^ -5 decimal degrees
            a50cm (10) -- B&apos;1010  0.50m or about 5 * 10 ^ -6 decimal degrees
            a20cm (11) -- B&apos;1011  0.20m or about 2 * 10 ^ -6 decimal degrees
            a10cm (12) -- B&apos;1100  0.10m or about 1 * 10 ^ -6 decimal degrees
            a5cm (13) -- B&apos;1101  0.05m or about 5 * 10 ^ -7 decimal degrees
            a2cm (14) -- B&apos;1110  0.02m or about 2 * 10 ^ -7 decimal degrees
            a1cm (15) -- B&apos;1111  0.01m or about 1 * 10 ^ -7 decimal degrees
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 4 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="15"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="a500m"/>
               <xs:enumeration value="a200m"/>
               <xs:enumeration value="a100m"/>
               <xs:enumeration value="a50m"/>
               <xs:enumeration value="a20m"/>
               <xs:enumeration value="a10m"/>
               <xs:enumeration value="a5m"/>
               <xs:enumeration value="a2m"/>
               <xs:enumeration value="a1m"/>
               <xs:enumeration value="a50cm"/>
               <xs:enumeration value="a20cm"/>
               <xs:enumeration value="a10cm"/>
               <xs:enumeration value="a5cm"/>
               <xs:enumeration value="a2cm"/>
               <xs:enumeration value="a1cm"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_PreemptState -->
<xs:simpleType name="PreemptState" >
      <xs:annotation>
         <xs:appinfo>
            none (0) -- No preemption  (same as value = 2)
            other (1) -- Other
            notActive (2) -- Not Active  (same as value = 0)
            notActiveWithCall (3) -- Not Active With Call
            entryStarted (4) -- Entry Started
            trackService (5) -- Track Service
            dwell (6) -- Dwell
            linkActive (7) -- Link Active
            existStarted (8) -- Exit Started
            maximumPresence (9) -- Max Presence
            ackowledgedButOverridden (10) -- Ackowledged but Over-ridden
         </xs:appinfo>
         <xs:documentation>       
            To use 4 bits,
            typically packed with other items in a INTEGER  (-128..127)
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="10"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="none"/>
               <xs:enumeration value="other"/>
               <xs:enumeration value="notActive"/>
               <xs:enumeration value="notActiveWithCall"/>
               <xs:enumeration value="entryStarted"/>
               <xs:enumeration value="trackService"/>
               <xs:enumeration value="dwell"/>
               <xs:enumeration value="linkActive"/>
               <xs:enumeration value="existStarted"/>
               <xs:enumeration value="maximumPresence"/>
               <xs:enumeration value="ackowledgedButOverridden"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:PreemptState" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_Priority -->
<xs:complexType name="Priority" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            Follow definition notes on setting these bits
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="Priority-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="Priority-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="2"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_PriorityState -->
<xs:simpleType name="PriorityState" >
      <xs:annotation>
         <xs:appinfo>
            noneActive (0) -- No signal priority  (same as value = 1)
            none (1) -- TSP None
            requested (2) -- TSP Requested
            active (3) -- TSP Active
            activeButIhibitd (4) -- TSP Reservice  (active but inhibited)
            seccess (5) -- TSP Success
            removed (6) -- TSP Removed
            clearFail (7) -- TSP Clear Fail
            detectFail (8) -- TSP Detect Fail
            detectClear (9) -- TSP Detect Clear
            abort (10) -- TSP Abort  (needed to remain on-line)
            delayTiming (11) -- TSP Delay Timing
            extendTiming (12) -- TSP Extend Timing
            preemptOverride (13) -- TSP Preempt Over-ride
            adaptiveOverride (14) -- TSP Adaptive Over-ride
            reserved (15)
         </xs:appinfo>
         <xs:documentation>       
            To use 4 bits,
            typically packed with other items in a INTEGER  (-128..127)
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="15"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="noneActive"/>
               <xs:enumeration value="none"/>
               <xs:enumeration value="requested"/>
               <xs:enumeration value="active"/>
               <xs:enumeration value="activeButIhibitd"/>
               <xs:enumeration value="seccess"/>
               <xs:enumeration value="removed"/>
               <xs:enumeration value="clearFail"/>
               <xs:enumeration value="detectFail"/>
               <xs:enumeration value="detectClear"/>
               <xs:enumeration value="abort"/>
               <xs:enumeration value="delayTiming"/>
               <xs:enumeration value="extendTiming"/>
               <xs:enumeration value="preemptOverride"/>
               <xs:enumeration value="adaptiveOverride"/>
               <xs:enumeration value="reserved"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:PriorityState" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_ProbeSegmentNumber -->
<xs:simpleType name="ProbeSegmentNumber" >
      <xs:annotation>
         <xs:documentation>       
            value determined by local device
            as per standard
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="32767"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_RainSensor -->
<xs:simpleType name="RainSensor" >
      <xs:annotation>
         <xs:appinfo>
            none (0)
            lightMist (1)
            heavyMist (2)
            lightRainOrDrizzle (3)
            rain (4)
            moderateRain (5)
            heavyRain (6)
            heavyDownpour (7)
         </xs:appinfo>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="7"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="none"/>
               <xs:enumeration value="lightMist"/>
               <xs:enumeration value="heavyMist"/>
               <xs:enumeration value="lightRainOrDrizzle"/>
               <xs:enumeration value="rain"/>
               <xs:enumeration value="moderateRain"/>
               <xs:enumeration value="heavyRain"/>
               <xs:enumeration value="heavyDownpour"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_RequestedItem -->
<xs:simpleType name="RequestedItem" >
      <xs:annotation>
         <xs:appinfo>
            reserved (0)
            itemA (1) -- consisting of 2 elements:
             -- lights          ExteriorLights
             -- lightBar        LightbarInUse
            itemB (2) -- consisting of:
             -- wipers  a SEQUENCE
            itemC (3) -- consisting of:
             -- brakeStatus  BrakeSystemStatus
            itemD (4) -- consisting of 2 elements:
             -- brakePressure   BrakeAppliedPressure
             -- roadFriction    CoefficientOfFriction
            itemE (5) -- consisting of 4 elements:
             -- sunData         SunSensor
             -- rainData        RainSensor
             -- airTemp         AmbientAirTemperature
             -- airPres         AmbientAirPressure
            itemF (6) -- consisting of:
             -- steering  a SEQUENCE
            itemG (7) -- consisting of:
             -- accelSets a SEQUENCE
            itemH (8) -- consisting of:
             -- object a SEQUENCE
            itemI (9) -- consisting of:
             -- fullPos         FullPositionVector
            itemJ (10) -- consisting of:
             -- position2D      Position2D
            itemK (11) -- consisting of:
             -- position3D      Position3D
            itemL (12) -- consisting of 2 elements:
             -- speedHeadC      SpeedandHeadingConfidence
             -- speedC          SpeedConfidence
            itemM (13) -- consisting of:
             -- vehicleData a SEQUENCE
            itemN (14) -- consisting of:
             -- vehicleIdent   VehicleIdent
            itemO (15) -- consisting of:
             -- weatherReport a SEQUENCE
            itemP (16) -- consisting of:
             -- breadcrumbs    VehicleMotionTrail
            itemQ (17) -- consisting of:
             -- gpsStatus      GPSstatus
         </xs:appinfo>
         <xs:documentation>       
            values to 127 reserved for std use
            values 128 to 255 reserved for local use
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="17"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="reserved"/>
               <xs:enumeration value="itemA"/>
               <xs:enumeration value="itemB"/>
               <xs:enumeration value="itemC"/>
               <xs:enumeration value="itemD"/>
               <xs:enumeration value="itemE"/>
               <xs:enumeration value="itemF"/>
               <xs:enumeration value="itemG"/>
               <xs:enumeration value="itemH"/>
               <xs:enumeration value="itemI"/>
               <xs:enumeration value="itemJ"/>
               <xs:enumeration value="itemK"/>
               <xs:enumeration value="itemL"/>
               <xs:enumeration value="itemM"/>
               <xs:enumeration value="itemN"/>
               <xs:enumeration value="itemO"/>
               <xs:enumeration value="itemP"/>
               <xs:enumeration value="itemQ"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:RequestedItem" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_ResponseType -->
<xs:simpleType name="ResponseType" >
      <xs:annotation>
         <xs:appinfo>
            notInUseOrNotEquipped (0)
            emergency (1)
            nonEmergency (2)
            pursuit (3) -- all others Future Use
         </xs:appinfo>
         <xs:documentation>       
            values to 127 reserved for std use
            values 128 to 255 reserved for local use
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="notInUseOrNotEquipped"/>
               <xs:enumeration value="emergency"/>
               <xs:enumeration value="nonEmergency"/>
               <xs:enumeration value="pursuit"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_RTCM_ID -->
<xs:simpleType name="RTCM-ID" >
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="32767"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_RTCM_Payload -->
<xs:complexType name="RTCM-Payload" >
   <xs:simpleContent>
      <xs:extension base="RTCM-Payload-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="RTCM-Payload-string">
   <xs:restriction base="xs:base64Binary">
      <xs:minLength value="2"/>
      <xs:maxLength value="1364"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_RTCM_Revision -->
<xs:simpleType name="RTCM-Revision" >
      <xs:annotation>
         <xs:appinfo>
            unknown (0)
            reserved (1)
            rtcmCMR (2)
            rtcmCMR Plus (3)
            rtcmSAPOS (4)
            rtcmSAPOS Adv (5)
            rtcmRTCA (6)
            rtcmRAW (7)
            rtcmRINEX (8)
            rtcmSP3 (9)
            rtcmBINEX (10)
            rtcmRev2 x (19) -- Used when specific rev is not known
            rtcmRev2 0 (20)
            rtcmRev2 1 (21)
            rtcmRev2 3 (23) -- Std 10402.3
            rtcmRev3 0 (30)
            rtcmRev3 1 (31) -- Std 10403.1
         </xs:appinfo>
         <xs:documentation>       
            values to 127 reserved for std use
            values 128 to 255 reserved for local use
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="31"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unknown"/>
               <xs:enumeration value="reserved"/>
               <xs:enumeration value="rtcmCMR"/>
               <xs:enumeration value="rtcmCMR Plus"/>
               <xs:enumeration value="rtcmSAPOS"/>
               <xs:enumeration value="rtcmSAPOS Adv"/>
               <xs:enumeration value="rtcmRTCA"/>
               <xs:enumeration value="rtcmRAW"/>
               <xs:enumeration value="rtcmRINEX"/>
               <xs:enumeration value="rtcmSP3"/>
               <xs:enumeration value="rtcmBINEX"/>
               <xs:enumeration value="rtcmRev2 x"/>
               <xs:enumeration value="rtcmRev2 0"/>
               <xs:enumeration value="rtcmRev2 1"/>
               <xs:enumeration value="rtcmRev2 3"/>
               <xs:enumeration value="rtcmRev3 0"/>
               <xs:enumeration value="rtcmRev3 1"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:RTCM-Revision" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_SignalLightState -->
<xs:simpleType name="SignalLightState" >
      <xs:annotation>
         <xs:documentation>       
            The above bit ranges map to each type of direction
            using the bits defined by the above table of the standard.
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedInt">
         <xs:maxInclusive value="536870912"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_SignalReqScheme -->
<xs:complexType name="SignalReqScheme" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            Encoded as follows:
            upper nibble:  Preempt #:
            Bit 7  (MSB)  1 =  Preempt and 0 =  Priority
            Remaining 3 bits:
            Range of 0..7. The values of 1..6 represent
            the respective controller preempt or Priority
            to be activated. The value of 7 represents a
            request for a cabinet flash prempt,
            while the value of 0 is reserved.
            lower nibble:  Strategy #:
            Range is 0..15 and is used to specify a desired
            strategy  (if available) .
            Currently no strategies are defined and this
            should be zero.
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="SignalReqScheme-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="SignalReqScheme-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="2"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_SignalState -->
<xs:complexType name="SignalState" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            With bits set as follows:
            Bit 7  (MSB)  Set if the state is currently active
            only one active state can exist at a time,  and
            this state should be sent first in any sequences
            Bits 6~4 The preempt or priority value that is
            being described.
            Bits 3~0 the state bits,  indicating either a
            preemption or a priority use as follows:
            If a preemption: to follow the
            preemptState object of NTCIP 1202 v2.19f
            See PreemptState for bit definitions.
            If a prioirty to follow the
            tspInputStatus object utilized in the
            NYC ASTC2 traffic controller
            See PriorityState for bit definitions
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="SignalState-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="SignalState-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="2"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_SignPrority -->
<xs:simpleType name="SignPrority" >
      <xs:annotation>
         <xs:documentation>       
            0 as least,  7 as most
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="7"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_SirenInUse -->
<xs:simpleType name="SirenInUse" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- Not Equipped or unavailable
            notInUse (1)
            inUse (2)
            reserved (3) -- for future use
         </xs:appinfo>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="notInUse"/>
               <xs:enumeration value="inUse"/>
               <xs:enumeration value="reserved"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_SpecialLaneAttributes -->
<xs:simpleType name="SpecialLaneAttributes" >
      <xs:annotation>
         <xs:appinfo>
            noData (0) -- (&apos;0000000000000000&apos;B)
            egressPath (1) -- (&apos;0000000000000001&apos;B)
             -- a two-way path or an outbound path is described
            railRoadTrack (2) -- (&apos;0000000000000010&apos;B)
            transitOnlyLane (4) -- (&apos;0000000000000100&apos;B)
            hovLane (8) -- (&apos;0000000000001000&apos;B)
            busOnly (16) -- (&apos;0000000000010000&apos;B)
            vehiclesEntering (32) -- (&apos;0000000000100000&apos;B)
            vehiclesLeaving (64) -- (&apos;0000000001000000&apos;B)
            reserved (128) -- (&apos;0000000010000000&apos;B)
         </xs:appinfo>
         <xs:documentation>       
            1 byte
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="128"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="noData"/>
               <xs:enumeration value="egressPath"/>
               <xs:enumeration value="railRoadTrack"/>
               <xs:enumeration value="transitOnlyLane"/>
               <xs:enumeration value="hovLane"/>
               <xs:enumeration value="busOnly"/>
               <xs:enumeration value="vehiclesEntering"/>
               <xs:enumeration value="vehiclesLeaving"/>
               <xs:enumeration value="reserved"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_SpecialSignalState -->
<xs:simpleType name="SpecialSignalState" >
      <xs:annotation>
         <xs:appinfo>
            unknown (0)
            notInUse (1) -- (B0001)  default state ,
            arriving (2) -- (B0010)  track-lane about to be occupied
            present (3) -- (B0100)  track-lane is occupied with vehicle
            departing (4) -- (B1000)  track-lane about to be empty
         </xs:appinfo>
         <xs:documentation>       
            one byte
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="4"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unknown"/>
               <xs:enumeration value="notInUse"/>
               <xs:enumeration value="arriving"/>
               <xs:enumeration value="present"/>
               <xs:enumeration value="departing"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_Speed -->
<xs:simpleType name="Speed" >
      <xs:annotation>
         <xs:documentation>       
            Units of 0.02 m/s
            The value 8191 indicates that
            speed is unavailable
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="8191"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_SpeedConfidence -->
<xs:simpleType name="SpeedConfidence" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- B&apos;000  Not Equipped or unavailable
            prec100ms (1) -- B&apos;001  100  meters / sec
            prec10ms (2) -- B&apos;010  10   meters / sec
            prec5ms (3) -- B&apos;011  5    meters / sec
            prec1ms (4) -- B&apos;100  1    meters / sec
            prec0 1ms (5) -- B&apos;101  0.1  meters / sec
            prec0 05ms (6) -- B&apos;110  0.05 meters / sec
            prec0 01ms (7) -- B&apos;111  0.01 meters / sec
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 3 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="7"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="prec100ms"/>
               <xs:enumeration value="prec10ms"/>
               <xs:enumeration value="prec5ms"/>
               <xs:enumeration value="prec1ms"/>
               <xs:enumeration value="prec0 1ms"/>
               <xs:enumeration value="prec0 05ms"/>
               <xs:enumeration value="prec0 01ms"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_StabilityControlStatus -->
<xs:simpleType name="StabilityControlStatus" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- B&apos;00  Not Equipped with SC
             -- or SC status is unavailable
            off (1) -- B&apos;01  Off
            on (2) -- B&apos;10  On or active  (engaged)
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 2 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="2"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="off"/>
               <xs:enumeration value="on"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_StateConfidence -->
<xs:simpleType name="StateConfidence" >
      <xs:annotation>
         <xs:appinfo>
            unKnownEstimate (0)
            minTime (1)
            maxTime (2)
            timeLikeklyToChange (3)
         </xs:appinfo>
         <xs:documentation>       
            values to 127 reserved for std use
            values 128 to 255 reserved for local use
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unKnownEstimate"/>
               <xs:enumeration value="minTime"/>
               <xs:enumeration value="maxTime"/>
               <xs:enumeration value="timeLikeklyToChange"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:StateConfidence" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Steering-Axle-Lube-Pressure -->
<xs:simpleType name="SteeringAxleLubePressure" >
      <xs:restriction base="xs:unsignedByte"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Steering-Axle-Temperature -->
<xs:simpleType name="SteeringAxleTemperature" >
      <xs:restriction base="xs:unsignedByte"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_SteeringWheelAngle -->
<xs:complexType name="SteeringWheelAngle" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            LSB units of 1.5 degrees.
            a range of -189 to +189 degrees
            0x01 = 00 = +1.5 deg
            0x81 = -126 = -189 deg and beyond
            0x7E = +126 = +189 deg and beyond
            0x7F = +127 to be used for unavailable
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="SteeringWheelAngle-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="SteeringWheelAngle-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="2"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_SteeringWheelAngleConfidence -->
<xs:simpleType name="SteeringWheelAngleConfidence" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- B&apos;00  Not Equipped with Wheel angle
             -- or Wheel angle status is unavailable
            prec2deg (1) -- B&apos;01  2 degrees
            prec1deg (2) -- B&apos;10  1 degree
            prec0 02deg (3) -- B&apos;11  0.02 degrees
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 2 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="prec2deg"/>
               <xs:enumeration value="prec1deg"/>
               <xs:enumeration value="prec0 02deg"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_SteeringWheelAngleRateOfChange -->
<xs:simpleType name="SteeringWheelAngleRateOfChange" >
      <xs:annotation>
         <xs:documentation>       
            LSB is 3 degrees per second
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:byte">
         <xs:minInclusive value="-127"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_SunSensor -->
<xs:simpleType name="SunSensor" >
      <xs:annotation>
         <xs:documentation>       
            units of watts / m2
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="1000"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_TemporaryID -->
<xs:complexType name="TemporaryID" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            a 4 byte string array
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="TemporaryID-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="TemporaryID-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="6"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_TerminationDistance -->
<xs:simpleType name="TermDistance" >
      <xs:annotation>
         <xs:documentation>       
            units in meters
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:minInclusive value="1"/>
         <xs:maxInclusive value="30000"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_TerminationTime -->
<xs:simpleType name="TermTime" >
      <xs:annotation>
         <xs:documentation>       
            units of sec
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:minInclusive value="1"/>
         <xs:maxInclusive value="1800"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_ThrottleConfidence -->
<xs:simpleType name="ThrottleConfidence" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- B&apos;00  Not Equipped or unavailable
            prec10percent (1) -- B&apos;01  10  percent Confidence level
            prec1percent (2) -- B&apos;10  1   percent Confidence level
            prec0 5percent (3) -- B&apos;11  0.5 percent Confidence level
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 2 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="prec10percent"/>
               <xs:enumeration value="prec1percent"/>
               <xs:enumeration value="prec0 5percent"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_ThrottlePosition -->
<xs:simpleType name="ThrottlePosition" >
      <xs:annotation>
         <xs:documentation>       
            LSB units are 0.5 percent
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="200"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_TimeConfidence -->
<xs:simpleType name="TimeConfidence" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- Not Equipped or unavailable
            time 100 000 (1) -- Better then  100 Seconds
            time 050 000 (2) -- Better then  50 Seconds
            time 020 000 (3) -- Better then  20 Seconds
            time 010 000 (4) -- Better then  10 Seconds
            time 002 000 (5) -- Better then  2 Seconds
            time 001 000 (6) -- Better then  1 Second
            time 000 500 (7) -- Better then  0.5 Seconds
            time 000 200 (8) -- Better then  0.2 Seconds
            time 000 100 (9) -- Better then  0.1 Seconds
            time 000 050 (10) -- Better then  0.05 Seconds
            time 000 020 (11) -- Better then  0.02 Seconds
            time 000 010 (12) -- Better then  0.01 Seconds
            time 000 005 (13) -- Better then  0.005 Seconds
            time 000 002 (14) -- Better then  0.002 Seconds
            time 000 001 (15) -- Better then  0.001 Seconds
             -- Better then one milisecond
            time 000 000 5 (16) -- Better then  0.000 ,
            time 000 000 2 (17) -- Better then  0.000 ,
            time 000 000 1 (18) -- Better then  0.000 ,
            time 000 000 05 (19) -- Better then  0.000 ,
            time 000 000 02 (20) -- Better then  0.000 ,
            time 000 000 01 (21) -- Better then  0.000 ,
            time 000 000 005 (22) -- Better then  0.000 ,
            time 000 000 002 (23) -- Better then  0.000 ,
            time 000 000 001 (24) -- Better then  0.000 ,
             -- Better then one micro second
            time 000 000 000 5 (25) -- Better then  0.000 ,
            time 000 000 000 2 (26) -- Better then  0.000 ,
            time 000 000 000 1 (27) -- Better then  0.000 ,
            time 000 000 000 05 (28) -- Better then  0.000 ,
            time 000 000 000 02 (29) -- Better then  0.000 ,
            time 000 000 000 01 (30) -- Better then  0.000 ,
            time 000 000 000 005 (31) -- Better then  0.000 ,
            time 000 000 000 002 (32) -- Better then  0.000 ,
            time 000 000 000 001 (33) -- Better then  0.000 ,
             -- Better then one nano second
            time 000 000 000 000 5 (34) -- Better then  0.000 ,
            time 000 000 000 000 2 (35) -- Better then  0.000 ,
            time 000 000 000 000 1 (36) -- Better then  0.000 ,
            time 000 000 000 000 05 (37) -- Better then  0.000 ,
            time 000 000 000 000 02 (38) -- Better then  0.000 ,
            time 000 000 000 000 01 (39) -- Better then  0.000 , 000 , 000 , 01 Seconds
         </xs:appinfo>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="39"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="time 100 000"/>
               <xs:enumeration value="time 050 000"/>
               <xs:enumeration value="time 020 000"/>
               <xs:enumeration value="time 010 000"/>
               <xs:enumeration value="time 002 000"/>
               <xs:enumeration value="time 001 000"/>
               <xs:enumeration value="time 000 500"/>
               <xs:enumeration value="time 000 200"/>
               <xs:enumeration value="time 000 100"/>
               <xs:enumeration value="time 000 050"/>
               <xs:enumeration value="time 000 020"/>
               <xs:enumeration value="time 000 010"/>
               <xs:enumeration value="time 000 005"/>
               <xs:enumeration value="time 000 002"/>
               <xs:enumeration value="time 000 001"/>
               <xs:enumeration value="time 000 000 5"/>
               <xs:enumeration value="time 000 000 2"/>
               <xs:enumeration value="time 000 000 1"/>
               <xs:enumeration value="time 000 000 05"/>
               <xs:enumeration value="time 000 000 02"/>
               <xs:enumeration value="time 000 000 01"/>
               <xs:enumeration value="time 000 000 005"/>
               <xs:enumeration value="time 000 000 002"/>
               <xs:enumeration value="time 000 000 001"/>
               <xs:enumeration value="time 000 000 000 5"/>
               <xs:enumeration value="time 000 000 000 2"/>
               <xs:enumeration value="time 000 000 000 1"/>
               <xs:enumeration value="time 000 000 000 05"/>
               <xs:enumeration value="time 000 000 000 02"/>
               <xs:enumeration value="time 000 000 000 01"/>
               <xs:enumeration value="time 000 000 000 005"/>
               <xs:enumeration value="time 000 000 000 002"/>
               <xs:enumeration value="time 000 000 000 001"/>
               <xs:enumeration value="time 000 000 000 000 5"/>
               <xs:enumeration value="time 000 000 000 000 2"/>
               <xs:enumeration value="time 000 000 000 000 1"/>
               <xs:enumeration value="time 000 000 000 000 05"/>
               <xs:enumeration value="time 000 000 000 000 02"/>
               <xs:enumeration value="time 000 000 000 000 01"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_TimeMark -->
<xs:simpleType name="TimeMark" >
      <xs:annotation>
         <xs:documentation>       
            In units of 1/10th second from local UTC time
            A range of 0~600 for even minutes,  601~1200 for odd minutes
            12001 to indicate indefinite time
            12002 to be used when value undefined or unknown
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="12002"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Tire-Leakage-Rate -->
<xs:simpleType name="TireLeakageRate" >
      <xs:restriction base="xs:unsignedShort"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Tire-Location -->
<xs:simpleType name="TireLocation" >
      <xs:restriction base="xs:unsignedByte"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Tire-Pressure -->
<xs:simpleType name="TirePressure" >
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="1000"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Tire-Pressure-Threshold-Detection -->
<xs:simpleType name="TirePressureThresholdDetection" >
      <xs:annotation>
         <xs:appinfo>
            noData (0) -- B&apos;000&apos;
            overPressure (1) -- B&apos;001&apos;
            noWarningPressure (2) -- B&apos;010&apos;
            underPressure (3) -- B&apos;011&apos;
            extremeUnderPressure (4) -- B&apos;100&apos;
            undefined (5) -- B&apos;101&apos;
            errorIndicator (6) -- B&apos;110&apos;
            notAvailable (7) -- B&apos;111&apos;
         </xs:appinfo>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="7"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="noData"/>
               <xs:enumeration value="overPressure"/>
               <xs:enumeration value="noWarningPressure"/>
               <xs:enumeration value="underPressure"/>
               <xs:enumeration value="extremeUnderPressure"/>
               <xs:enumeration value="undefined"/>
               <xs:enumeration value="errorIndicator"/>
               <xs:enumeration value="notAvailable"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:TirePressureThresholdDetection" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Tire-Temp -->
<xs:simpleType name="TireTemp" >
      <xs:restriction base="xs:unsignedShort"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_TractionControlState -->
<xs:simpleType name="TractionControlState" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- B&apos;00  Not Equipped with tracton control
             -- or tracton control status is unavailable
            off (1) -- B&apos;01  tracton control is Off
            on (2) -- B&apos;10  tracton control is On  (but not Engaged)
            engaged (3) -- B&apos;11  tracton control is Engaged
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 2 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="off"/>
               <xs:enumeration value="on"/>
               <xs:enumeration value="engaged"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Trailer-Weight -->
<xs:simpleType name="TrailerWeight" >
      <xs:restriction base="xs:unsignedShort"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_TransitPreEmptionRequest -->
<xs:simpleType name="TransitPreEmptionRequest" >
      <xs:annotation>
         <xs:appinfo>
            typeOne (0)
            typeTwo (1)
            typeThree (2)
            typeFour (3)
         </xs:appinfo>
         <xs:documentation>       
            values to 127 reserved for std use
            values 128 to 255 reserved for local use
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="typeOne"/>
               <xs:enumeration value="typeTwo"/>
               <xs:enumeration value="typeThree"/>
               <xs:enumeration value="typeFour"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:TransitPreEmptionRequest" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_TransitStatus -->
<xs:simpleType name="TransitStatus-item" >
      <xs:annotation>
         <xs:appinfo>
            none (0) -- nothing is active
            anADAuse (1) -- an ADA access is in progress  (wheelchairs ,
            aBikeLoad (2) -- loading of a bicyle is in progress
            doorOpen (3) -- a vehicle door is open for passenger access
            occM (4)
            occL (5) -- bits four and five are used to relate the
             -- the relative occupancy of the vehicle ,  with
             -- 00  as least full and 11 indicating a
             -- close-to or full conditon
         </xs:appinfo>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:int">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="5"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="none"/>
               <xs:enumeration value="anADAuse"/>
               <xs:enumeration value="aBikeLoad"/>
               <xs:enumeration value="doorOpen"/>
               <xs:enumeration value="occM"/>
               <xs:enumeration value="occL"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
<xs:simpleType name="TransitStatus">
   <xs:list itemType="TransitStatus-item"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_TransmissionState -->
<xs:simpleType name="TransmissionState" >
      <xs:annotation>
         <xs:appinfo>
            neutral (0) -- Neutral ,
            park (1) -- Park ,
            forwardGears (2) -- Forward gears ,
            reverseGears (3) -- Reverse gears ,
            reserved1 (4)
            reserved2 (5)
            reserved3 (6)
            unavailable (7) -- not-equipped or unavailable value ,
             -- speed relative to the vehicle alignment
         </xs:appinfo>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="7"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="neutral"/>
               <xs:enumeration value="park"/>
               <xs:enumeration value="forwardGears"/>
               <xs:enumeration value="reverseGears"/>
               <xs:enumeration value="reserved1"/>
               <xs:enumeration value="reserved2"/>
               <xs:enumeration value="reserved3"/>
               <xs:enumeration value="unavailable"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:TransmissionState" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_TravelerInfoType -->
<xs:simpleType name="TravelerInfoType" >
      <xs:annotation>
         <xs:appinfo>
            unknown (0)
            advisory (1)
            roadSignage (2)
            commercialSignage (3)
         </xs:appinfo>
         <xs:documentation>       
            values to 127 reserved for std use
            values 128 to 255 reserved for local use
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unknown"/>
               <xs:enumeration value="advisory"/>
               <xs:enumeration value="roadSignage"/>
               <xs:enumeration value="commercialSignage"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:TravelerInfoType" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_TransmitInterval -->
<xs:simpleType name="TxTime" >
      <xs:annotation>
         <xs:documentation>       
            units of seconds
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:minInclusive value="1"/>
         <xs:maxInclusive value="20"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_UniqueMSG_ID -->
<xs:complexType name="UniqueMSGID" >
   <xs:simpleContent>
      <xs:extension base="UniqueMSGID-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="UniqueMSGID-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="12"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_URL_Base -->
<xs:simpleType name="URL-Base" >
      <xs:restriction base="xs:string">
         <xs:minLength value="1"/>
         <xs:maxLength value="45"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_URL_Link -->
<xs:simpleType name="URL-Link" >
      <xs:restriction base="xs:anyURI">
         <xs:minLength value="1"/>
         <xs:maxLength value="255"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_URL_Short -->
<xs:simpleType name="URL-Short" >
      <xs:restriction base="xs:string">
         <xs:minLength value="1"/>
         <xs:maxLength value="15"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_VehicleHeight -->
<xs:simpleType name="VehicleHeight" >
      <xs:annotation>
         <xs:documentation>       
            the height of the vehicle
            LSB units of 5 cm,  range to 6.35 meters
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="127"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_VehicleLaneAttributes -->
<xs:simpleType name="VehicleLaneAttributes" >
      <xs:annotation>
         <xs:documentation>       
            With bits as defined:
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_VehicleLength -->
<xs:simpleType name="VehicleLength" >
      <xs:annotation>
         <xs:documentation>       
            LSB units are 1 cm
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="16383"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_VehicleMass -->
<xs:simpleType name="VehicleMass" >
      <xs:annotation>
         <xs:documentation>       
            mass with an LSB of 50 Kg
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:minInclusive value="1"/>
         <xs:maxInclusive value="127"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_VehicleRequestStatus -->
<xs:complexType name="VehicleRequestStatus" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            With bits set as follows:
            Bit 7  (MSB)   Brakes-on,  see notes for use
            Bit 6 Emergency Use or operation
            Bit 5 Lights in use  (see also the light bar element)
            Bits 5~0
            when a priority,  map the values of
            LightbarInUse to the lower 4 bits
            and set the 5th bit to zero
            when a preemption,  map the values of
            TransistStatus to the lower 5 bits
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="VehicleRequestStatus-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="VehicleRequestStatus-string">
   <xs:restriction base="xs:base64Binary">
      <xs:length value="2"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_VehicleStatusDeviceTypeTag -->
<xs:simpleType name="VehicleStatusDeviceTypeTag" >
      <xs:annotation>
         <xs:appinfo>
            unknown (0)
            lights (1) -- Exterior Lights
            wipers (2) -- Wipers
            brakes (3) -- Brake Applied
            stab (4) -- Stability Control
            trac (5) -- Traction Control
            abs (6) -- Anti-Lock Brakes
            sunS (7) -- Sun Sensor
            rainS (8) -- Rain Sensor
            airTemp (9) -- Air Temperature
            steering (10)
            vertAccelThres (11) -- Wheel that Exceeded the
            vertAccel (12) -- Vertical g Force Value
            hozAccelLong (13) -- Longitudinal Acceleration
            hozAccelLat (14) -- Lateral Acceleration
            hozAccelCon (15) -- Acceleration Confidence
            accel4way (16)
            confidenceSet (17)
            obDist (18) -- Obstacle Distance
            obDirect (19) -- Obstacle Direction
            yaw (20) -- Yaw Rate
            yawRateCon (21) -- Yaw Rate Confidence
            dateTime (22) -- complete time
            fullPos (23) -- complete set of time and
             -- position ,  speed ,  heading
            position2D (24) -- lat ,
            position3D (25) -- lat ,
            vehicle (26) -- height ,
            speedHeadC (27)
            speedC (28)
         </xs:appinfo>
         <xs:documentation>       
            values to 127 reserved for std use
            values 128 to 255 reserved for local use
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="28"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unknown"/>
               <xs:enumeration value="lights"/>
               <xs:enumeration value="wipers"/>
               <xs:enumeration value="brakes"/>
               <xs:enumeration value="stab"/>
               <xs:enumeration value="trac"/>
               <xs:enumeration value="abs"/>
               <xs:enumeration value="sunS"/>
               <xs:enumeration value="rainS"/>
               <xs:enumeration value="airTemp"/>
               <xs:enumeration value="steering"/>
               <xs:enumeration value="vertAccelThres"/>
               <xs:enumeration value="vertAccel"/>
               <xs:enumeration value="hozAccelLong"/>
               <xs:enumeration value="hozAccelLat"/>
               <xs:enumeration value="hozAccelCon"/>
               <xs:enumeration value="accel4way"/>
               <xs:enumeration value="confidenceSet"/>
               <xs:enumeration value="obDist"/>
               <xs:enumeration value="obDirect"/>
               <xs:enumeration value="yaw"/>
               <xs:enumeration value="yawRateCon"/>
               <xs:enumeration value="dateTime"/>
               <xs:enumeration value="fullPos"/>
               <xs:enumeration value="position2D"/>
               <xs:enumeration value="position3D"/>
               <xs:enumeration value="vehicle"/>
               <xs:enumeration value="speedHeadC"/>
               <xs:enumeration value="speedC"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:VehicleStatusDeviceTypeTag" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_VehicleType -->
<xs:simpleType name="VehicleType" >
      <xs:annotation>
         <xs:appinfo>
            none (0) -- Not Equipped, Not known or unavailable
            unknown (1) -- Does not fit any other category
            special (2) -- Special use
            moto (3) -- Motorcycle
            car (4) -- Passenger car
            carOther (5) -- Four tire single units
            bus (6) -- Buses
            axleCnt2 (7) -- Two axle, six tire single units 
            axleCnt3 (8) -- Three axle, single units    
            axleCnt4 (9) -- Four or more axle , single unit
            axleCnt4Trailer (10) -- Four or less axle, single trailer
            axleCnt5Trailer (11) -- Five or less axle, single trailer
            axleCnt6Trailer (12) -- Six or more axle, single trailer
            axleCnt5MultiTrailer (13) -- Five or less axle, multi-trailer
            axleCnt6MultiTrailer (14) -- Six axle, multi-trailer
            axleCnt7MultiTrailer (15) -- Seven or more axle,  multi-traile
         </xs:appinfo>
         <xs:documentation>       
            values to 127 reserved for std use
            values 128 to 255 reserved for local use
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="15"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="none"/>
               <xs:enumeration value="unknown"/>
               <xs:enumeration value="special"/>
               <xs:enumeration value="moto"/>
               <xs:enumeration value="car"/>
               <xs:enumeration value="carOther"/>
               <xs:enumeration value="bus"/>
               <xs:enumeration value="axleCnt2"/>
               <xs:enumeration value="axleCnt3"/>
               <xs:enumeration value="axleCnt4"/>
               <xs:enumeration value="axleCnt4Trailer"/>
               <xs:enumeration value="axleCnt5Trailer"/>
               <xs:enumeration value="axleCnt6Trailer"/>
               <xs:enumeration value="axleCnt5MultiTrailer"/>
               <xs:enumeration value="axleCnt6MultiTrailer"/>
               <xs:enumeration value="axleCnt7MultiTrailer"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:VehicleType" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_VehicleWidth -->
<xs:simpleType name="VehicleWidth" >
      <xs:annotation>
         <xs:documentation>       
            LSB units are 1 cm
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedShort">
         <xs:maxInclusive value="1023"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_VerticalAcceleration -->
<xs:simpleType name="VerticalAcceleration" >
      <xs:annotation>
         <xs:documentation>       
            LSB units of 0.02 G steps over
            a range +1.54 to -3.4G
            and offset by 50  Value 50 = 0g,  Value 0 = -1G
            value +127 = 1.54G,
            value -120 = -3.4G
            value -121 for ranges -3.4 to -4.4G
            value -122 for ranges -4.4 to -5.4G
            value -123 for ranges -5.4 to -6.4G
            value -124 for ranges -6.4 to -7.4G
            value -125 for ranges -7.4 to -8.4G
            value -126 for ranges larger than -8.4G
            value -127 for unavailable data
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:byte">
         <xs:minInclusive value="-127"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_VerticalAccelerationThreshold -->
<xs:simpleType name="VerticalAccelerationThreshold-item" >
      <xs:annotation>
         <xs:appinfo>
            allOff (0) -- B&apos;0000  The condition All Off or not equipped
            leftFront (1) -- B&apos;0001  Left Front Event
            leftRear (2) -- B&apos;0010  Left Rear Event
            rightFront (4) -- B&apos;0100  Right Front Event
            rightRear (8) -- B&apos;1000  Right Rear Event
         </xs:appinfo>
         <xs:documentation>       
            to fit in 4 bits
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:int">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="8"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="allOff"/>
               <xs:enumeration value="leftFront"/>
               <xs:enumeration value="leftRear"/>
               <xs:enumeration value="rightFront"/>
               <xs:enumeration value="rightRear"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
<xs:simpleType name="VerticalAccelerationThreshold">
   <xs:list itemType="VerticalAccelerationThreshold-item"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_VINstring, -->
<xs:complexType name="VINstring" >
   <xs:simpleContent>
      <xs:annotation>
         <xs:documentation>       
            A legal VIN or a shorter value
            to provide an ident of the vehicle
            If a VIN is sent,  then IA5 encoding
            shall be used
         </xs:documentation>
      </xs:annotation>
      <xs:extension base="VINstring-string" >
         <xs:attribute name="EncodingType" use="required">
           <xs:simpleType>
              <xs:restriction base="xs:NMTOKEN">
                 <xs:enumeration value="base64Binary"/>
              </xs:restriction>
           </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>
<xs:simpleType name="VINstring-string">
   <xs:restriction base="xs:base64Binary">
      <xs:minLength value="2"/>
      <xs:maxLength value="23"/>
   </xs:restriction>
</xs:simpleType >
 
<!-- Descriptive Name: DE_J1939-71-Wheel-End-Elect.-Fault -->
<xs:simpleType name="WheelEndElectFault-item" >
      <xs:annotation>
         <xs:appinfo>
            bitOne (1)
            bitTwo (2)
            bitThree (3)
            bitFour (4)
         </xs:appinfo>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:int">
               <xs:minInclusive value="1"/>
               <xs:maxInclusive value="4"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="bitOne"/>
               <xs:enumeration value="bitTwo"/>
               <xs:enumeration value="bitThree"/>
               <xs:enumeration value="bitFour"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
<xs:simpleType name="WheelEndElectFault">
   <xs:list itemType="WheelEndElectFault-item"/>
</xs:simpleType>
 
<!-- Descriptive Name: DE_J1939-71-Wheel-Sensor-Status -->
<xs:simpleType name="WheelSensorStatus" >
      <xs:annotation>
         <xs:appinfo>
            off (0)
            on (1)
            notDefined (2)
            notSupoprted (3)
         </xs:appinfo>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="3"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="off"/>
               <xs:enumeration value="on"/>
               <xs:enumeration value="notDefined"/>
               <xs:enumeration value="notSupoprted"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_WiperRate -->
<xs:simpleType name="WiperRate" >
      <xs:annotation>
         <xs:documentation>       
            units of sweeps per minute
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:unsignedByte">
         <xs:maxInclusive value="127"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_WiperStatusFront -->
<xs:simpleType name="WiperStatusFront" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- Not Equipped with wiper status
             -- or wiper status is unavailable
            off (1)
            intermittent (2)
            low (3)
            high (4)
            washerInUse (126) -- washing solution being used
            automaticPresent (127) -- Auto wiper equipped
         </xs:appinfo>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="127"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="off"/>
               <xs:enumeration value="intermittent"/>
               <xs:enumeration value="low"/>
               <xs:enumeration value="high"/>
               <xs:enumeration value="washerInUse"/>
               <xs:enumeration value="automaticPresent"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:WiperStatusFront" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_WiperStatusRear -->
<xs:simpleType name="WiperStatusRear" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- Not Equipped with wiper status
             -- or wiper status is unavailable
            off (1)
            intermittent (2)
            low (3)
            high (4)
            washerInUse (126) -- washing solution being used
            automaticPresent (127) -- Auto wipper equipped
         </xs:appinfo>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="127"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="off"/>
               <xs:enumeration value="intermittent"/>
               <xs:enumeration value="low"/>
               <xs:enumeration value="high"/>
               <xs:enumeration value="washerInUse"/>
               <xs:enumeration value="automaticPresent"/>
            </xs:restriction>
         </xs:simpleType >
         <xs:simpleType>
            <xs:restriction base="local:WiperStatusRear" /> 
         </xs:simpleType>
      </xs:union>
</xs:simpleType>
 
<!-- Descriptive Name: DE_YawRate -->
<xs:simpleType name="YawRate" >
      <xs:annotation>
         <xs:documentation>       
            LSB units of 0.01 degrees per second  (signed)
         </xs:documentation>
      </xs:annotation>
      <xs:restriction base="xs:short">
         <xs:minInclusive value="-32767"/>
      </xs:restriction>
</xs:simpleType>
 
<!-- Descriptive Name: DE_YawRateConfidence -->
<xs:simpleType name="YawRateConfidence" >
      <xs:annotation>
         <xs:appinfo>
            unavailable (0) -- B&apos;000  Not Equipped with yaw rate status
             -- or yaw rate status is unavailable
            degSec 100 00 (1) -- B&apos;001  100  deg/sec
            degSec 010 00 (2) -- B&apos;010  10   deg/sec
            degSec 005 00 (3) -- B&apos;011  5    deg/sec
            degSec 001 00 (4) -- B&apos;100  1    deg/sec
            degSec 000 10 (5) -- B&apos;101  0.1  deg/sec
            degSec 000 05 (6) -- B&apos;110  0.05 deg/sec
            degSec 000 01 (7) -- B&apos;111  0.01 deg/sec
         </xs:appinfo>
         <xs:documentation>       
            Encoded as a 3 bit value
         </xs:documentation>
      </xs:annotation>
      <xs:union>
         <xs:simpleType>
            <xs:restriction base="xs:unsignedInt">
               <xs:minInclusive value="0"/>
               <xs:maxInclusive value="7"/>
            </xs:restriction>
         </xs:simpleType>
         <xs:simpleType>
            <xs:restriction base="xs:string">
               <xs:enumeration value="unavailable"/>
               <xs:enumeration value="degSec 100 00"/>
               <xs:enumeration value="degSec 010 00"/>
               <xs:enumeration value="degSec 005 00"/>
               <xs:enumeration value="degSec 001 00"/>
               <xs:enumeration value="degSec 000 10"/>
               <xs:enumeration value="degSec 000 05"/>
               <xs:enumeration value="degSec 000 01"/>
            </xs:restriction>
         </xs:simpleType >
      </xs:union>
</xs:simpleType>
  

<!--  -->
<!-- The final few items are global types used by other entires -->
<!--  -->

<xs:simpleType name="binary">
   <xs:restriction base="xs:string">
      <xs:pattern value="[01]*"/> 
   </xs:restriction>
</xs:simpleType>

<xs:simpleType name="OctetStringOptions">   
   <xs:union memberTypes="xs:hexBinary xs:base64Binary"/>      
</xs:simpleType> 
<xs:complexType name="OctetString">
   <xs:simpleContent>
      <xs:extension base="OctetStringOptions">
         <xs:attribute name="EncodingType" use="required">
            <xs:simpleType>
               <xs:restriction base="xs:NMTOKEN">
                  <xs:enumeration value="hexBinary"/>
                  <xs:enumeration value="base64Binary"/>
               </xs:restriction>
            </xs:simpleType>
         </xs:attribute>
      </xs:extension>
   </xs:simpleContent>
</xs:complexType>

<xs:simpleType name="NumericString">
   <xs:restriction base="xs:string">
      <xs:pattern value="\d*"/>  
   </xs:restriction>
</xs:simpleType>
<!-- END of the output -->

</xs:schema>


