<?xml version="1.0" encoding='ISO-8859-1'?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:annotation>
    <xs:documentation>
      #########################################################################
      January 2007, K.Mitra
      Schema for CAPS transmissions
      #########################################################################tas
      Modified:
      15/02/2007 Two separate elements for Workshop-Task and Process-Code.
      20/02/2007 Remove all costs and actual hours elements, except parts costs.
                 Expand Invoice-Image element into Binary-Attachments.
      23/02/2007 Add MANUFACTURER to all interest type elements.
                 Use choice to force either Reference-Path or Base64-Data in
                 Attachment-Details.
      01/03/2007 Add INSURER as valid Interest-Type
      15/03/2007 Replace Task in Labour-Item with Labour-Department
      21/03/2007 Remove parts costs
      07/04/2007 Various changes
      19/04/2007 Removed estimated hours
      20/04/2007 A couple more changes to workshop tasks
      02/05/2007 JSH Pulled out all binary attachment types except invoice image but
                 left 'binary-attachments'as enclosing element. Removed TBA option from 
                 Confirmed-VAT-Liability and Confirmed-Excess
                 Made all elements in Invoice-Summary complusory
                 Replaced counts in transmission trailer with a checksum
      25/07/2007 JSH put sensible maxOccurs on Address-Is-Customer.  Upped
                 Vehicle-Make to 20 and allowed CAPS as a 
                 Ref-Xmission-Origin-Type,  thus entertaining the possibility
                 that a CAPS type node (a relay or something) might be able
                 to generate bad XML.  
      06/01/2009 JSH Added UNKNOWN to the list of allowable transmission origin
                     types
      29/01/2009 JSH Added changes as proposed in 
                     CAPS_change_1 (sold hours)
                     CAPS_change_2 (remove minLength constraint on SP-Job-ID,
                                    WP-Case-Ref, Policy-No, Claim-No)
                     CAPS_change_3 (Allow nulls in Confirmed-Excess, Confirmed-VAT-Liability)
                     And while I was at it:
                          Upped maxLength on WP-Case-Ref, Policy-No, Claim-No to 40
                          Upped maxLength on Vehicle-Model to 60
      20/02/2009 JSH Added changes as proposed in CAPS_CHANGE_4 (add access key to interest
                     and allow address type 'REFERRER')
      04/03/2009 JSH Changes as in caps_change_5 -mostly CW support
      06/05/2009 JSH Added new Note-Type 'OUTGOING MESSAGE'
      14/10/2009 JSH Upped excess values by factor of 10
      22/10/2009 JSH Added BEMIS to recognised repairers
      24/07/2012 JSH DX FORK ###############################################
      24/07/2012 JSH Added CUSTOMER ACCEPT event as an extra *value* in the existing schema
                     Added DX-Job and some rudimentary estimate info.
                     both the CUSTOMER ACCEPT value and the DX-Job element should be filtered out
                     before submitting to CAPS gateway
      #########################################################################
      17/09/2013 RG  Version 3.000 Schema changes incorporating the dx-job changes and the proposed
                     additional fields discussed in the CAPS meetings:
                       - Added optional Estimate-Details node replacing and extending the forked DX-Job
                       - Added optional Replacement-Vehicle-Type to Allocated-Replacement-Vehicle
                       - Extended Event-Name enumeration to include "CUSTOMER ACCEPT","ESTIMATE APPOINTMENT",
                     "ORIGINAL EXPECTED COMPLETION","REQUESTED COMPLETION"
                       - Added optional Expected-Start, Completed-Date, Progress-Percentage to Process
                       - Added optional External-Communications node and sub nodes to JOBS and INTERESTS
                       - Added optional Parts-Orders node and sub nodes
                       - Added optional Invoices node and sub nodes
                       - Added optional Backordered-Parts node and sub nodes 
                       - Added optional Invoice-Type to Invoice-Summary
      01/10/2013 RG  Version 3.001 noticed the "ESTIMATE APPOINTMENT", "ORIGINAL EXPECTED COMPLETION",
                                   "REQUESTED COMPLETION" enumerations were documented but missing from the 
                                   actual schema.
      07/10/2013 RG  Version 3.002 Added Address-Type enumerations for "WORK PROVIDER" and "DEALER"
      22/11/2013 RG  Version 3.003 Added Uplift note enumerations for "SPECIAL INSTRUCTIONS" and 
                                   "RECOVERY INSTRUCTIONS"
      25/02/2015 JSH Version 3.004 Add Registration-Date, Job-Type (Itas style), ECD-Change-Reason, No-Work-Reason.
                                   The first one because it's easy to do, the others because they are an
                                   urgent requirement
      27/02/2015 JSH               Added ECD-Change-Text
      04/03/2015 JSH               Another ECD-Change-Reason plus increased size constraint on Memo to match ARMS
      12/03/2015 JSH               Restructure ECD-Change
    </xs:documentation>
