<?xml version="1.0"?>

<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.juju.com/employers/positionfeed-namespace/"
xmlns="http://www.juju.com/employers/positionfeed-namespace/"
elementFormDefault="qualified">

<xs:annotation>
    <xs:documentation>XML Schema for Juju Positions Feed v1.0.</xs:documentation>
    <xs:documentation>Revision: 1</xs:documentation>
    <xs:documentation>Date: 2006-04</xs:documentation>
</xs:annotation>

<xs:simpleType name="versionType">
    <xs:annotation>
        <xs:documentation>Version of this feed.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
        <xs:enumeration value="2006-04"/>
    </xs:restriction>
</xs:simpleType>

<xs:simpleType name="nationType">
    <xs:annotation>
        <xs:documentation>Two-character upper-case nation code.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="xs:string">
        <xs:enumeration value="AD"/>
        <xs:enumeration value="AE"/>
        <xs:enumeration value="AF"/>
        <xs:enumeration value="AG"/>
        <xs:enumeration value="AI"/>
        <xs:enumeration value="AL"/>
        <xs:enumeration value="AM"/>
        <xs:enumeration value="AN"/>
        <xs:enumeration value="AO"/>
        <xs:enumeration value="AQ"/>
        <xs:enumeration value="AR"/>
        <xs:enumeration value="AS"/>
        <xs:enumeration value="AT"/>
        <xs:enumeration value="AU"/>
        <xs:enumeration value="AW"/>
        <xs:enumeration value="AZ"/>
        <xs:enumeration value="BA"/>
        <xs:enumeration value="BB"/>
        <xs:enumeration value="BD"/>
        <xs:enumeration value="BE"/>
        <xs:enumeration value="BF"/>
        <xs:enumeration value="BG"/>
        <xs:enumeration value="BH"/>
        <xs:enumeration value="BI"/>
        <xs:enumeration value="BJ"/>
        <xs:enumeration value="BM"/>
        <xs:enumeration value="BN"/>
        <xs:enumeration value="BO"/>
        <xs:enumeration value="BR"/>
        <xs:enumeration value="BS"/>
        <xs:enumeration value="BT"/>
        <xs:enumeration value="BV"/>
        <xs:enumeration value="BW"/>
        <xs:enumeration value="BY"/>
        <xs:enumeration value="BZ"/>
        <xs:enumeration value="CA"/>
        <xs:enumeration value="CC"/>
        <xs:enumeration value="CD"/>
        <xs:enumeration value="CF"/>
        <xs:enumeration value="CG"/>
        <xs:enumeration value="CH"/>
        <xs:enumeration value="CI"/>
        <xs:enumeration value="CK"/>
        <xs:enumeration value="CL"/>
        <xs:enumeration value="CM"/>
        <xs:enumeration value="CN"/>
        <xs:enumeration value="CO"/>
        <xs:enumeration value="CR"/>
        <xs:enumeration value="CS"/>
        <xs:enumeration value="CU"/>
        <xs:enumeration value="CV"/>
        <xs:enumeration value="CX"/>
        <xs:enumeration value="CY"/>
        <xs:enumeration value="CZ"/>
        <xs:enumeration value="DE"/>
        <xs:enumeration value="DJ"/>
        <xs:enumeration value="DK"/>
        <xs:enumeration value="DM"/>
        <xs:enumeration value="DO"/>
        <xs:enumeration value="DZ"/>
        <xs:enumeration value="EC"/>
        <xs:enumeration value="ED"/>
        <xs:enumeration value="EE"/>
        <xs:enumeration value="EG"/>
        <xs:enumeration value="EH"/>
        <xs:enumeration value="ER"/>
        <xs:enumeration value="ES"/>
        <xs:enumeration value="ET"/>
        <xs:enumeration value="FI"/>
        <xs:enumeration value="FJ"/>
        <xs:enumeration value="FK"/>
        <xs:enumeration value="FM"/>
        <xs:enumeration value="FO"/>
        <xs:enumeration value="FR"/>
        <xs:enumeration value="FX"/>
        <xs:enumeration value="GA"/>
        <xs:enumeration value="GB"/>
        <xs:enumeration value="GD"/>
        <xs:enumeration value="GE"/>
        <xs:enumeration value="GF"/>
        <xs:enumeration value="GH"/>
        <xs:enumeration value="GI"/>
        <xs:enumeration value="GL"/>
        <xs:enumeration value="GM"/>
        <xs:enumeration value="GN"/>
        <xs:enumeration value="GP"/>
        <xs:enumeration value="GQ"/>
        <xs:enumeration value="GR"/>
        <xs:enumeration value="GS"/>
        <xs:enumeration value="GT"/>
        <xs:enumeration value="GU"/>
        <xs:enumeration value="GW"/>
        <xs:enumeration value="GY"/>
        <xs:enumeration value="HK"/>
        <xs:enumeration value="HM"/>
        <xs:enumeration value="HN"/>
        <xs:enumeration value="HR"/>
        <xs:enumeration value="HT"/>
        <xs:enumeration value="HU"/>
        <xs:enumeration value="ID"/>
        <xs:enumeration value="IE"/>
        <xs:enumeration value="IL"/>
        <xs:enumeration value="IN"/>
        <xs:enumeration value="IO"/>
        <xs:enumeration value="IQ"/>
        <xs:enumeration value="IR"/>
        <xs:enumeration value="IS"/>
        <xs:enumeration value="IT"/>
        <xs:enumeration value="JM"/>
        <xs:enumeration value="JO"/>
        <xs:enumeration value="JP"/>
        <xs:enumeration value="KE"/>
        <xs:enumeration value="KG"/>
        <xs:enumeration value="KH"/>
        <xs:enumeration value="KI"/>
        <xs:enumeration value="KM"/>
        <xs:enumeration value="KN"/>
        <xs:enumeration value="KP"/>
        <xs:enumeration value="KR"/>
        <xs:enumeration value="KW"/>
        <xs:enumeration value="KY"/>
        <xs:enumeration value="KZ"/>
        <xs:enumeration value="LA"/>
        <xs:enumeration value="LB"/>
        <xs:enumeration value="LC"/>
        <xs:enumeration value="LI"/>
        <xs:enumeration value="LK"/>
        <xs:enumeration value="LR"/>
        <xs:enumeration value="LS"/>
        <xs:enumeration value="LT"/>
        <xs:enumeration value="LU"/>
        <xs:enumeration value="LV"/>
        <xs:enumeration value="LY"/>
        <xs:enumeration value="MA"/>
        <xs:enumeration value="MC"/>
        <xs:enumeration value="MD"/>
        <xs:enumeration value="MG"/>
        <xs:enumeration value="MH"/>
        <xs:enumeration value="MK"/>
        <xs:enumeration value="ML"/>
        <xs:enumeration value="MM"/>
        <xs:enumeration value="MN"/>
        <xs:enumeration value="MO"/>
        <xs:enumeration value="MP"/>
        <xs:enumeration value="MQ"/>
        <xs:enumeration value="MR"/>
        <xs:enumeration value="MS"/>
        <xs:enumeration value="MT"/>
        <xs:enumeration value="MU"/>
        <xs:enumeration value="MV"/>
        <xs:enumeration value="MW"/>
        <xs:enumeration value="MX"/>
        <xs:enumeration value="MY"/>
        <xs:enumeration value="MZ"/>
        <xs:enumeration value="NA"/>
        <xs:enumeration value="NC"/>
        <xs:enumeration value="NE"/>
        <xs:enumeration value="NF"/>
        <xs:enumeration value="NG"/>
        <xs:enumeration value="NI"/>
        <xs:enumeration value="NL"/>
        <xs:enumeration value="NO"/>
        <xs:enumeration value="NP"/>
        <xs:enumeration value="NR"/>
        <xs:enumeration value="NT"/>
        <xs:enumeration value="NU"/>
        <xs:enumeration value="NZ"/>
        <xs:enumeration value="OM"/>
        <xs:enumeration value="PA"/>
        <xs:enumeration value="PE"/>
        <xs:enumeration value="PF"/>
        <xs:enumeration value="PG"/>
        <xs:enumeration value="PH"/>
        <xs:enumeration value="PK"/>
        <xs:enumeration value="PL"/>
        <xs:enumeration value="PM"/>
        <xs:enumeration value="PN"/>
        <xs:enumeration value="PR"/>
        <xs:enumeration value="PT"/>
        <xs:enumeration value="PW"/>
        <xs:enumeration value="PY"/>
        <xs:enumeration value="QA"/>
        <xs:enumeration value="RE"/>
        <xs:enumeration value="RO"/>
        <xs:enumeration value="RU"/>
        <xs:enumeration value="RW"/>
        <xs:enumeration value="SA"/>
        <xs:enumeration value="SB"/>
        <xs:enumeration value="SC"/>
        <xs:enumeration value="SD"/>
        <xs:enumeration value="SE"/>
        <xs:enumeration value="SG"/>
        <xs:enumeration value="SH"/>
        <xs:enumeration value="SI"/>
        <xs:enumeration value="SJ"/>
        <xs:enumeration value="SK"/>
        <xs:enumeration value="SL"/>
        <xs:enumeration value="SM"/>
        <xs:enumeration value="SN"/>
        <xs:enumeration value="SO"/>
        <xs:enumeration value="SR"/>
        <xs:enumeration value="ST"/>
        <xs:enumeration value="SU"/>
        <xs:enumeration value="SV"/>
        <xs:enumeration value="SY"/>
        <xs:enumeration value="SZ"/>
        <xs:enumeration value="TC"/>
        <xs:enumeration value="TD"/>
        <xs:enumeration value="TF"/>
        <xs:enumeration value="TG"/>
        <xs:enumeration value="TH"/>
        <xs:enumeration value="TJ"/>
        <xs:enumeration value="TK"/>
        <xs:enumeration value="TM"/>
        <xs:enumeration value="TN"/>
        <xs:enumeration value="TO"/>
        <xs:enumeration value="TP"/>
        <xs:enumeration value="TR"/>
        <xs:enumeration value="TT"/>
        <xs:enumeration value="TV"/>
        <xs:enumeration value="TW"/>
        <xs:enumeration value="TZ"/>
        <xs:enumeration value="UA"/>
        <xs:enumeration value="UG"/>
        <xs:enumeration value="UK"/>
        <xs:enumeration value="UM"/>
        <xs:enumeration value="US"/>
        <xs:enumeration value="UY"/>
        <xs:enumeration value="UZ"/>
        <xs:enumeration value="VA"/>
        <xs:enumeration value="VC"/>
        <xs:enumeration value="VE"/>
        <xs:enumeration value="VG"/>
        <xs:enumeration value="VI"/>
        <xs:enumeration value="VN"/>
        <xs:enumeration value="VU"/>
        <xs:enumeration value="WF"/>
        <xs:enumeration value="WS"/>
        <xs:enumeration value="YE"/>
        <xs:enumeration value="YT"/>
        <xs:enumeration value="YU"/>
        <xs:enumeration value="ZA"/>
        <xs:enumeration value="ZM"/>
        <xs:enumeration value="ZR"/>
        <xs:enumeration value="ZW"/>
    </xs:restriction>
