<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema"
            xmlns:tlp="http://www.timelog.com/XML/Schema/tlp/v4_4"
            targetNamespace="http://www.timelog.com/XML/Schema/tlp/v4_4"
            elementFormDefault="qualified"
            attributeFormDefault="unqualified">
  <xsd:element name="WorkUnits">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="WorkUnit" type="tlp:WorkUnitRaw_Type" minOccurs="0" maxOccurs="unbounded" />
      </xsd:sequence>
    </xsd:complexType>
    <xsd:key name="WorkUnit_Key">
      <xsd:selector xpath=".//tlp:WorkUnit" />
      <xsd:field xpath="@ID" />
    </xsd:key>
  </xsd:element>

  <xsd:complexType name="WorkUnitRaw_Type">
    <xsd:sequence>
      <xsd:element name="TimeRegistrationGuid" type="xsd:string" />
	  <xsd:element name="WorkUnitGuid" type="xsd:string" />
      <xsd:element name="OvertimeFactor" type="xsd:decimal" />
      <xsd:element name="EmployeeID" type="xsd:positiveInteger" />
      <xsd:element name="EmployeeInitials" type="xsd:string" />
      <xsd:element name="EmployeeFirstName" type="xsd:string" />
      <xsd:element name="EmployeeLastName" type="xsd:string" />
      <xsd:element name="AllocationID" type="xsd:positiveInteger" />
      <xsd:element name="TaskID" type="xsd:positiveInteger" />
      <xsd:element name="TaskName" type="xsd:string" />
      <xsd:element name="ProjectID" type="xsd:positiveInteger" />
      <xsd:element name="ProjectName" type="xsd:string" />
      <xsd:element name="CustomerId" type="xsd:positiveInteger" />
      <xsd:element name="CustomerName" type="xsd:string" />
      <xsd:element name="Date" type="xsd:dateTime" />
      <xsd:element name="StartTime" type="xsd:dateTime" />
      <xsd:element name="EndTime" type="xsd:dateTime" />
      <xsd:element name="Note" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="DepartmentID" type="xsd:int" />
      <xsd:element name="DepartmentName" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="AdditionalTextField" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="ActualExchangeRate" type="xsd:decimal" />
      <xsd:element name="RegHours" type="xsd:decimal" />
      <xsd:element name="RegHourlyRate" type="xsd:decimal" />
      <xsd:element name="RegHourlyRateProjectCurrency" type="xsd:decimal" />
      <xsd:element name="RegAmount" type="xsd:decimal" />
      <xsd:element name="RegAmountProjectCurrency" type="xsd:decimal" />
      <xsd:element name="EstimatedHours" type="xsd:decimal" />
      <xsd:element name="EstimatedHourlyRate" type="xsd:decimal" />
      <xsd:element name="EstimatedHourlyRateProjectCurrency" type="xsd:decimal" />
      <xsd:element name="EstimatedAmount" type="xsd:decimal" />
      <xsd:element name="EstimatedAmountProjectCurrency" type="xsd:decimal" />
      <xsd:element name="BARHours" type="xsd:decimal" /><!-- BAR: Booked as revenue -->
      <xsd:element name="BARHourlyRate" type="xsd:decimal" />
      <xsd:element name="BARHourlyRateProjectCurrency" type="xsd:decimal" />
      <xsd:element name="BARAmount" type="xsd:decimal" />
      <xsd:element name="BARAmountProjectCurrency" type="xsd:decimal" />
      <xsd:element name="InvoicedHours" type="xsd:decimal" />
      <xsd:element name="InvoicedHourlyRate" type="xsd:decimal" />
      <xsd:element name="InvoicedHourlyRateProjectCurrency" type="xsd:decimal" />
      <xsd:element name="InvoicedAmount" type="xsd:decimal" />
      <xsd:element name="InvoicedAmountProjectCurrency" type="xsd:decimal" />
      <xsd:element name="InvHours" type="xsd:decimal" /><!-- InvHours deprecated, use BARHours instead -->
      <xsd:element name="InvAmount" type="xsd:decimal" /><!-- InvAmount deprecated, use BARAmount instead -->
      <xsd:element name="CostAmount" type="xsd:decimal" />
      <xsd:element name="CostAmountCurrency" type="xsd:decimal" />
      <xsd:element name="HourlyRateId" type="xsd:positiveInteger" />
      <xsd:element name="InvoiceStatus" type="xsd:short" />
      <xsd:element name="BillableStatus" type="xsd:short" />
      <xsd:element name="IsBillable" type="xsd:boolean" />
      <xsd:element name="ApprovedStatus" type="xsd:short" />
      <xsd:element name="MonthlyPeriod" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="CreatedAt" type="xsd:dateTime" />
      <xsd:element name="CreatedByEmployeeId" type="xsd:positiveInteger" />
      <xsd:element name="CreatedBy" type="xsd:string" />
      <xsd:element name="LastModifiedAt" type="xsd:dateTime" />
      <xsd:element name="LastModifiedByEmployeeId" type="xsd:positiveInteger" />
      <xsd:element name="LastModifiedBy" type="xsd:string" />
      <xsd:element name="UserID" type="xsd:positiveInteger" />
    </xsd:sequence>
    <xsd:attribute name="ID" type="xsd:positiveInteger" use="required" />
	<xsd:attribute name="OldID" type="xsd:positiveInteger" use="required" />
  </xsd:complexType>

</xsd:schema>