<?xml version="1.0" encoding="UTF-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="jobs">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="job" maxOccurs="unbounded" minOccurs="1">
          <xs:complexType>
            <xs:all>
              <xs:element type="xs:string" name="id" minOccurs="1" maxOccurs="1"/>
              <xs:element type="xs:anyURI" name="url" minOccurs="1" maxOccurs="1"/>

              <xs:element name="title" minOccurs="1" maxOccurs="1">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="255"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>

              <xs:element name="function_title" minOccurs="0" maxOccurs="1">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="40"/>
                    <xs:pattern value="^[\p{L}0-9 .&quot;-:\/]+$"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>

              <xs:element name="responsibilities" minOccurs="0" maxOccurs="1">
                <xs:simpleType>
                  <xs:restriction base="xs:string">
                    <xs:maxLength value="255"/>
                  </xs:restriction>
                </xs:simpleType>
              </xs:element>

              <xs:element name="location" minOccurs="1" maxOccurs="1">
                <xs:complexType>
                  <xs:all>
                    <xs:element type="xs:boolean" name="nationwide" minOccurs="1"/>
                    <xs:element type="xs:string" name="city" minOccurs="1"/>
                    <xs:element type="xs:string" name="postalcode" minOccurs="1"/>
                  </xs:all>
                </xs:complexType>
              </xs:element>

              <xs:element name="description" minOccurs="1" maxOccurs="1">
                <xs:complexType>
                  <xs:all>
                    <xs:element type="xs:string" name="summary" minOccurs="1"/>
                    <xs:element type="xs:string" name="long_description" minOccurs="1"/>
                  </xs:all>
                </xs:complexType>
              </xs:element>

              <xs:element name="hours_per_week" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                  <xs:all>
                    <xs:element type="xs:positiveInteger" name="working_hours_min"/>
                    <xs:element type="xs:positiveInteger" name="working_hours_max"/>
                  </xs:all>
                </xs:complexType>
              </xs:element>

              <xs:element name="job_types" maxOccurs="1">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="job_type" minOccurs="1" maxOccurs="unbounded">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="fulltime"/>
                            <xs:enumeration value="parttime"/>
                            <xs:enumeration value="evening"/>
                            <xs:enumeration value="weekend"/>
                            <xs:enumeration value="holiday"/>
                            <xs:enumeration value="internship"/>
                            <xs:enumeration value="fulltime_experience"/>
                            <xs:enumeration value="fulltime_temporary"/>
                            <xs:enumeration value="graduation_internship"/>
                            <xs:enumeration value="voluntary"/>
                            <xs:enumeration value="traineeship"/>
                            <xs:enumeration value="work_from_home"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>

              <xs:element name="functions" minOccurs="1" maxOccurs="1">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="function" minOccurs="1" maxOccurs="2">
                      <xs:complexType>
                        <xs:sequence>
                          <xs:element name="reference" minOccurs="1" maxOccurs="1">
                            <xs:simpleType>
                              <xs:restriction base="xs:string">
                                  <xs:enumeration value="administratieve-vacatures"/>
                                  <xs:enumeration value="agrarische-vacatures"/>
                                  <xs:enumeration value="beveiliging-vacatures"/>
                                  <xs:enumeration value="bouw-vacatures"/>
                                  <xs:enumeration value="callcenter-vacatures"/>
                                  <xs:enumeration value="chemische-vacatures"/>
                                  <xs:enumeration value="consultancy-vacatures"/>
                                  <xs:enumeration value="creatieve-vacatures"/>
                                  <xs:enumeration value="electra-vacatures"/>
                                  <xs:enumeration value="financiele-vacatures"/>
                                  <xs:enumeration value="horeca-vacatures"/>
                                  <xs:enumeration value="hr-vacatures"/>
                                  <xs:enumeration value="ict-vacatures"/>
                                  <xs:enumeration value="juridische-vacatures"/>
                                  <xs:enumeration value="klusser-vacatures"/>
                                  <xs:enumeration value="logistieke-vacatures"/>
                                  <xs:enumeration value="management-vacatures"/>
                                  <xs:enumeration value="marketing-vacatures"/>
                                  <xs:enumeration value="medische-vacatures"/>
                                  <xs:enumeration value="onderwijs-vacatures"/>
                                  <xs:enumeration value="online-marketing-vacatures"/>
                                  <xs:enumeration value="productie-vacatures"/>
                                  <xs:enumeration value="projectmanagement-vacatures"/>
                                  <xs:enumeration value="promotiewerk-vacatures"/>
                                  <xs:enumeration value="receptioniste-vacatures"/>
                                  <xs:enumeration value="sales-vacatures"/>
                                  <xs:enumeration value="schoonmaak-vacatures"/>
                                  <xs:enumeration value="secretariele-vacatures"/>
                                  <xs:enumeration value="technische-vacatures"/>
                                  <xs:enumeration value="toerisme-vacatures"/>
                                  <xs:enumeration value="trainer-vacatures"/>
                                  <xs:enumeration value="uiterlijke-verzorging-vacatures"/>
                                  <xs:enumeration value="winkel-vacatures"/>
                                  <xs:enumeration value="zorg-vacatures"/>
                              </xs:restriction>
                            </xs:simpleType>
                          </xs:element>

                          <xs:element name="professions" minOccurs="1" maxOccurs="1">
                            <xs:complexType>
                              <xs:sequence>
                                <xs:element name="profession" maxOccurs="2" minOccurs="1">
                                  <xs:simpleType>
                                    <xs:restriction base="xs:string">
                                        <xs:enumeration value="administratieve-vacatures-catchall"/>
                                        <xs:enumeration value="agrarische-vacatures-catchall"/>
                                        <xs:enumeration value="au_pair-catchall"/>
                                        <xs:enumeration value="beveiliging-vacatures-catchall"/>
                                        <xs:enumeration value="bouw-vacatures-catchall"/>
                                        <xs:enumeration value="callcenter-vacatures-catchall"/>
                                        <xs:enumeration value="chemische-vacatures-catchall"/>
                                        <xs:enumeration value="consultancy-vacatures-catchall"/>
                                        <xs:enumeration value="consultant-vacatures-catchall"/>
                                        <xs:enumeration value="creatieve-vacatures-catchall"/>
                                        <xs:enumeration value="electra-vacatures-catchall"/>
                                        <xs:enumeration value="financieel-vacatures-catchall"/>
                                        <xs:enumeration value="financiele-vacatures-catchall"/>
                                        <xs:enumeration value="horeca-vacatures-catchall"/>
                                        <xs:enumeration value="host-catchall"/>
                                        <xs:enumeration value="hr-vacatures-catchall"/>
                                        <xs:enumeration value="ict-vacatures-catchall"/>
                                        <xs:enumeration value="insurance-catchall"/>
                                        <xs:enumeration value="juridische-vacatures-catchall"/>
                                        <xs:enumeration value="klusser-vacatures-catchall"/>
                                        <xs:enumeration value="leidinggevende-vacatures-catchall"/>
                                        <xs:enumeration value="logistiek-vacatures-catchall"/>
                                        <xs:enumeration value="logistieke-vacatures-catchall"/>
                                        <xs:enumeration value="management-vacatures-catchall"/>
                                        <xs:enumeration value="marketing-vacatures-catchall"/>
                                        <xs:enumeration value="medische-vacatures-catchall"/>
                                        <xs:enumeration value="onderwijs-vacatures-catchall"/>
                                        <xs:enumeration value="online-marketing-vacatures-catchall"/>
                                        <xs:enumeration value="productie-vacatures-catchall"/>
                                        <xs:enumeration value="projectmanagement-vacatures-catchall"/>
                                        <xs:enumeration value="promotiewerk-vacatures-catchall"/>
                                        <xs:enumeration value="receptioniste-vacatures-catchall"/>
                                        <xs:enumeration value="sales-vacatures-catchall"/>
                                        <xs:enumeration value="schoonmaak-vacatures-catchall"/>
                                        <xs:enumeration value="secretariele-vacatures-catchall"/>
                                        <xs:enumeration value="technische-vacatures-catchall"/>
                                        <xs:enumeration value="toerisme-vacatures-catchall"/>
                                        <xs:enumeration value="tourism-catchall"/>
                                        <xs:enumeration value="trainer-vacatures-catchall"/>
                                        <xs:enumeration value="translator-catchall"/>
                                        <xs:enumeration value="uiterlijke-verzorging-vacatures-catchall"/>
                                        <xs:enumeration value="vacatures-accountmanager"/>
                                        <xs:enumeration value="vacatures-administratief-medewerker"/>
                                        <xs:enumeration value="vacatures-app-developer"/>
                                        <xs:enumeration value="vacatures-automonteur"/>
                                        <xs:enumeration value="vacatures-backoffice-medewerker"/>
                                        <xs:enumeration value="vacatures-bedrijfsleider"/>
                                        <xs:enumeration value="vacatures-bijrijder"/>
                                        <xs:enumeration value="vacatures-c-net-developer"/>
                                        <xs:enumeration value="vacatures-callcenter-medewerker"/>
                                        <xs:enumeration value="vacatures-cateringmedewerker"/>
                                        <xs:enumeration value="vacatures-chauffeur"/>
                                        <xs:enumeration value="vacatures-commercieel-medewerker"/>
                                        <xs:enumeration value="vacatures-consultant"/>
                                        <xs:enumeration value="vacatures-docent"/>
                                        <xs:enumeration value="vacatures-eindcontroleur"/>
                                        <xs:enumeration value="vacatures-expeditiemedewerker"/>
                                        <xs:enumeration value="vacatures-facilitair-medewerker"/>
                                        <xs:enumeration value="vacatures-finance-trainee"/>
                                        <xs:enumeration value="vacatures-financieel-adviseur"/>
                                        <xs:enumeration value="vacatures-financieel-medewerker"/>
                                        <xs:enumeration value="vacatures-front-end-developer"/>
                                        <xs:enumeration value="vacatures-heftruckchauffeur"/>
                                        <xs:enumeration value="vacatures-helpdesk-medewerker"/>
                                        <xs:enumeration value="vacatures-horeca-medewerker"/>
                                        <xs:enumeration value="vacatures-hostess"/>
                                        <xs:enumeration value="vacatures-hr-manager"/>
                                        <xs:enumeration value="vacatures-hr-medewerker"/>
                                        <xs:enumeration value="vacatures-huishoudelijke-hulp"/>
                                        <xs:enumeration value="vacatures-it-trainee"/>
                                        <xs:enumeration value="vacatures-java-developer"/>
                                        <xs:enumeration value="vacatures-juridisch-medewerker"/>
                                        <xs:enumeration value="vacatures-kassamedewerker"/>
                                        <xs:enumeration value="vacatures-klantenservice-medewerker"/>
                                        <xs:enumeration value="vacatures-koerier"/>
                                        <xs:enumeration value="vacatures-logistiek-medewerker"/>
                                        <xs:enumeration value="vacatures-magazijnmedewerker"/>
                                        <xs:enumeration value="vacatures-marketing-medewerker"/>
                                        <xs:enumeration value="vacatures-monteur"/>
                                        <xs:enumeration value="vacatures-online-marketeer"/>
                                        <xs:enumeration value="vacatures-operationeel-manager"/>
                                        <xs:enumeration value="vacatures-operator"/>
                                        <xs:enumeration value="vacatures-orderpicker"/>
                                        <xs:enumeration value="vacatures-pakketbezorger"/>
                                        <xs:enumeration value="vacatures-php-developer"/>
                                        <xs:enumeration value="vacatures-postbezorger"/>
                                        <xs:enumeration value="vacatures-productiemedewerker"/>
                                        <xs:enumeration value="vacatures-projectmanager"/>
                                        <xs:enumeration value="vacatures-promotiemedewerker"/>
                                        <xs:enumeration value="vacatures-reachtruckchauffeur"/>
                                        <xs:enumeration value="vacatures-receptioniste"/>
                                        <xs:enumeration value="vacatures-recruiter"/>
                                        <xs:enumeration value="vacatures-ruby-developer"/>
                                        <xs:enumeration value="vacatures-salarisadministrateur"/>
                                        <xs:enumeration value="vacatures-salesmanager"/>
                                        <xs:enumeration value="vacatures-schoonmaker"/>
                                        <xs:enumeration value="vacatures-secretaresse"/>
                                        <xs:enumeration value="vacatures-seo-specialist"/>
                                        <xs:enumeration value="vacatures-software-developer"/>
                                        <xs:enumeration value="vacatures-supervisor"/>
                                        <xs:enumeration value="vacatures-systeembeheerder"/>
                                        <xs:enumeration value="vacatures-teamleider"/>
                                        <xs:enumeration value="vacatures-technische-dienst"/>
                                        <xs:enumeration value="vacatures-telefoniste"/>
                                        <xs:enumeration value="vacatures-thuiszorg"/>
                                        <xs:enumeration value="vacatures-transportplanner"/>
                                        <xs:enumeration value="vacatures-vakkenvuller"/>
                                        <xs:enumeration value="vacatures-verkoopmedewerker"/>
                                        <xs:enumeration value="vacatures-verpleegkundige"/>
                                        <xs:enumeration value="vacatures-vestigingsmanager"/>
                                        <xs:enumeration value="vacatures-webcare-medewerker"/>
                                        <xs:enumeration value="vacatures-webredacteur"/>
                                        <xs:enumeration value="vacatures-winkelmedewerker"/>
                                        <xs:enumeration value="verkoop-vacatures-catchall"/>
                                        <xs:enumeration value="winkel-vacatures-catchall"/>
                                        <xs:enumeration value="zorg-vacatures-catchall"/>
                                    </xs:restriction>
                                  </xs:simpleType>
                                </xs:element>
                              </xs:sequence>
                            </xs:complexType>
                          </xs:element>
                        </xs:sequence>
                      </xs:complexType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>

              <xs:element name="education_types" minOccurs="1" maxOccurs="1">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="education_type" maxOccurs="unbounded" minOccurs="1">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="enseignement secondaire"/>
                            <xs:enumeration value="bachelier de spécialisation"/>
                            <xs:enumeration value="master de spécialisation"/>
                            <xs:enumeration value="grade de master"/>
                            <xs:enumeration value="grade de docteur"/>
                            <xs:enumeration value="autres"/>
                            <xs:enumeration value="grade de bachelier"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>

              <xs:element name="languages" maxOccurs="1">
                <xs:complexType>
                  <xs:sequence>
                    <xs:element name="language" minOccurs="0" maxOccurs="3">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                            <xs:enumeration value="english"/>
                            <xs:enumeration value="german"/>
                            <xs:enumeration value="french"/>
                            <xs:enumeration value="spanish"/>
                            <xs:enumeration value="other"/>
                            <xs:enumeration value="arabic"/>
                            <xs:enumeration value="chinese"/>
                            <xs:enumeration value="danish"/>
                            <xs:enumeration value="finnish"/>
                            <xs:enumeration value="greek"/>
                            <xs:enumeration value="hebrew"/>
                            <xs:enumeration value="italian"/>
                            <xs:enumeration value="japanese"/>
                            <xs:enumeration value="korean"/>
                            <xs:enumeration value="latin"/>
                            <xs:enumeration value="norwegian"/>
                            <xs:enumeration value="polish"/>
                            <xs:enumeration value="portuguese"/>
                            <xs:enumeration value="russian"/>
                            <xs:enumeration value="taiwanese"/>
                            <xs:enumeration value="czech"/>
                            <xs:enumeration value="turkish"/>
                            <xs:enumeration value="flemish"/>
                            <xs:enumeration value="swedish"/>
                            <xs:enumeration value="dutch"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:sequence>
                </xs:complexType>
              </xs:element>

              <xs:element name="salary" minOccurs="0" maxOccurs="1">
                <xs:complexType>
                  <xs:all>
                    <xs:element name="currency" maxOccurs="1">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="€"/>
                          <xs:enumeration value="£"/>
                          <xs:enumeration value="SEK"/>
                          <xs:enumeration value="CHF"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>

                    <xs:element type="xs:decimal" name="min" minOccurs="1" maxOccurs="1"/>
                    <xs:element type="xs:decimal" name="max" maxOccurs="1"/>

                    <xs:element name="salary_rate" maxOccurs="1">
                      <xs:simpleType>
                        <xs:restriction base="xs:string">
                          <xs:enumeration value="hour"/>
                          <xs:enumeration value="week"/>
                          <xs:enumeration value="month"/>
                          <xs:enumeration value="year"/>
                        </xs:restriction>
                      </xs:simpleType>
                    </xs:element>
                  </xs:all>
                </xs:complexType>
              </xs:element>

              <xs:element type="xs:boolean" name="drivers_license" maxOccurs="1"/>
            </xs:all>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