</xs:annotation>
  
   
  <!-- Simple elements referenced in <Job-Detail> -->
  <xs:element name="Job-Origin-Type">        
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="EXTERNAL APPLICATION"/>      
        <xs:enumeration value="INSURER"/>
        <xs:enumeration value="MANUFACTURER"/>
        <xs:enumeration value="SERVICE PROVIDER"/>          
        <xs:enumeration value="WORK PROVIDER"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <!-- a list of valid codes will be published -->
  <xs:element name="Job-Origin-Code">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>                         
  <xs:element name="SP-Job-ID">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="30"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="WP-Case-Ref">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="40"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="Policy-No">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="40"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>    
  <xs:element name="Claim-No">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="40"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>    
  <xs:element name="Cover-Type">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="30"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <!-- Confirmed excess and VAT liability elements are in the Invoice-Summary -->
  <!-- TBA, blank, 0-9999 -->
  <xs:element name="Notified-Excess">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="99999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="TBA"/>
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>  
  <!-- Blank or 0 = not VAT registered, 100 = fully VAT registered, between 0 and 100 = %age VAT registered. -->  

  <xs:element name="Total-Loss-Value">
     <xs:simpleType>
        <xs:restriction base="xs:decimal">
          <xs:minInclusive value="0"/>
          <xs:maxInclusive value="9999999"/>
        </xs:restriction>
     </xs:simpleType>
  </xs:element>

  <!-- an Itas-style JobType.  Could be used by other systems -->
  <xs:element name="Job-Type">
     <xs:simpleType>
        <xs:restriction base="xs:string">
           <xs:enumeration value="Internal"/>
           <xs:enumeration value="Retail"/>
           <xs:enumeration value="Trade"/>
           <xs:enumeration value="Warranty"/>
           <xs:enumeration value="Insurance"/>
           <xs:enumeration value="Fleet"/>
        </xs:restriction>
     </xs:simpleType>
  </xs:element>

  <!-- requirements for Enterprise ARMS system.  In ARMS it maps to a RepairDelayStatusCode -->
  <xs:element name="ECD-Change-Reason">
     <xs:simpleType>
        <xs:restriction base="xs:string">
           <xs:enumeration value="ESTIMATING DELAY"/>
           <xs:enumeration value="AUTHORISATION DELAY"/>
           <xs:enumeration value="ADDITIONAL DAMAGE FOUND"/>
           <xs:enumeration value="REWORK"/>
           <xs:enumeration value="PARTS BACK ORDER"/>
           <xs:enumeration value="SUBLET DELAY"/>
           <xs:enumeration value="CUSTOMER REQUEST"/>
           <xs:enumeration value="WORKSHOP OVERRUN"/>
           <xs:enumeration value="QA DELAY"/>
           <xs:enumeration value="UNSPECIFIED DELAY"/>
        </xs:restriction>
     </xs:simpleType>
  </xs:element>

  <!-- This can be just the same as the 'Reason' above, but can contain user text. In ARMS 
       this is used for RepairDelayMemo  -->
  <xs:element name="ECD-Change-Text">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="225"/>  <!-- Constraint from ARMS Auto -->
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  

   <!-- Enterprise ARMS want to know why something never progressed -->
   <xs:element name="No-Work-Reason">
     <xs:simpleType>
        <xs:restriction base="xs:string">
           <xs:enumeration value="CUSTOMER REQUEST"/>
           <xs:enumeration value="REPAIRED AT OTHER LOCATION"/>
           <xs:enumeration value="APPRAISAL ONLY"/>
           <!-- I know this is redundant, but it is necessary for completeness-->
           <xs:enumeration value="TOTAL LOSS"/> 
        </xs:restriction>
     </xs:simpleType>
  </xs:element>
 
  <xs:element name="Daily-Rate">
     <xs:simpleType>
        <xs:restriction base="xs:decimal">
          <xs:minInclusive value="0"/>
          <xs:maxInclusive value="999"/>
        </xs:restriction>
     </xs:simpleType>
  </xs:element>

  <xs:element name="Is-Hire">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="YES"/>
        <xs:enumeration value="NO"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  

  <xs:element name="Replacement-Vehicle-Type">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="COURTESY CAR"/>
        <xs:enumeration value="HIRE VEHICLE"/>
        <xs:enumeration value="OTHER"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
 

  <!-- As these are optional I've made them non-union.  Either put a date in here or omit the element -->
  <xs:element name="Scheduled-Out"> 
    <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
     </xs:simpleType>
  </xs:element> 
  <xs:element name="Actual-Out"> 
    <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
     </xs:simpleType>
  </xs:element> 
  <xs:element name="Scheduled-Back"> 
    <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
     </xs:simpleType>
  </xs:element> 
  <xs:element name="Actual-Back"> 
    <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
     </xs:simpleType>
  </xs:element> 

  <xs:element name="Notified-VAT-Liability">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="100"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value="TBA"/>
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="CV-Reqd">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="YES"/>
        <xs:enumeration value="NO"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="CV-Transmission-Type">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="MANUAL"/>
        <xs:enumeration value="AUTOMATIC"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Vehicle-Drivable">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="YES"/>
        <xs:enumeration value="NO"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="Collection-Reqd">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="YES"/>
        <xs:enumeration value="NO"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="Mobile-Est-Reqd">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="YES"/>
        <xs:enumeration value="NO"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Mgt-System">    
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="ADVANCE"/>
        <xs:enumeration value="AUTOFLOW"/>
        <xs:enumeration value="AUTOSOFT"/>
        <xs:enumeration value="AUTOMANAGEMENT"/>
        <xs:enumeration value="BMS"/>
        <xs:enumeration value="BODYMASTER"/>
        <xs:enumeration value="BSD"/>
        <xs:enumeration value="CONCORDE"/>
        <xs:enumeration value="EMACS"/>
        <xs:enumeration value="BEMIS"/>
        <xs:enumeration value="NONE"/>
        <xs:enumeration value="OTHER"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Est-System">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="ARCS"/>
        <xs:enumeration value="AUDATEX"/>
        <xs:enumeration value="AUDATEX TTS"/>
        <xs:enumeration value="AUTOCLAIMS/AUTOQUOTE"/>
        <xs:enumeration value="BODYMASTER TTS"/>
        <xs:enumeration value="BRASS"/>
        <xs:enumeration value="EZEST"/>
        <xs:enumeration value="GLASSMATIX"/>
        <xs:enumeration value="IMAGE ASSESSOR"/>
        <xs:enumeration value="INTEREST"/>
        <xs:enumeration value="MANUAL ESTIMATE"/>
        <xs:enumeration value="MOTEX"/>
        <xs:enumeration value="OTHER"/>
        <xs:enumeration value="PATHWAYS"/>
        <xs:enumeration value="PETS"/>
        <xs:enumeration value="QUOITS"/>
        <xs:enumeration value="QUOITS ONLINE"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <!-- Assessment number from the Estimating System defined above -->      
  <xs:element name="Assessment-No">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="30"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <!-- Simple elements referenced in <Vehicle-Detail> -->
  <xs:element name="Vehicle-Reg">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="10"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <!-- valid list of codes will be published -->
  <xs:element name="Vehicle-Make"> 
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>     
  <xs:element name="Vehicle-Model">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="60"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>       
  <xs:element name = "Vehicle-Colour">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>         
  <xs:element name = "Vehicle-Vin">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>           
  
  <xs:element name="Registration-Date">
    <xs:simpleType>
      <!-- yyyy-mm-ddThh:mm:ss -->
      <xs:restriction base="xs:dateTime"/>
    </xs:simpleType>
  </xs:element> 
  
  <!-- Simple(ish) elements referenced in <Invoice-Summary> -->
  <!-- Blank: No information. Otherwise excess amount -->
  <xs:element name="Confirmed-Excess"> 
    <xs:simpleType> 
      <xs:union> 
        <xs:simpleType> 
          <xs:restriction base="xs:decimal"> 
            <xs:minInclusive value="0"/> 
            <xs:maxInclusive value="99999"/> 
          </xs:restriction> 
        </xs:simpleType> 
        <xs:simpleType> 
          <xs:restriction base="xs:string"> 
            <xs:enumeration value=""/> 
          </xs:restriction> 
        </xs:simpleType> 
      </xs:union> 
    </xs:simpleType> 
  </xs:element> 

  <!-- Blank: No information. 0 = not VAT registered, 100 = fully VAT registered, -->
  <!-- between 0 and 100 = %age VAT registered. --> 
  <xs:element name="Confirmed-VAT-Liability"> 
    <xs:simpleType> 
      <xs:union> 
        <xs:simpleType> 
          <xs:restriction base="xs:decimal"> 
            <xs:minInclusive value="0"/> 
            <xs:maxInclusive value="100"/> 
          </xs:restriction> 
        </xs:simpleType> 
        <xs:simpleType> 
          <xs:restriction base="xs:string"> 
            <xs:enumeration value=""/> 
          </xs:restriction> 
        </xs:simpleType> 
      </xs:union> 
    </xs:simpleType> 
  </xs:element> 

    <!-- totals -->
  <xs:element name="Customer-Betterment">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <xs:element name="Customer-Nett">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <xs:element name="Customer-VAT">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <xs:element name="Insurer-Nett">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <xs:element name="Insurer-VAT">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <!-- breakdown -->
  <xs:element name="Invoiced-Labour">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <xs:element name="Invoiced-Parts">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <xs:element name="Invoiced-Paint-And-Materials">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <xs:element name="Invoiced-Other">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>  
    
   <xs:element name="Sold-MET">
    <xs:simpleType>
      <xs:restriction base="xs:decimal">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="999999"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

   <xs:element name="Sold-Panel">
    <xs:simpleType>
      <xs:restriction base="xs:decimal">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="999999"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

   <xs:element name="Sold-Paint">
    <xs:simpleType>
      <xs:restriction base="xs:decimal">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="999999"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

   <xs:element name="Sold-Hours-Total">
    <xs:simpleType>
      <xs:restriction base="xs:decimal">
        <xs:minInclusive value="0"/>
        <xs:maxInclusive value="999999"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>

  <xs:element name="Sold-Hours-Analysis">
    <xs:complexType>
      <xs:sequence> 
           <xs:element ref="Sold-MET" minOccurs="1" maxOccurs="1"/>  
           <xs:element ref="Sold-Panel" minOccurs="1" maxOccurs="1"/>
           <xs:element ref="Sold-Paint" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <xs:element name="Sold-Hours">
    <xs:complexType>
      <xs:sequence> 
           <xs:element ref="Sold-Hours-Total" minOccurs="1" maxOccurs="1"/>  
           <!-- Note the analysis is optional -->
           <xs:element ref="Sold-Hours-Analysis" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <!-- Simple elements referenced in <Invoice> -->
  <xs:element name="Invoice-Description">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="MAIN"/>
        <xs:enumeration value="EXCESS"/>
        <xs:enumeration value="BETTERMENT"/>
        <xs:enumeration value="VAT"/>
        <xs:enumeration value="OTHER"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Invoice-Type">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="INVOICE"/>
        <xs:enumeration value="CREDIT NOTE"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Invoice-Id">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Invoice-Date">
    <xs:simpleType>
      <!-- yyyy-mm-ddThh:mm:ss -->
      <xs:restriction base="xs:dateTime"/>
    </xs:simpleType>
  </xs:element> 
  <xs:element name="Invoice-Taxpoint">
    <xs:simpleType>
      <!-- yyyy-mm-ddThh:mm:ss -->
      <xs:restriction base="xs:dateTime"/>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Invoice-Labour">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <xs:element name="Invoice-Parts">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <xs:element name="Invoice-Paint-And-Materials">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <xs:element name="Invoice-Other">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <xs:element name="Invoice-Excess">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <xs:element name="Invoice-VAT">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>      
  <xs:element name="Invoice-Betterment">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="Invoice-Main-Deduction">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 


  <!-- Simple elements referenced in <Note> -->
  <xs:element name="Note-Type">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="CIRCUMSTANCES"/>
        <xs:enumeration value="DAMAGE DESCRIPTION"/>
        <xs:enumeration value="GENERAL COMMENTS"/>
        <xs:enumeration value="VEHICLE LOCATION"/>
        <xs:enumeration value="OUTGOING MESSAGE"/>
        <xs:enumeration value="SPECIAL INSTRUCTIONS"/>
        <xs:enumeration value="RECOVERY INSTRUCTIONS"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Note-Text">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="999"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <!-- Simple elements referenced in <Event> -->
  <xs:element name="Event-Name">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="INCIDENT"/>
        <xs:enumeration value="REPAIRER NOTIFIED"/>
        <xs:enumeration value="CUSTOMER CONTACTED"/>
        <xs:enumeration value="BOOKED IN"/>
        <xs:enumeration value="INSPECTION BOOKED"/>
        <xs:enumeration value="INSPECTED"/>
        <!-- This next was not a standard CAPS event added for v3-->
        <xs:enumeration value="CUSTOMER ACCEPT"/>
        <xs:enumeration value="AUTHORISED"/>
        <xs:enumeration value="ESTIMATE BOOKED"/>
        <xs:enumeration value="ESTIMATED"/>
        <xs:enumeration value="SCHEDULED HANDOVER"/>
        <xs:enumeration value="ONSITE"/>
        <xs:enumeration value="IN PROGRESS"/>
        <xs:enumeration value="REPLACEMENT VEHICLE OUT"/>
        <xs:enumeration value="PARTS ORDERED"/>
        <xs:enumeration value="PARTS DELIVERED"/>
        <xs:enumeration value="REPLACEMENT VEHICLE BACK"/>
        <xs:enumeration value="WRITTEN OFF"/>
        <xs:enumeration value="JOB COMPLETE"/>
        <xs:enumeration value="INVOICED"/>
        <xs:enumeration value="HANDOVER"/>
        <xs:enumeration value="INVOICE PAID"/>
        <xs:enumeration value="JOB CLOSED"/>
        <xs:enumeration value="JOB CANCELLED"/>
        <xs:enumeration value="ESTIMATE APPOINTMENT"/>
        <xs:enumeration value="ORIGINAL EXPECTED COMPLETION"/>
        <xs:enumeration value="REQUESTED COMPLETION"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Event-Datetime">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 
  
  <!-- Simple elements referenced in <Process> -->
  <xs:element name="Workshop-Task">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="STRIP"/>
        <xs:enumeration value="PANEL"/>
        <xs:enumeration value="PAINT"/>
        <xs:enumeration value="REFIT"/>
        <xs:enumeration value="VALET/QA"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Task-Status">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="NOT STARTED"/>
        <xs:enumeration value="IN PROGRESS"/>
        <xs:enumeration value="COMPLETE"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element> 
  <xs:element name="Process-Code">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:integer">
            <xs:enumeration value="1"/>  <!-- Strip damaged panels -->
            <xs:enumeration value="2"/>  <!-- Refit panels -->
            <xs:enumeration value="3"/>  <!-- Repair and reshape panels -->
            <xs:enumeration value="4"/>  <!-- Mechanical work excl. MOT -->
            <xs:enumeration value="5"/>  <!-- Electrical work -->
            <xs:enumeration value="6"/>  <!-- Jig work -->
            <xs:enumeration value="7"/>  <!-- Paint mixing -->
            <xs:enumeration value="8"/>  <!-- Paint preparation -->
            <xs:enumeration value="9"/>  <!-- Paint work excl. prep, mix, polish -->
            <xs:enumeration value="10"/> <!-- Polish -->
            <xs:enumeration value="11"/> <!-- Valet -->
            <xs:enumeration value="12"/> <!-- QA checks -->
            <xs:enumeration value="13"/> <!-- MOT labour -->
            <xs:enumeration value="14"/> <!-- Smart repairs -->
            <xs:enumeration value="15"/> <!-- Glass -->
            <xs:enumeration value="16"/> <!-- Alloy repairs -->
            <xs:enumeration value="17"/> <!-- Unspecified sublet -->
            <xs:enumeration value="101"/> <!-- Strip and fit -->
            <xs:enumeration value="102"/> <!-- Inclusive paintwork -->
            <xs:enumeration value="103"/> <!-- Paint excl. prep -->
            <xs:enumeration value="104"/> <!-- Paint excl. prep and polish -->
            <xs:enumeration value="105"/> <!-- Valet and QA -->
            <xs:enumeration value="106"/> <!-- Repair labour -->
            <xs:enumeration value="107"/> <!-- Paint and repair labour -->
            <xs:enumeration value="108"/> <!-- Other labour -->
            <xs:enumeration value="109"/> <!-- Specialist services -->
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Operative">
    <xs:simpleType>
     <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="40"/>
      </xs:restriction>
   </xs:simpleType>
  </xs:element>
  <xs:element name="Progress-Percentage">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:decimal">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="100"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="Progress-Expected-Start-Date">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 
  <xs:element name="Progress-Completion-Date"> 
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 
 
  <!-- Simple elements referenced in <Address-Detail> -->
  <xs:element name="Address-Type">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="ACCIDENT MANAGER"/>
        <xs:enumeration value="ASSESSOR"/>
        <xs:enumeration value="BROKER"/>
        <xs:enumeration value="BUYER"/>
        <xs:enumeration value="CLAIMANT"/>
        <xs:enumeration value="COLLECTION"/>
        <xs:enumeration value="DRIVER"/>
        <xs:enumeration value="ENGINEER"/>
        <xs:enumeration value="FEE PAYER"/>
        <xs:enumeration value="FLEET MANAGER"/>
        <xs:enumeration value="INSPECTION SITE"/>
        <xs:enumeration value="INSURED"/>
        <xs:enumeration value="INSURER"/>
        <xs:enumeration value="OTHER"/>
        <xs:enumeration value="OWNER"/>
        <xs:enumeration value="RECOVERY LOCATION"/>
        <xs:enumeration value="REPAIRER"/>
        <xs:enumeration value="SALVAGE AGENT"/>
        <xs:enumeration value="SALVAGE LOCATION"/>
        <xs:enumeration value="THIRD PARTY"/>
        <xs:enumeration value="VEHICLE LOCATION"/>
        <xs:enumeration value="VEHICLE OPERATOR"/>
        <xs:enumeration value="REFERRER"/>
        <xs:enumeration value="WORK PROVIDER"/>
        <xs:enumeration value="DEALER"/>
        <!-- New in DX --> 
        <xs:enumeration value="COMPANY"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Address-Is-Customer">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="YES"/>
        <xs:enumeration value="NO"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Address-ID">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="30"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Address-Title">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="40"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Address-Name">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="40"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Address-Line1">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="40"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Address-Line2">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="40"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Address-Line3">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="40"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Address-Line4">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="40"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Postcode">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="10"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Contact">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="50"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Phone1">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Phone2">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Fax">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Email">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="50"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="SMS-Number">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <!-- Simple elements referenced in <External-Communication> -->
  <xs:element name="Communication-Type">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="TELEPHONE"/>
        <xs:enumeration value="FAX"/>
        <xs:enumeration value="SMS"/>
        <xs:enumeration value="EMAIL"/>
        <xs:enumeration value="LETTER"/>
        <xs:enumeration value="VERBAL"/>
        <xs:enumeration value="VOICEMAIL"/>
        <xs:enumeration value="INSTANTMSG"/>
        <xs:enumeration value="OTHER"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Communication-Text">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="999"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Communication-By">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="Communication-Datetime"> 
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 
  <xs:element name="Communication-To-Name">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="30"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="Communication-To-Phone-Number">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="Communication-To-Email-Address">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="50"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  

  <xs:element name="External-Communication">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Communication-Type" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Communication-Text" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Communication-By" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Communication-Datetime" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Communication-To-Name" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Communication-To-Phone-Number" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Communication-To-Email-Address" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="External-Communications">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="External-Communication" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>    

  <!-- Simple elements referenced in <Backordered-Part> -->
  <xs:element name="Part-Description">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="50"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="Part-Number">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="Backorder-Datetime"> 
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 
  <xs:element name="Expected-Datetime"> 
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 

  <!-- Simple elements referenced in <Parts-Order> -->  
  <xs:element name="Order-Number">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="Ordered-Datetime"> 
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 


  <!-- Simple elements referenced in <Job-Offer> -->
  <xs:element name="Offer-Status">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="NEW"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Datetime-Offered"> 
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 
  <xs:element name="Accepted">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="YES"/>
        <xs:enumeration value="NO"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="Datetime-Accepted">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 
  <xs:element name="Reason-Rejected">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="30"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Offer-Cancelled">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="YES"/>
        <xs:enumeration value="NO"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <xs:element name="Datetime-Cancelled">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 
  
  <!-- Simple elements referenced in <Interest> -->
  <xs:element name="Interest-Type">        
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="EXTERNAL APPLICATION"/> 
        <xs:enumeration value="INSURER"/>
        <xs:enumeration value="MANUFACTURER"/>        
        <xs:enumeration value="WORK PROVIDER"/> 
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <!-- a list of valid codes will be published -->        
  <xs:element name="Interest-Code">  
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Interest-Job-Ref">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Interest-Is-Customer">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="YES"/>
        <xs:enumeration value="NO"/>
        <xs:enumeration value=""/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="Interest-Access-Key"> 
    <xs:simpleType> 
      <xs:restriction base="xs:string"> 
        <xs:minLength value="0"/> 
        <xs:maxLength value="20"/> 
      </xs:restriction> 
    </xs:simpleType> 
  </xs:element>
  <xs:element name="Interest-To-Notify-Customer">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="YES"/>
        <xs:enumeration value="NO"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <!-- Simple elements referenced in <Transaction-Header> -->
  <xs:element name="Transaction-Origin-Type">        
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="EXTERNAL APPLICATION"/>      
        <xs:enumeration value="INSURER"/>      
        <xs:enumeration value="MANUFACTURER"/>        
        <xs:enumeration value="SERVICE PROVIDER"/>          
        <xs:enumeration value="WORK PROVIDER"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <!-- a list of valid codes will be published -->
  <xs:element name="Transaction-Origin-Code">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <!-- a list of valid codes will be published -->
  <xs:element name="Service-Provider-Code">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
  <!-- a list of valid codes will be published -->
  <xs:element name="Insurer-Code">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element> 
  
  <!-- Simple elements referenced in Attachment-Details -->
  <xs:element name="File-Date">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element>
  <xs:element name="File-Size">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:integer">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>  
  </xs:element>
  <xs:element name="File-Name">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="200"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <xs:element name="File-Type">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="10"/>
      </xs:restriction>
    </xs:simpleType>  
  </xs:element>
  <xs:element name="Reference-Path">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="200"/>
      </xs:restriction>
    </xs:simpleType>  
  </xs:element>
  <xs:element name="Base64-Data">
    <xs:simpleType>
      <xs:restriction base="xs:base64Binary"/>
    </xs:simpleType>
  </xs:element>
        
   
  <!-- Simple elements referenced in <Transmission-Refs> -->
  <xs:element name="Ref-Xmission-Origin-Type">        
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="EXTERNAL APPLICATION"/>      
        <xs:enumeration value="INSURER"/>
        <xs:enumeration value="MANUFACTURER"/>        
        <xs:enumeration value="SERVICE PROVIDER"/> 
        <xs:enumeration value="UNKNOWN"/>         
        <xs:enumeration value="WORK PROVIDER"/> 
        <xs:enumeration value="CAPS"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <!-- a list of valid codes will be published -->        
  <xs:element name="Ref-Xmission-Origin-Code">  
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
  <!-- Simple elements referenced in <Ref_Txn_References> -->
  <xs:element name="Ref-Txn-Origin-Type">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="50"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  

  <xs:element name="Ref-Txn-Origin-Code">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="50"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  

    <xs:element name="Ref-Txn-SP-Job-ID">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="50"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>      

  <xs:element name="Ref-Txn-WP-Case-Ref">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="50"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  

  <xs:element name="Ref-Txn-Vehicle-Reg">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="50"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>    
    
  <!-- Simple elements referenced in <Message> -->
  <xs:element name="Message-Datetime">
    <xs:simpleType>
      <xs:restriction base="xs:dateTime"/>
    </xs:simpleType>
  </xs:element>

 
  <xs:element name="Message-Origin-Type">        
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="CAPS"/>
        <xs:enumeration value="EXTERNAL APPLICATION"/>      
        <xs:enumeration value="INSURER"/>      
        <xs:enumeration value="MANUFACTURER"/>        
        <xs:enumeration value="SERVICE PROVIDER"/>          
        <xs:enumeration value="WORK PROVIDER"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <!-- a list of valid codes will be published -->
  <xs:element name="Message-Origin-Code">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>  
      
  <xs:element name="Message-Code">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <xs:restriction base="xs:integer">
            <xs:minInclusive value="0"/>
            <xs:maxInclusive value="999999"/>
          </xs:restriction>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>  
  </xs:element>
  
  <xs:element name="Message-Text">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="200"/>
      </xs:restriction>    
    </xs:simpleType>
  </xs:element>
  
    
  <!-- Simple element referenced in <Transmission-Trailer> -->
  <xs:element name="Transmission-Checksum">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="0"/>
        <xs:maxLength value="80"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  
   <xs:element name="Transmission-Origin-Type">        
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:enumeration value="CAPS"/>
        <xs:enumeration value="EXTERNAL APPLICATION"/>
        <xs:enumeration value="INSURER"/>
        <xs:enumeration value="MANUFACTURER"/>        
        <xs:enumeration value="SERVICE PROVIDER"/>                  
        <xs:enumeration value="WORK PROVIDER"/>
        <xs:enumeration value="UNKNOWN"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
  <!-- a list of valid codes will be published -->
  <xs:element name="Transmission-Origin-Code">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="1"/>
        <xs:maxLength value="20"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>    
    
  <!-- complex elements -->
  
   <xs:element name="Job-Detail">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Job-Origin-Type" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Job-Origin-Code" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="SP-Job-ID" minOccurs="1" maxOccurs="1"/> 
        <xs:element ref="WP-Case-Ref" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Policy-No" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Claim-No" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Cover-Type" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Notified-Excess" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Notified-VAT-Liability" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="CV-Reqd" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="CV-Transmission-Type" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Vehicle-Drivable" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Collection-Reqd" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Mobile-Est-Reqd" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Mgt-System" minOccurs="0" maxOccurs="1"/> 
        <xs:element ref="Est-System" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Assessment-No" minOccurs="0" maxOccurs="1"/> 
        <xs:element ref="Total-Loss-Value" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Job-Type" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="No-Work-Reason" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
                      
  <xs:element name="Vehicle-Detail">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Vehicle-Reg" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Vehicle-Make" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Vehicle-Model" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Vehicle-Colour" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Vehicle-Vin" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Registration-Date" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>                      
                    
  <xs:element name="Invoice-Summary">
    <xs:complexType>
      <xs:sequence>     
        <xs:element ref="Confirmed-Excess" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Confirmed-VAT-Liability" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Customer-Betterment" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Customer-Nett" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Customer-VAT" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Insurer-Nett" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Insurer-VAT" minOccurs="1" maxOccurs="1"/>
        <!-- breakdown -->
        <xs:element ref="Invoiced-Labour" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Invoiced-Parts" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Invoiced-Paint-And-Materials" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Invoiced-Other" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Sold-Hours" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Invoice-Type" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