</xs:simpleType>


<xs:group name="locationPhysical">
    <xs:sequence>
        <xs:element name="city" type="xs:string" minOccurs="0" maxOccurs="1"/>
        <xs:element name="county" type="xs:string" minOccurs="0" maxOccurs="1"/>
        <xs:choice>
            <xs:sequence>
                <xs:element name="state" type="xs:string"/>
                <xs:element name="zip" type="xs:string" minOccurs="0" maxOccurs="1"/>
            </xs:sequence>
            <xs:sequence>
                <xs:element name="zip" type="xs:string"/>
            </xs:sequence>
        </xs:choice>
        <xs:element name="nation" type="nationType" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
</xs:group>

<xs:group name="locationNational">
    <xs:sequence>
        <xs:element name="nation" type="nationType" minOccurs="1" maxOccurs="1"/>
    </xs:sequence>
</xs:group>

<xs:complexType name="salaryType">
    <xs:sequence>
        <xs:element name="period">
            <xs:simpleType>
                <xs:restriction base="xs:string">
                    <xs:enumeration value="yearly"/>
                    <xs:enumeration value="monthly"/>
                    <xs:enumeration value="weekly"/>
                    <xs:enumeration value="daily"/>
                    <xs:enumeration value="hourly"/>
                </xs:restriction>
            </xs:simpleType>
        </xs:element>
        <xs:element name="min" type="xs:integer"/>
        <xs:element name="max" type="xs:integer"/>
    </xs:sequence>
