<?xml version="1.0" encoding="utf-8"?>
<xsd:schema targetNamespace="http://schemas.monster.com/Monster" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.monster.com/Monster" elementFormDefault="qualified">
  <xsd:include schemaLocation="Common.xsd"/>
  <xsd:include schemaLocation="JobSeeker.xsd"/>

  <xsd:element name="JobSeekerExts">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element ref="JobSeekerExt" minOccurs="0" maxOccurs="unbounded"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:element name="JobSeekerExt" type="JobSeekerExtType"/>
  <xsd:complexType name="JobSeekerExtType">
    <xsd:complexContent>
      <xsd:extension base="JobSeekerType">
        <xsd:sequence>
          <xsd:element name="SeekerServices" type="SeekerServicesType"/>
          <xsd:element name="CareerProfileScores" type="CareerProfileScoresType" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="JobSkillAssessments" type="JobSkillAssessmentsType" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="JobSkillTrainings" type="JobSkillTrainingsType" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="EmployerContactLetters" type="EmployerContactLettersType" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="SavedJobs" type="SavedJobsType" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="CareerActivityStatuses" type="CareerActivityStatusesType" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="VideoViews" type="VideoViewsType" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="UserEvents" type="UserEventsType" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="CMSCasePlans" type="CMSCasePlansType" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="VeteranTransitionPlans" type="VeteranTransitionPlansType" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="BudgetCalculators" type="BudgetCalculatorsType" minOccurs="0" maxOccurs="1"/>
          <xsd:element name="LifestyleCalculators" type="LifestyleCalculatorsType" minOccurs="0" maxOccurs="1"/> 
		  <xsd:element name="JobReferrals" type="JobReferralsType" minOccurs="0" maxOccurs="1"/> 
        </xsd:sequence>
      </xsd:extension>
    </xsd:complexContent>
  </xsd:complexType>

  <xsd:complexType name="SeekerServicesType">
    <xsd:sequence>
      <xsd:element name="SeekerService" type="SeekerServiceType" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="SeekerServiceType">
    <xsd:sequence>
      <xsd:element name="ServiceType" type="ServiceTypeType" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="Date" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="ServiceAgent" type="ServiceAgentType" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="ServiceOffice" type="ServiceOfficeType" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
    <xsd:attribute name="serviceId" type="xsd:string" use="required"/>
  </xsd:complexType>

  <xsd:complexType name="ServiceTypeType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="typeId" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>

  <xsd:complexType name="ServiceAgentType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="agentId" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>

  <xsd:complexType name="ServiceOfficeType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="officeId" type="xsd:string" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>

  <xsd:complexType name="CareerProfileScoresType">
    <xsd:sequence>
      <xsd:element name="CareerProfileScore" type="CareerProfileScoreType" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="CareerProfileScoreType">
    <xsd:sequence>
      <xsd:element name="Name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="Score" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="Date" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>	
  </xsd:complexType>

  <xsd:complexType name="JobSkillAssessmentsType">
    <xsd:sequence>
      <xsd:element name="JobSkillAssessment" type="JobSkillAssessmentType" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="JobSkillAssessmentType">
    <xsd:sequence>
      <xsd:element name="Name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="Score" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="Date" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="ID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>		
  </xsd:complexType>

  <xsd:complexType name="JobSkillTrainingsType">
    <xsd:sequence>
      <xsd:element name="JobSkillTraining" type="JobSkillTrainingType" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="JobSkillTrainingType">
    <xsd:sequence>
      <xsd:element name="Name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="Date" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="ID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="EmployerContactLettersType">
    <xsd:sequence>
      <xsd:element name="EmployerContactLetter" type="EmployerContactLetterType" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="EmployerContactLetterType">
    <xsd:sequence>
      <xsd:element name="MessageDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="EmployerName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="EmployerContactUrl" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="RecruiterContactName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="RecruiterContactEmail" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="RecruiterContactPhone" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="Message" type="xsd:string" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="SavedJobsType">
    <xsd:sequence>
      <xsd:element name="SavedJob" type="SavedJobType" minOccurs="0" maxOccurs="unbounded"/>		
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="SavedJobType">
    <xsd:sequence>
      <xsd:element name="JobId" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="JobTitle" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="CompanyName" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="JobStatus" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="DateApplied" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="ApplyMethod" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="CreatedDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="ModifiedDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="JobSourceUrl" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="JobSourceId" type="xsd:string" minOccurs="0" maxOccurs="1"/>
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="CareerActivityStatusesType">
    <xsd:sequence>
      <xsd:element name="CareerActivityStatus" type="CareerActivityStatusType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="CareerActivityStatusType">
    <xsd:annotation>
      <xsd:documentation>
        OWCMSSeekerID   (This is the external seeker ID that we get from Ohio)
        SeekerCaseID    (This is the external case id that we get from Ohio so that they can map it on their side and update)
        ActivityDataID  (ExternalActivityDataID)
        ActivityFlag    (ExternalActivityTypeID from the lookup table for the CareerActivityTypeID)
        ActivityStatus  (CareerActivityStatusName)

        Tables involved (DBUSER):
          LookupCareerActivityStatuses
          LookupCareerActivities
          LookupCareerActivityTypes
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="OWCMSSeekerID" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="SeekerCaseID" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="ActivityDataID" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="ActivityFlag" type="ActivityFlagEnum" minOccurs="0" maxOccurs="1" />
      <xsd:element name="ActivityStatus" type="ActivityStatusEnum" minOccurs="0" maxOccurs="1" />
      <xsd:element name="StatusModifiedDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:element name="GetJobSeekerExtBySeekerServiceCodeID">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="SeekerServiceCodeID" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>

  <xsd:complexType name="VideoViewsType">
    <xsd:sequence>
      <xsd:element name="VideoView" type="VideoViewType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="VideoViewType">
    <xsd:annotation>
      <xsd:documentation>
        VideoID           (This is the internal Monster Video ID)
        VideoName         (This is the Vieo Name)
        ProgramName       (Program Name for which the video is displayed)
        Required          (User must see this video)
        FirstViewedDate   (Date when user seen the video for the first time)
        LastViewedDate    (Date when user seen the video for the last time)
        SelfCertifiedDate (Date when user self certified viewing this required video)
        
        Tables involved (DBUSER):
          UserVideoViews
          LookupVendors
          LookupVideos
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="VideoID" type="xsd:string" />
      <xsd:element name="VideoName" type="xsd:string" />
      <xsd:element name="ProgramName" type="xsd:string" />
      <xsd:element name="Required" type="xsd:boolean" default="false" />
      <xsd:element name="FirstViewedDate" type="xsd:dateTime" />
      <xsd:element name="LastViewedDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
      <xsd:element name="SelfCertifiedDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="UserEventsType">
    <xsd:sequence>
      <xsd:element name="UserEvent" type="UserEventType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="UserEventType">
    <xsd:annotation>
      <xsd:documentation>
        TBD
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="EventID" type="xsd:positiveInteger" />
      <xsd:element name="EventName" type="xsd:string" />
      <xsd:element name="EventDesc" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="EventType" type="EventTypeEnumStr" />
      <xsd:element name="EventStartDate" type="xsd:dateTime" />
      <xsd:element name="EventEndDate" type="xsd:dateTime" />
      <xsd:element name="JobCenter" type="xsd:string" />
      <xsd:element name="Address1" type="xsd:string" />
      <xsd:element name="Address2" type="xsd:string" minOccurs="0" maxOccurs="1"  />
      <xsd:element name="City" type="xsd:string"/>
      <xsd:element name="State" type="xsd:string" />
      <xsd:element name="PostalCode" type="xsd:string"/>
      <xsd:element name="County" type="xsd:string"/>
      <xsd:element name="Phone" type="xsd:string" />
      <xsd:element name="CreatedBy" type="xsd:string" />
      <xsd:element name="CreatedByEmailAddress" type="xsd:string" />
      <xsd:element name="IsRegistered" type="xsd:boolean"  default="false" />
      <xsd:element name="UserEventAttendance" type="UserEventAttendanceStatusesEnumStr" />
      <xsd:element name="UserEventNotes" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="UserEventCancellationReason" type="UserEventCancellationReasonsEnumStr" minOccurs="0" maxOccurs="1" />
      <xsd:element name="UserEventCancellationComment" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="UserEventCreatedDate" type="xsd:dateTime" />
      <xsd:element name="UserEventModifiedDate" type="xsd:dateTime" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="CMSCasePlansType">
    <xsd:sequence>
      <xsd:element name="CMSCasePlan" type="CMSCasePlanType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="CMSCasePlanType">
    <xsd:sequence>
      <xsd:element name="CMSCasePlanID" type="xsd:positiveInteger" />
      <xsd:element name="CMSCasePlanType" type="CMSCaseTypesEnumStr" minOccurs="0" maxOccurs="1" />
      <xsd:element name="OWCMSSeekerID" type="xsd:positiveInteger" />
      <xsd:element name="ExternalCaseID" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="CMSCasePlanStatus" type="CMSCasePlanStatusesEnumStr" />
      <xsd:element name="CMSCaseData" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="CMSCaseCreatedDate" type="xsd:dateTime" />
      <xsd:element name="CMSCaseModifiedDate" type="xsd:dateTime" />
      <xsd:element name="CasePlanActivities" type="CasePlanActivitiesType" minOccurs="0" maxOccurs="1"/>            
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="CasePlanActivitiesType">
    <xsd:sequence>
      <xsd:element name="CasePlanActivity" type="CasePlanActivityType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="CasePlanActivityType">
    <xsd:sequence>
      <xsd:element name="CasePlanActivityID" type="xsd:positiveInteger" />
      <xsd:element name="CaseActivityName" type="xsd:string" />
      <xsd:element name="CaseActivityDataID" type="xsd:positiveInteger" />
      <xsd:element name="CaseActivityType" type="CaseActivityTypesEnumStr" />
      <xsd:element name="CaseActivityData" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="CaseActivityStatus" type="CaseActivityStatusesEnumStr" />
      <xsd:element name="CaseActivityModifiedDate" type="xsd:dateTime" />
      <xsd:element name="CaseActivityCompletionDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
      <xsd:element name="CaseActivityDueDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="VeteranTransitionPlansType">
    <xsd:sequence>
      <xsd:element name="VeteranTransitionPlan" type="VeteranTransitionPlanType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="VeteranTransitionPlanType">
    <xsd:sequence>
      <xsd:element name="CreatedDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
      <xsd:element name="PercentOfCompletion" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="ActiveDutyTransitionDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
      <xsd:element name="NonActiveDutyTransitionDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
      <xsd:element name="LastModifiedDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
  </xsd:complexType>
    
  <xsd:complexType name="JobReferralsType">
    <xsd:sequence>
      <xsd:element name="JobReferral" type="JobReferralType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  
  <xsd:complexType name="JobReferralType">
    <xsd:sequence>      
      <xsd:element name="JobID" type="xsd:positiveInteger" minOccurs="0" maxOccurs="1" />
      <xsd:element name="CompanyID" type="xsd:positiveInteger" minOccurs="0" maxOccurs="1" />
	  <xsd:element name="JobReferralDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
  </xsd:complexType> 
    
  <xsd:complexType name="BudgetCalculatorsType"> 
    <xsd:sequence>
      <xsd:element name="BudgetCalculator" type="BudgetCalculatorType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="BudgetCalculatorType">
    <xsd:sequence>
      <xsd:element name="GrossSalWithoutSuppIncome" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="NetSalWithoutSuppIncome" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="HourlySalWithoutSuppIncome" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="GrossSalWithSuppIncome" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="NetSalWithSuppIncome" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="HourlySalWithSuppIncome" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="LastModifiedDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="LifestyleCalculatorsType">
    <xsd:sequence>
      <xsd:element name="LifestyleCalculator" type="LifestyleCalculatorType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>

  <xsd:complexType name="LifestyleCalculatorType">
    <xsd:sequence>
      <xsd:element name="GrossSalary" type="xsd:string" minOccurs="0" maxOccurs="1"/>
      <xsd:element name="NetSalary" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="HourlySalary" type="xsd:string" minOccurs="0" maxOccurs="1" />
      <xsd:element name="LastModifiedDate" type="xsd:dateTime" minOccurs="0" maxOccurs="1" />
    </xsd:sequence>
  </xsd:complexType>
  
</xsd:schema>



