<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
  <xsd:element name="Monster">
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element name="Errors" type="Errors" minOccurs="0"/>
        <xsd:element name="Resumes" type="Resumes" minOccurs="0"/>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:complexType name="Errors">
    <xsd:sequence>
      <xsd:element name="Error" type="Error" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Error">
    <xsd:sequence>
      <xsd:element name="Message"/>
    </xsd:sequence>
    <xsd:attribute name="Number" type="ErrorEnum" use="required"/>
  </xsd:complexType>
  <xsd:complexType name="Resumes">
    <xsd:sequence>
      <xsd:element name="Resume" type="Resume" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
    <xsd:attribute name="Found" type="xsd:nonNegativeInteger" use="required"/>
    <xsd:attribute name="Returned" type="xsd:nonNegativeInteger" use="required"/>
    <xsd:attribute name="Status" type="xsd:integer" use="required"/>
  </xsd:complexType>
  <xsd:complexType name="Resume">
    <xsd:annotation>
      <xsd:documentation>

        This is the main resume information.

      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="Relevance" type="Relevance"/>
      <xsd:element name="SeekerRefCode" type="xsd:string" minOccurs="0" />
      <xsd:element name="RequisitionCodes" type="RequisitionCodes" minOccurs="0" />
      <xsd:element name="ResumeTitle" type="ResumeTitle"/>
      <xsd:element name="DateModified" type="dateTime"/>
      <xsd:element name="DateCreated" type="dateTimeNoRestrict" minOccurs="0"/>
      <xsd:element name="TotalYearsExperience" type="TotalYearsExperience"/>
      <xsd:element name="WillRelocate" type="WillRelocate" minOccurs="0"/>
      <xsd:element name="EducationLevel" type="EducationLevel"/>
      <xsd:element name="CareerLevel" type="CareerLevel"/>
      <xsd:element name="Boards" type="Boards"/>
      <xsd:element name="Icons" type="Icons" minOccurs="0"/>
      <xsd:element name="Source" type="Source" minOccurs="0" />
      <xsd:element name="PersonalData" type="PersonalData" minOccurs="0"/>
      <xsd:element name="Target" type="Target" minOccurs="0"/>
      <xsd:element name="Experiences" type="Experiences" minOccurs="0"/>
      <xsd:element name="Skills" type="Skills" minOccurs="0"/>
      <xsd:element name="WorkAuths" type="WorkAuths" minOccurs="0"/>
      <xsd:element name="GlobalSecurityClearances" type="SecurityClearances" minOccurs="0"/>
      <xsd:element name="VeteranStatus" type="VeteranStatus" minOccurs="0" />
      <xsd:element name="LegalStatuses" type="LegalStatuses" minOccurs="0" />
    </xsd:sequence>
    <xsd:attribute name="SID" type="xsd:string" use="required"/>
  </xsd:complexType>
  <xsd:simpleType name="Relevance">
    <xsd:annotation>
      <xsd:documentation>
        Define the Relevance for the resume, positive floating point values.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:float">
      <xsd:minInclusive value="0.0"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="RequisitionCodes">
    <xsd:sequence>
      <xsd:element name="RequisitionCode" type="xsd:string" minOccurs="0"  maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:simpleType name="ResumeTitle">
    <xsd:restriction base="xsd:string"/>
  </xsd:simpleType>
  <xsd:complexType name="dateTime">
    <xsd:annotation>
      <xsd:documentation>
        Define dateTime as an attribute element.
        Override the schema dateTime to limit the range.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="Date">
      <xsd:simpleType>
        <xsd:restriction base="xsd:dateTime">
          <xsd:minInclusive value="1900-01-01T00:00:00"/>
          <xsd:maxInclusive value="2100-01-01T00:00:00"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="dateTimeNoRestrict">
    <xsd:annotation>
      <xsd:documentation>
        Same as dateTime but with no range restriction.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="Date" type="xsd:dateTime"/>
  </xsd:complexType>
  <xsd:simpleType name="dateTimeSimple">
    <xsd:restriction base="xsd:dateTime">
      <xsd:minInclusive value="1900-01-01T00:00:00"/>
      <!-- xsd:maxInclusive value="2100-01-01T00:00:00"/ -->
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="TotalYearsExperience">
    <xsd:annotation>
      <xsd:documentation>
        Define the total years experience for the resume, positive floating point values.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:float">
      <xsd:minInclusive value="0.0"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="WillRelocate">
    <xsd:annotation>
      <xsd:documentation>
        Define the WillRelocate value.
        0 = Will not relocate
        1 = Will relocate
        The Empty value is also allowed.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="nonNegativeInteger-or-empty">
      <xsd:enumeration value=""/>
      <xsd:enumeration value="0"/>
      <xsd:enumeration value="1"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="EducationLevel">
    <xsd:annotation>
      <xsd:documentation>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="ID" type="xsd:integer" use="optional"/>
  </xsd:complexType>
  <xsd:simpleType name="JobTitle">
    <xsd:annotation>
      <xsd:documentation>

        Describe a JobTitle. Some examples
        <Title>GIS Computer Lab Supervisor</Title>
        <Title>Boatswain Mate Petty Officer Third Class</Title>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:maxLength value="255"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="CareerLevel">
    <xsd:sequence>
      <xsd:element name="TitleRoleName" type="xsd:string" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Boards">
    <xsd:sequence>
      <xsd:element name="Board" type="Board" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Board">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="ID" type="xsd:positiveInteger" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>

  <xsd:complexType name="Icons">
    <xsd:sequence>
      <xsd:element name="Icon" type="Icon" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Icon">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="ID" type="xsd:positiveInteger" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Source">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="ID" type="xsd:positiveInteger" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="JobTypes">
    <xsd:sequence>
      <xsd:element name="JobType" type="JobType" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="JobType">
    <xsd:annotation>
      <xsd:documentation>

        Describe a JobType. Some examples
        <JobType ID="1">Employee</JobType>
        <JobType ID="4">Full Time</JobType>
        <JobType ID="5">Part Time</JobType>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="ID" type="JobTypeEnum" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="LID">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="LID" type="LocationID" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:simpleType name="LocationID">
    <xsd:restriction base="xsd:positiveInteger"/>
  </xsd:simpleType>
  <xsd:complexType name="Country">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="ID" type="CountryID" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:simpleType name="CountryID">
    <xsd:restriction base="xsd:positiveInteger"/>
  </xsd:simpleType>
  <xsd:complexType name="PersonalData">
    <xsd:sequence>
      <xsd:element name="Confidential" type="Confidential"/>
      <xsd:element name="Name" type="PersonName" minOccurs="0"/>
      <xsd:element name="Address" type="Address" minOccurs="0"/>
      <xsd:element name="MilitaryExperience" type="MilitaryExperience"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:simpleType name="Confidential" id="PersonalData.Confidential">
    <xsd:annotation>
      <xsd:documentation>
        Define the Confidential value.
        0 = Not Confidential
        1 = Confidential - Personal data is supressed.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:nonNegativeInteger">
      <xsd:enumeration value="0"/>
      <xsd:enumeration value="1"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="PersonName">
    <xsd:annotation>
      <xsd:documentation>
        Define the User's Name.  Sizes are from dbuser.user table.
        These are defined as nested types as Name is used all over
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="First" type="FirstName" minOccurs="0"/>
      <xsd:element name="Middle" type="MiddleName" minOccurs="0"/>
      <xsd:element name="Last" type="LastName" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:simpleType name="FirstName">
    <xsd:restriction base="xsd:string">
      <xsd:maxLength value="255"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="MiddleName">
    <xsd:restriction base="xsd:string">
      <xsd:maxLength value="50"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="LastName">
    <xsd:restriction base="xsd:string">
      <xsd:maxLength value="50"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="Address">
    <xsd:annotation>
      <xsd:documentation>
        For External calls, EmailAddress is only available with the proper license obtained from Monster.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="Country" type="xsd:string" minOccurs="0"/>
      <xsd:element name="State" type="xsd:string" minOccurs="0"/>
      <xsd:element name="City" type="CityName" minOccurs="0"/>
      <xsd:element name="Location" type="xsd:string" minOccurs="0"/>
      <xsd:element name="PostalCode" type="PostalCode" minOccurs="0"/>
      <xsd:element name="EmailAddress" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:simpleType name="CountryAbbreviation">
    <xsd:annotation>
      <xsd:documentation>
        Define the country abbreviation.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[A-Z]{2}"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="StateAbbreviation">
    <xsd:annotation>
      <xsd:documentation>
        Define the State abbreviation.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:maxLength value="50"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="CityName" id="PersonalData.Address.CityName">
    <xsd:annotation>
      <xsd:documentation>
        Define the City name.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:maxLength value="50"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="Location" id="PersonalData.Address.Location">
    <xsd:annotation>
      <xsd:documentation>
        Define the Location.  Location is a concatenation of country, state and city
        with '-''s seperating the fields.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="[A-Z]{2}(-[A-Z]{2})?(-.+)?"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="PostalCode">
    <xsd:annotation>
      <xsd:documentation>
        Define the Postal code.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:maxLength value="10"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="EmailAddress">
    <xsd:annotation>
      <xsd:documentation>
        Define the Email address.  Only length is noted so far, based on DB size
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:maxLength value="100"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="MilitaryExperience">
    <xsd:annotation>
      <xsd:documentation>
        Define the users Military experience.
        Todo: Define the ServiceFlag and MilitaryInvolvement values.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="ServiceFlag" type="xsd:boolean" minOccurs="0"/>
      <xsd:element name="MilitaryInvolvement" type="xsd:integer" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Relocation">
    <xsd:annotation>
      <xsd:documentation>
        Define the Relocation element
        Three values allowed
        <Relocation ID="1">Will Relocate</Relocation>
        <Relocation ID="0">Won't Relocate</Relocation>
        <Relocation ID=""/>
        <Relocation/>
      </xsd:documentation>
    </xsd:annotation>
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="ID" type="boolean-or-empty" use="optional"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Target">
    <xsd:sequence>
      <xsd:element name="JobTitle" type="JobTitle" minOccurs="0"/>
      <xsd:element name="Relocation" type="Relocation" minOccurs="0"/>
      <xsd:element name="Salary" type="Salary" minOccurs="0"/>
      <xsd:element name="JobTypes" type="JobTypes" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LegalStatuses">
    <xsd:sequence>
      <xsd:element name="LegalStatus" type="LegalStatus" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LegalStatus">
    <xsd:sequence>
      <xsd:element name="ID" type="xsd:nonNegativeInteger" minOccurs="0" />
      <xsd:element name="Country" type="LegalStatusCountry" minOccurs="0" />
      <xsd:element name="Name" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="LegalStatusCountry">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="ID" type="xsd:positiveInteger" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>

  <xsd:simpleType name="VeteranStatus">
    <xsd:restriction base="xsd:integer">
      <xsd:enumeration value="0" />
      <xsd:enumeration value="1" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="Skills">
    <xsd:sequence>
      <xsd:element name="Skill" type="Skill" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Skill">
    <xsd:sequence>
      <xsd:element name="Matches"  type="ExpMatches" minOccurs="0" />
      <xsd:element name="Name"     type="SkillName" minOccurs="0" />
      <xsd:element name="LastUsed" type="dateTimeSimple-or-empty"  minOccurs="0" />
      <xsd:element name="YrsUsed"  type="TotalYearsExperience" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SkillName">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="JellyDot" type="BooleanString"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:simpleType name="dateTimeSimple-or-empty">
    <xsd:union memberTypes="dateTimeSimple empty-string"/>
  </xsd:simpleType>
  <xsd:complexType name="Experiences">
    <xsd:sequence>
      <xsd:element name="Experience" type="Experience" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Experience">
    <xsd:sequence>
      <xsd:element name="Matches" type="ExpMatches" minOccurs="0" />
      <xsd:element name="Company" type="ExpCompany" minOccurs="0" />
      <xsd:element name="Job"     type="ExpJob" minOccurs="0" />
      <xsd:element name="DateFrom" type="FieldedDate" minOccurs="0" />
      <xsd:element name="DateTo"   type="FieldedDate" minOccurs="0" />
      <xsd:element name="Years"    type="TotalYearsExperience" minOccurs="0" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExpMatches">
    <xsd:sequence>
      <xsd:element name="Label" type="ExpMatchesLabel" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExpMatchesLabel">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="Group" type="xsd:string"/>
        <xsd:attribute name="Criteria" type="xsd:string"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ExpCompany">
    <xsd:sequence>
      <xsd:element name="Name" type="xsd:string" minOccurs="0" />
    </xsd:sequence>
    <xsd:attribute name="JellyDot" type="BooleanString"/>
  </xsd:complexType>
  <xsd:complexType name="ExpJob">
    <xsd:sequence>
      <xsd:element name="Title" type="ExpJobTitle" minOccurs="0" />
      <xsd:element name="CareerLevel" type="ExpJobCareerLevel" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="ExpJobTitle">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="JellyDot" type="BooleanString"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="ExpJobCareerLevel">
    <xsd:sequence>
      <xsd:element name="TitleRoleName" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
    <xsd:attribute name="JellyDot" type="BooleanString"/>
  </xsd:complexType>
  <xsd:complexType name="Salary">
    <xsd:annotation>
      <xsd:documentation/>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="Min" type="float-or-empty" minOccurs="0"/>
      <xsd:element name="Max" type="float-or-empty" minOccurs="0"/>
      <xsd:element name="Type" type="PayPeriod" minOccurs="0"/>
      <xsd:element name="Currency" type="Currency" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="PayPeriod" id="Salary.PayPeriod">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="ID" type="nonNegativeInteger-or-empty" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="Currency" id="Salary.Currency">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="ID" type="xsd:nonNegativeInteger" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="WorkAuths">
    <xsd:sequence>
      <xsd:element name="WorkAuth" type="WorkAuth" minOccurs="0" maxOccurs="unbounded"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="WorkAuth">
    <xsd:sequence>
      <xsd:element name="Country" type="Country"/>
      <xsd:element name="AuthType" type="WorkAuthType"/>
    </xsd:sequence>
    <!--  Added for folder scoring -->
  </xsd:complexType>
  <xsd:complexType name="WorkAuthType">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="ID" type="WorkAuthEnum" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:complexType name="SecurityClearances">
    <xsd:sequence>
      <xsd:element name="SecurityClearance" type="SecurityClearance" minOccurs="0"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="SecurityClearance" id="Resume.SecurityClearances.SecurityClearance">
    <xsd:sequence>
      <xsd:element name="Country" type="Country"/>
      <xsd:element name="Clearance" type="Clearance"/>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="Clearance">
    <xsd:simpleContent>
      <xsd:extension base="xsd:string">
        <xsd:attribute name="ID" type="ClearanceID" use="required"/>
      </xsd:extension>
    </xsd:simpleContent>
  </xsd:complexType>
  <xsd:simpleType name="ClearanceID">
    <xsd:restriction base="xsd:positiveInteger"/>
  </xsd:simpleType>
  <xsd:complexType name="FieldedDate">
    <xsd:annotation>
      <xsd:documentation>
        These dates are used by Education, Experience and WorkAuth.
        The Month, Day and Year are seperate attributes.
      </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="Year" use="optional">
      <xsd:simpleType>
        <xsd:restriction base="xsd:integer">
          <xsd:minInclusive value="1900"/>
          <xsd:maxInclusive value="2300"/>
          <xsd:pattern value="\d{4}"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
    <xsd:attribute name="Month" use="optional">
      <xsd:simpleType>
        <xsd:restriction base="xsd:integer">
          <xsd:minInclusive value="1"/>
          <xsd:maxInclusive value="12"/>
          <xsd:pattern value="\d{1,2}"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
    <xsd:attribute name="Day" use="optional">
      <xsd:simpleType>
        <xsd:restriction base="xsd:integer">
          <xsd:minInclusive value="1"/>
          <xsd:maxInclusive value="31"/>
          <xsd:pattern value="\d{1,2}"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:simpleType name="BooleanString">
    <xsd:annotation>
      <xsd:documentation>

        Define a boolean string type.  Can take the value 'true' or 'false'

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:pattern value="true|false"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="JobTypeEnum">
    <xsd:annotation>
      <xsd:documentation>

        Types:
        1 - Employee
        3 - Intern
        4 - Full Time
        5 - Part Time
        20 - Seasonal
        26 - Per Diem

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:positiveInteger">
      <xsd:enumeration value="1"/>
      <xsd:enumeration value="2"/>
      <xsd:enumeration value="3"/>
      <xsd:enumeration value="4"/>
      <xsd:enumeration value="5"/>
      <xsd:enumeration value="6"/>
      <xsd:enumeration value="7"/>
      <xsd:enumeration value="20"/>
      <xsd:enumeration value="26"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="WorkAuthEnum">
    <xsd:restriction base="xsd:positiveInteger">
      <xsd:enumeration value="1"/>
      <xsd:enumeration value="2"/>
      <xsd:enumeration value="3"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="EducationLevelEnum">
    <xsd:annotation>
      <xsd:documentation>

        EducationLevelID EducationLevel
        ---------------- -----------------------------------
        1                High School or equivalent
        2                Certification
        3                Vocational
        4                Associate Degree
        5                Bachelors Degree
        6                Masters Degree
        7                Doctorate
        8                Professional
        9                Some College Coursework Completed
        10               Vocational - High School
        11               Vocational - Degree
        12               Some High School Coursework

      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:positiveInteger">
      <xsd:enumeration value="1"/>
      <xsd:enumeration value="2"/>
      <xsd:enumeration value="3"/>
      <xsd:enumeration value="4"/>
      <xsd:enumeration value="5"/>
      <xsd:enumeration value="6"/>
      <xsd:enumeration value="7"/>
      <xsd:enumeration value="8"/>
      <xsd:enumeration value="9"/>
      <xsd:enumeration value="10"/>
      <xsd:enumeration value="11"/>
      <xsd:enumeration value="12"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="ErrorEnum">
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value="0xA0000000"/>
      <xsd:enumeration value="0xA0001000"/>
      <xsd:enumeration value="0xA0000001"/>
      <xsd:enumeration value="0xA0000002"/>
      <xsd:enumeration value="0xA0000003"/>
      <xsd:enumeration value="0xA0002000"/>
      <xsd:enumeration value="0xA0003000"/>
      <xsd:enumeration value="0xA0003001"/>
      <xsd:enumeration value="0xA0003002"/>
      <xsd:enumeration value="0xA0003003"/>
      <xsd:enumeration value="0xA0003004"/>
      <xsd:enumeration value="0xA0003005"/>
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="boolean-or-empty">
    <xsd:union memberTypes="xsd:boolean empty-string"/>
  </xsd:simpleType>
  <xsd:simpleType name="nonNegativeInteger-or-empty">
    <xsd:union memberTypes="xsd:nonNegativeInteger empty-string"/>
  </xsd:simpleType>
  <xsd:simpleType name="float-or-empty">
    <xsd:union memberTypes="xsd:float empty-string"/>
  </xsd:simpleType>
  <xsd:simpleType name="empty-string">
    <xsd:annotation>
      <xsd:documentation>
        Form an empty string for elements that have empty values
      </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:string">
      <xsd:enumeration value=""/>
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>