</xs:complexType>

<xs:simpleType name="jobTypeType">
    <xs:restriction base="xs:string">
        <xs:enumeration value="fulltime"/>
        <xs:enumeration value="parttime"/>
        <xs:enumeration value="temporary"/>
        <xs:enumeration value="contract"/>
        <xs:enumeration value="internship"/>
        <xs:enumeration value="seasonal"/>
        <xs:enumeration value="volunteer"/>
    </xs:restriction>
</xs:simpleType>

<xs:complexType name="experienceType">
    <xs:sequence>
        <xs:element name="min" type="xs:integer"/>
        <xs:element name="max" type="xs:integer"/>
    </xs:sequence>
</xs:complexType>

<xs:simpleType name="educationType">
    <xs:restriction base="xs:string">
        <xs:enumeration value="somehighschool"/>
        <xs:enumeration value="highschool"/>
        <xs:enumeration value="somecollege"/>
        <xs:enumeration value="associates"/>
        <xs:enumeration value="bachelors"/>
        <xs:enumeration value="masters"/>
        <xs:enumeration value="doctorate"/>
        <xs:enumeration value="postdoctorate"/>
        <xs:enumeration value="professional"/>
    </xs:restriction>
</xs:simpleType>

<xs:complexType name="jobType">
    <xs:sequence>
        <xs:element name="employer" type="xs:string"/>
        <xs:element name="title" type="xs:string"/>
        <xs:element name="description" type="xs:string"/>
        <xs:element name="postingdate" type="xs:date"/>
        <xs:element name="joburl" type="xs:anyURI"/>
        <xs:element name="location">
            <xs:complexType>
                <xs:choice>
                    <xs:group ref="locationPhysical"/>
                    <xs:group ref="locationNational"/>
                </xs:choice>
            </xs:complexType>
        </xs:element>
        <xs:element name="salary" type="salaryType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="type" type="jobTypeType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="experience" type="experienceType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="education" type="educationType" minOccurs="0" maxOccurs="1"/>
        <xs:element name="jobsource" type="xs:string" minOccurs="0" maxOccurs="1"/>
        <xs:element name="jobsourceurl" type="xs:string" minOccurs="0" maxOccurs="1"/>
    </xs:sequence>
    <xs:attribute name="id" type="xs:ID" use="required"/>
</xs:complexType>

<xs:element name="positionfeed">
    <xs:complexType>
        <xs:sequence>
            <xs:element name="source" type="xs:string"/>
            <xs:element name="sourceurl" type="xs:string"/>
            <xs:element name="feeddate" type="xs:dateTime"/>
            <xs:element name="job" minOccurs="0" maxOccurs="unbounded" type="jobType"/>
        </xs:sequence>
        <xs:attribute name="version" type="versionType" use="required"/>
    </xs:complexType>
</xs:element>

</xs:schema>