<xs:element name="Estimate-Detail">
  <xs:complexType>
    <xs:sequence>
      <xs:element name="Total-Labour-Hours">
        <xs:simpleType>
          <xs:union>
            <xs:simpleType>
              <xs:restriction base="xs:decimal">
                <xs:minInclusive value="0"/>
                <xs:maxInclusive value="999999"/>
              </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value=""/>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>     
      <xs:element name="Total-Labour-Net">
        <xs:simpleType>
          <xs:union>
            <xs:simpleType>
              <xs:restriction base="xs:decimal">
                <xs:minInclusive value="0"/>
                <xs:maxInclusive value="999999"/>
              </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value=""/>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>     
      <xs:element name="Total-Materials-Net">
        <xs:simpleType>
          <xs:union>
            <xs:simpleType>
              <xs:restriction base="xs:decimal">
                <xs:minInclusive value="0"/>
                <xs:maxInclusive value="999999"/>
              </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value=""/>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>     
      <xs:element name="Total-Parts-Net">
        <xs:simpleType>
          <xs:union>
            <xs:simpleType>
              <xs:restriction base="xs:decimal">
                <xs:minInclusive value="0"/>
                <xs:maxInclusive value="999999"/>
              </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value=""/>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element> 
      <xs:element name="Total-Other-Net">
        <xs:simpleType>
          <xs:union>
            <xs:simpleType>
              <xs:restriction base="xs:decimal">
                <xs:minInclusive value="0"/>
                <xs:maxInclusive value="999999"/>
              </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value=""/>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>   
      <xs:element name="Total-Net-On-Estimate">
        <xs:simpleType>
          <xs:union>
            <xs:simpleType>
              <xs:restriction base="xs:decimal">
                <xs:minInclusive value="0"/>
                <xs:maxInclusive value="999999"/>
              </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value=""/>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>
      </xs:element>   
      <xs:element name="Estimator-Name">
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:minLength value="0"/>
            <xs:maxLength value="20"/>
          </xs:restriction>    
        </xs:simpleType>
      </xs:element>
      <xs:element name="Parts-Estimate-Count">
        <xs:simpleType>
          <xs:union>
            <xs:simpleType>
              <xs:restriction base="xs:integer">
                <xs:minInclusive value="0"/>
                <xs:maxInclusive value="999999"/>
              </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value=""/>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>  
      </xs:element>
      <xs:element name="Parts-Ordered-Count">
        <xs:simpleType>
          <xs:union>
            <xs:simpleType>
              <xs:restriction base="xs:integer">
                <xs:minInclusive value="0"/>
                <xs:maxInclusive value="999999"/>
              </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value=""/>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>  
      </xs:element>
      <xs:element name="Parts-Received-Count">
        <xs:simpleType>
          <xs:union>
            <xs:simpleType>
              <xs:restriction base="xs:integer">
                <xs:minInclusive value="0"/>
                <xs:maxInclusive value="999999"/>
              </xs:restriction>
            </xs:simpleType>
            <xs:simpleType>
              <xs:restriction base="xs:string">
                <xs:enumeration value=""/>
              </xs:restriction>
            </xs:simpleType>
          </xs:union>
        </xs:simpleType>  
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:element>

  <xs:element name="Note">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Note-Type" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Note-Text" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="Uplift-Notes">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Note" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>                              

  <xs:element name="Event">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Event-Name" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Event-Datetime" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="Events">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Event" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>  
  
  <xs:element name="ECD-Change-Time">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 

   <xs:element name="ECD-From">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 

  <xs:element name="ECD-To">
    <xs:simpleType>
      <xs:union>
        <xs:simpleType>
          <!-- yyyy-mm-ddThh:mm:ss -->
          <xs:restriction base="xs:dateTime"/>
        </xs:simpleType>
        <xs:simpleType>
          <xs:restriction base="xs:string">
            <xs:enumeration value=""/>
          </xs:restriction>
        </xs:simpleType>
      </xs:union>
    </xs:simpleType>
  </xs:element> 

 
  <xs:element name="ECD-Change">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="ECD-Change-Reason" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="ECD-Change-Text" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="ECD-Change-Time" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="ECD-From" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="ECD-To" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>  

  <xs:element name="ECD-Changes">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="ECD-Change" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>  

  <xs:element name="Process">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Workshop-Task" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Task-Status" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Process-Code" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Operative" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Progress-Percentage" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Progress-Expected-Start-Date" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Progress-Completion-Date" minOccurs="0" maxOccurs="1"/>
       </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="Processes">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Process" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <xs:element name="Address-Detail">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Address-Type" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Address-Is-Customer" minOccurs="0" maxOccurs="1"/> 
        <xs:element ref="Address-ID" minOccurs="1" maxOccurs="1"/>      
        <xs:element ref="Address-Title" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Address-Name" minOccurs="1" maxOccurs="1"/>       
        <xs:element ref="Address-Line1" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Address-Line2" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Address-Line3" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Address-Line4" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Postcode" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Contact" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Phone1" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Phone2" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Fax" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Email" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="SMS-Number" minOccurs="0" maxOccurs="1"/>      
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <xs:element name="Address-Details">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Address-Detail" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <xs:element name="Allocated-Replacement-Vehicle">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Vehicle-Reg" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Vehicle-Make" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Vehicle-Model" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="CV-Transmission-Type" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Is-Hire" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Daily-Rate" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Scheduled-Out" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Actual-Out" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Scheduled-Back" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Actual-Back" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Replacement-Vehicle-Type" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

   <xs:element name="Allocated-Replacement-Vehicles">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Allocated-Replacement-Vehicle" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>  

  <xs:element name="Invoice">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Invoice-Description" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Invoice-Type" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Invoice-Id" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Invoice-Date" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Invoice-Taxpoint" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Invoice-Labour" minOccurs="1" maxOccurs="1"/>    
        <xs:element ref="Invoice-Parts" minOccurs="1" maxOccurs="1"/>     
        <xs:element ref="Invoice-Paint-And-Materials" minOccurs="1" maxOccurs="1"/>     
        <xs:element ref="Invoice-Other" minOccurs="1" maxOccurs="1"/>      
        <xs:element ref="Invoice-Excess" minOccurs="1" maxOccurs="1"/>      
        <xs:element ref="Invoice-VAT" minOccurs="1" maxOccurs="1"/>     
        <xs:element ref="Invoice-Betterment" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Invoice-Main-Deduction" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

   <xs:element name="Invoices">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Invoice" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="Backordered-Part">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Part-Description" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Part-Number" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Backorder-Datetime" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Expected-Datetime" minOccurs="0" maxOccurs="1"/> 
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="Backordered-Parts">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Backordered-Part" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>    

  <xs:element name="Parts-Order">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Order-Number" minOccurs="0" maxOccurs="1"/> 
        <xs:element ref="Ordered-Datetime" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <xs:element name="Parts-Orders">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Parts-Order" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>    
  
  <xs:element name="Job">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Job-Detail" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Vehicle-Detail" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Invoice-Summary" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Uplift-Notes" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Events" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Processes" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Address-Details" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Allocated-Replacement-Vehicles" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Invoices" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="External-Communications" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Backordered-Parts" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Parts-Orders" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Estimate-Detail" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="ECD-Changes" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
 
  <xs:element name="Transmission-Trailer">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Transmission-Checksum" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
   
 <xs:element name="Attachment-Details">
   <xs:complexType>
     <xs:sequence>
       <xs:element ref="File-Date" minOccurs="0" maxOccurs="1"/>
       <xs:element ref="File-Size" minOccurs="0" maxOccurs="1"/>
       <xs:element ref="File-Name" minOccurs="0" maxOccurs="1"/>
       <xs:element ref="File-Type" minOccurs="0" maxOccurs="1"/>
       <xs:choice>
         <xs:element ref="Reference-Path" minOccurs="0" maxOccurs="1"/>
         <xs:element ref="Base64-Data" minOccurs="0" maxOccurs="1"/>
       </xs:choice>
     </xs:sequence>
   </xs:complexType>
 </xs:element>
     
 <xs:element name="Invoice-Image">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Attachment-Details" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
     
 <xs:element name="Binary-Attachments">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Invoice-Image" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
    
  <xs:element name="Interest">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Interest-Type" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Interest-Code" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Interest-Job-Ref" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Interest-Access-Key" minOccurs="0" maxOccurs="1"/> 
        <xs:element ref="Interest-Is-Customer" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Interest-To-Notify-Customer" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="External-Communications" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <xs:element name="Interests">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Interest" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <xs:element name="Job-Offer">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Offer-Status" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Datetime-Offered" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Accepted" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Datetime-Accepted" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Reason-Rejected" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Offer-Cancelled" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Datetime-Cancelled" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>  
  <xs:element name="Transaction-Header">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Transaction-Origin-Type" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Transaction-Origin-Code" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Service-Provider-Code" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Insurer-Code" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Interests" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Job-Offer" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <xs:element name="Transaction">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Transaction-Header" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Job" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Binary-Attachments" minOccurs="0" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

  <!-- used to identify received transmission in Message element -->
  <xs:element name="Transmission-Refs">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Ref-Xmission-Origin-Type" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Ref-Xmission-Origin-Code" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
 
  <!-- used to identify received transaction to in Message element -->
  <xs:element name="Transaction-Refs">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Ref-Txn-Origin-Type" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Ref-Txn-Origin-Code" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Ref-Txn-SP-Job-ID" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Ref-Txn-WP-Case-Ref" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Ref-Txn-Vehicle-Reg" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  
  <xs:element name="Message">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Message-Datetime" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Message-Origin-Type" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Message-Origin-Code" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Interests" minOccurs="0" maxOccurs="1"/>  
        <xs:element ref="Transmission-Refs" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Transaction-Refs" minOccurs="0" maxOccurs="1"/>
        <xs:element ref="Message-Code" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Message-Text" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
          
  <xs:element name="Transmission-Header">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Transmission-Origin-Type" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Transmission-Origin-Code" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element> 
  
  <xs:element name="caps_data">
    <xs:complexType>
      <xs:sequence>
        <xs:element ref="Transmission-Header" minOccurs="1" maxOccurs="1"/>
        <xs:element ref="Message" minOccurs="0" maxOccurs="99"/>
        <xs:element ref="Transaction" minOccurs="0" maxOccurs="99"/>
        <xs:element ref="Transmission-Trailer" minOccurs="1" maxOccurs="1"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>

</xs:schema>
