<!-- 
"Copyright  The HR-XML Consortium. All Rights Reserved. http://www.hr-xml.org"

This HR-XML Consortium Work (including specifications, documents, 
software, and related items) is provided by the copyright holders 
under the following license. By obtaining, using and/or copying 
this work, you (the licensee) agree that you have read, understood, 
and will comply with the following terms and conditions.

Permission to use, copy, modify, or redistribute this Work and 
its documentation, with or without modification, for any purpose 
and without fee or royalty is hereby granted, provided that you 
include the following on ALL copies of the software and 
documentation or portions thereof, including modifications, 
that you make: 

1. This notice: "Copyright  The HR-XML Consortium. All Rights 
   Reserved. http://www.hr-xml.org" 
2. Notice of any changes or modifications to the The HR-XML 
   Consortium files.
   
THIS WORK, INCLUDING SPECIFICATIONS, DOCUMENTS, SOFTWARE, OR OTHER 
RELATED ITEMS, IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO 
REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT 
NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY 
PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION 
WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS 
OR OTHER RIGHTS. 

COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, 
SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE 
SOFTWARE OR DOCUMENTATION. 

TITLE TO COPYRIGHT IN THIS WORK AND ANY ASSOCIATED DOCUMENTATION 
WILL AT ALL TIMES REMAIN WITH COPYRIGHT HOLDERS. 
-->
<!--8/17/2000 Included PersonName module -->
<!--8/17/2000 Removed DT4DTD syntax per TSC decision -->
<!--8/17/2000 Changed WrkEnvironment to WorkEnvironment for
readability -->
<!--9/05/2000 

1. Made Changes With Respect to Job/Position Dependencies:

JobPosting       to    JobPositionPosting        
jobPostingId     to    jobPositionPostingId		       
JobInformation   to    JobPositionInformation    
JobDescription   to    JobPositionDescription    
JobLocation      to    JobPositionLocation                  
jobTitle         to    jobPositionTitle          
jobPurpose       to    jobPositionPurpose        
JobRequirements  to    JobPositionRequirements

2. Per decision at 8/24/2000 workgroup meetings

* Changed content model of JobPositionLocation to:

  Address | LocationSummary | summaryText 

* Create following content model for "LocationSummary":

city? , countyDistrictRegion? , stateProvince? , country?, postalCode?
        
3. Inserted PersonName Module in-place, removed parameter entity

4. Fixed typo. Changed locationDecription to locationDescription 
-->
<!--9/06/2000 
Removed tech-specific enumerations from type attribute of 
Qualification tag...

Was:
skill | experience | software | prgmLang | education | license |
certification | hardware | equipment | operatingSystem | other

Changed to:
skill | experience | education | license | certification | equipment | other
-->
<!--9/08/2000 
added status attribute to JobPositionPosting
-->
<!--9/29/2000 
added category attribute to qualification element
-->
<!--10/26/2000 
Added approved CPO PostalAddress and PersonName v01 modules 
-->
<!--11/05/2000 
Changed all elements to UpperCamelCase
-->
<!---->
<!--Contains a single "posting" or notification of a job/position to be filled. -->
<!ELEMENT JobPositionPosting  (JobPositionPostingId* , HiringOrg+ , PostDetail? , JobPositionInformation , HowToApply+ , EEOStatement? )>
<!ATTLIST JobPositionPosting  status  (active | inactive )  'active' >
<!--A descriptive field.-->
<!ELEMENT SummaryText  (#PCDATA | Link )*>

<!--A paragraph.-->
<!ELEMENT P  (#PCDATA | Link | Qualification | Img )*>

<!--An unordered list. -->
<!ELEMENT UL  (LI+ )>

<!--A list item.-->
<!ELEMENT LI  (#PCDATA | Link | Qualification )*>

<!--A hyperlink to an URL or a e-mail.-->
<!ELEMENT Link  (#PCDATA )>
<!ATTLIST Link  linkEnd CDATA  #IMPLIED
                mailTo  CDATA  #IMPLIED
                idRef   IDREF  #IMPLIED >
<!--An image, such as a .gif -->
<!ELEMENT Img EMPTY>
<!ATTLIST Img  src       CDATA  #REQUIRED
               width     CDATA  #IMPLIED
               height    CDATA  #IMPLIED
               alt       CDATA  #IMPLIED
               mediaType CDATA  #IMPLIED >
<!--Information about where a job/position is located or location-related requirements. -->
<!ELEMENT JobPositionLocation  (PostalAddress | LocationSummary | SummaryText )>

<!--Information on where an employer or job/position was located. This information typically would include a city and state name.-->
<!ELEMENT LocationSummary  (Municipality? , Region* , CountryCode? , PostalCode? )>

<!--An employment qualification.
The "type" attribute describes the qualification.
"description" is used to provide qualifying metadata when the type attribute has a value of "other."
"yearsOfExperience" can be used to specify the job/position seeker's years experience with regard to the qualification.
"level" is used to specify the job/position seeker's degree of expertise with respect to the qualification. This expertise is expressed on a scale of "1" to "5". "5" represents the highest level of expertise and "1" represents the lowest level.
"interest" is used to specify the job/position seeker's interest with respect to the qualification. The level of interest is expressed on a scale of "1" to "5". "5" represents the highest level of interest and "1" represents the lowest level.
"yearLastUsed" is used to specify the year the job/position seeker last used the qualification. -->
<!ELEMENT Qualification  (#PCDATA )>
<!ATTLIST Qualification  type               (skill | 
                                             experience | 
                                             education | 
                                             license | 
                                             certification | 
                                             equipment | 
                                             other )  #IMPLIED
                         description       CDATA  #IMPLIED
                         yearsOfExperience CDATA  #IMPLIED
                         level              (1 | 2 | 3 | 4 | 5 )  #IMPLIED
                         interest           (1 | 2 | 3 | 4 | 5 )  #IMPLIED
                         yearLastUsed      CDATA  #IMPLIED
                         source            CDATA  #IMPLIED
                         category          CDATA  #IMPLIED >
<!--A date. Dates are represented in accordance with ISO 8601. For instance: 
Date: 			YYYY-MM-DD: 	
Time: 			HH:MM:SS: 	
International Time : 	HH:MM:SSZ: 	UTC (Universal Coordinated Time): 
Time zone: 		HH:MM:SS-HHMM: 	Includes addition/subtraction to bring the time to UTC.: 
Combined date/time: 	YYYY-MM-DDTHH:MM:SS: 	
-->
<!ELEMENT Date  (#PCDATA )>

<!--A start date, such as the date an individual began employment at a particular employer. 
-->
<!ELEMENT StartDate  (Date )>

<!--An end date. For instance, the date marking the end of a period during which a job/position should be advertise or the end of a period of employment for a particular employer.-->
<!ELEMENT EndDate  ( (Date | CurrentFlag ) , SummaryText? )>

<!--An empty element within an end date that indicates "current status". For example, a job/position that is currently held.-->
<!ELEMENT CurrentFlag EMPTY>

<!--CPO PostalAddress Module. -->
<!--The extended addressType attribute describes the type of an address. For example, "home", "work" and "temporary" are possible values for addressType.-->
<!ELEMENT PostalAddress  (CountryCode , PostalCode? , Region* , Municipality? , DeliveryAddress? , Recipient* )>
<!ATTLIST PostalAddress  type         (postOfficeBoxAddress | streetAddress | undefined )  'undefined'
                         addressType CDATA  #IMPLIED >
<!ELEMENT PostalCode  (#PCDATA )>

<!ELEMENT CountryCode  (#PCDATA )>

<!ELEMENT Region  (#PCDATA )>

<!ELEMENT Municipality  (#PCDATA )>

<!ELEMENT DeliveryAddress  (AddressLine* )>

<!ELEMENT AddressLine  (#PCDATA )>

<!ELEMENT Recipient  (PersonName? , AdditionalText* , Organization? )>

<!ELEMENT AdditionalText  (#PCDATA )>

<!ELEMENT Organization  (#PCDATA )>

<!--The title of a position.-->
<!ELEMENT PositionTitle  (#PCDATA )>

<!--The title of a job/position.-->
<!ELEMENT JobPositionTitle  (#PCDATA )>

<!--A description of the compensation provided with the job/position. -->
<!ELEMENT CompensationDescription  (Pay? , BenefitsDescription? , SummaryText? )>

<!--A brief description of the salary or rate of pay provided by the job/position. -->
<!ELEMENT Pay  ( (RatePerHour | RatePerDay | SalaryAnnual | SalaryMonthly )+ | SummaryText )>

<!--A brief description of any employee benefits program offered with the job/position. -->
<!ELEMENT BenefitsDescription  (P | UL )*>

<!--The rate of pay per hour.-->
<!ELEMENT RatePerHour  (#PCDATA )>
<!ATTLIST RatePerHour  currency  (ATS | 
                                  AUD | 
                                  BEF | 
                                  BRL | 
                                  CHF | 
                                  DEM | 
                                  DKK | 
                                  ESP | 
                                  EUR | 
                                  FIM | 
                                  FRF | 
                                  GBP | 
                                  GRD | 
                                  IEP | 
                                  ILS | 
                                  ITL | 
                                  JOD | 
                                  JPY | 
                                  LUF | 
                                  MXN | 
                                  MYR | 
                                  NLG | 
                                  NOK | 
                                  NZD | 
                                  PTE | 
                                  RUR | 
                                  SAR | 
                                  SEK | 
                                  SGD | 
                                  TRL | 
                                  USD | 
                                  ZAR )  #REQUIRED >
<!--The rate of pay per day.-->
<!ELEMENT RatePerDay  (#PCDATA )>
<!ATTLIST RatePerDay  currency  (ATS | 
                                 AUD | 
                                 BEF | 
                                 BRL | 
                                 CHF | 
                                 DEM | 
                                 DKK | 
                                 ESP | 
                                 EUR | 
                                 FIM | 
                                 FRF | 
                                 GBP | 
                                 GRD | 
                                 IEP | 
                                 ILS | 
                                 ITL | 
                                 JOD | 
                                 JPY | 
                                 LUF | 
                                 MXN | 
                                 MYR | 
                                 NLG | 
                                 NOK | 
                                 NZD | 
                                 PTE | 
                                 RUR | 
                                 SAR | 
                                 SEK | 
                                 SGD | 
                                 TRL | 
                                 USD | 
                                 ZAR )  #REQUIRED >
<!--An annual salary.-->
<!ELEMENT SalaryAnnual  (#PCDATA )>
<!ATTLIST SalaryAnnual  currency  (ATS | 
                                   AUD | 
                                   BEF | 
                                   BRL | 
                                   CHF | 
                                   DEM | 
                                   DKK | 
                                   ESP | 
                                   EUR | 
                                   FIM | 
                                   FRF | 
                                   GBP | 
                                   GRD | 
                                   IEP | 
                                   ILS | 
                                   ITL | 
                                   JOD | 
                                   JPY | 
                                   LUF | 
                                   MXN | 
                                   MYR | 
                                   NLG | 
                                   NOK | 
                                   NZD | 
                                   PTE | 
                                   RUR | 
                                   SAR | 
                                   SEK | 
                                   SGD | 
                                   TRL | 
                                   USD | 
                                   ZAR )  #REQUIRED >
<!--A monthly salary.-->
<!ELEMENT SalaryMonthly  (#PCDATA )>
<!ATTLIST SalaryMonthly  currency  (ATS | 
                                    AUD | 
                                    BEF | 
                                    BRL | 
                                    CHF | 
                                    DEM | 
                                    DKK | 
                                    ESP | 
                                    EUR | 
                                    FIM | 
                                    FRF | 
                                    GBP | 
                                    GRD | 
                                    IEP | 
                                    ILS | 
                                    ITL | 
                                    JOD | 
                                    JPY | 
                                    LUF | 
                                    MXN | 
                                    MYR | 
                                    NLG | 
                                    NOK | 
                                    NZD | 
                                    PTE | 
                                    RUR | 
                                    SAR | 
                                    SEK | 
                                    SGD | 
                                    TRL | 
                                    USD | 
                                    ZAR )  #REQUIRED >
<!--Contains the contact information for the person who posted the resume or job/position posting and the effective date of the posting. -->
<!ELEMENT PostDetail  (StartDate , EndDate? , PostedBy? )>

<!--Contact information for the person who posted the resume or job/position posting. -->
<!ELEMENT PostedBy  (Contact )>

<!-- CPO PersonName Module - The name of a person. -->
<!ELEMENT PersonName  (FormattedName* , GivenName* , PreferredGivenName? , MiddleName? , FamilyName* , Affix* )>

<!ELEMENT FormattedName  (#PCDATA )>
<!ATTLIST FormattedName  type  (presentation | legal | sortOrder )  'presentation' >
<!ELEMENT GivenName  (#PCDATA )>

<!ELEMENT PreferredGivenName  (#PCDATA )>

<!ELEMENT MiddleName  (#PCDATA )>

<!ELEMENT FamilyName  (#PCDATA )>
<!ATTLIST FamilyName  primary  (true | false | undefined )  'undefined' >
<!ELEMENT Affix  (#PCDATA )>
<!ATTLIST Affix  type  (academicGrade | 
                        aristocraticPrefix | 
                        aristocraticTitle | 
                        familyNamePrefix | 
                        familyNameSuffix | 
                        formOfAddress | 
                        generation )  #REQUIRED >
<!--The name of a person and sufficient information to contact him or her. -->
<!ELEMENT Contact  (PersonName? , PositionTitle? , PostalAddress* ,  (VoiceNumber | FaxNumber | PagerNumber | TTDNumber )* , E-mail* , WebSite* )>
<!ATTLIST Contact  type CDATA  #IMPLIED >
<!--An e-mail address.-->
<!ELEMENT E-mail  (#PCDATA )>

<!--An URL for a web site.-->
<!ELEMENT WebSite  (#PCDATA )>

<!--An URL for a web site. -->
<!ELEMENT URL  (#PCDATA )>

<!--Information about the "hiring organization". 
A "type" attribute can be used to specify whether the hiring organization is a "principal" (for example, an employer advertizing a direct hire position) or an agent (for example, a recruiter working for an employer to find suitable candidates for an open position).-->
<!ELEMENT HiringOrg  (HiringOrgName , HiringOrgId* , WebSite? , Industry? , Contact* )>
<!ATTLIST HiringOrg  type  (agent | principal | unspecified )  'unspecified' >
<!--The name of organization staffing the open position-->
<!ELEMENT HiringOrgName  (#PCDATA )>

<!--A code identifying the hiring organization. 
An "idOwner" attribute can be used to identify the "owner" of the id. For instance idOwner="DUNS" might be used to indicate that the id code is a Dun & Bradstreet "DUNS number".-->
<!ELEMENT HiringOrgId  (#PCDATA )>
<!ATTLIST HiringOrgId  idOwner CDATA  #IMPLIED >
<!--North American Industry Classification System code.-->
<!ELEMENT NAICS  (#PCDATA )>
<!ATTLIST NAICS  primaryIndicator  (primary | secondary | unknown )  'primary' >
<!--Identifies an industry by Standard Industrial Classification (sic) Code or in summary text. -->
<!ELEMENT Industry  (NAICS | SummaryText )*>

<!--Contains a title, requirements, and optionally a description of the job/position.-->
<!ELEMENT JobPositionInformation  (JobPositionTitle , JobPositionDescription? , JobPositionRequirements )>

<!--Contains information about the job/position being advertised other than specific job/position requirements. For instance, the description may contain information such as the location, purpose and essential functions. -->
<!ELEMENT JobPositionDescription  (JobPositionPurpose? , JobPositionLocation* , Classification? , EssentialFunctions? , WorkEnvironment? , CompensationDescription? , SummaryText? )>

<!--Contains information about the qualifications and other requirements for the advertised job/position. -->
<!ELEMENT JobPositionRequirements  (QualificationsRequired? , QualificationsPreferred? , TravelRequired? , WorkEligibilityStatus? , SummaryText? )>

<!--Describes whether travel is required for the job/position and the extent of any travel requirements. -->
<!ELEMENT TravelRequired  (PercentageOfTime? , SummaryText? )>

<!--A brief discription of the primary purpose or objective.-->
<!ELEMENT JobPositionPurpose  (#PCDATA )>

<!--Information about the job/position's "work environment". For example, a job/position may require a person to work outside in potentially harsh weather conditions. -->
<!ELEMENT WorkEnvironment  (P | UL | Qualification )+>

<!--Skills or qualifications that are "preferred," but which may not be an absolute requirement for a job/position. -->
<!ELEMENT QualificationsPreferred  (P | UL | Qualification )+>

<!--The essential (non-marginal) functions associated with a job/position. -->
<!ELEMENT EssentialFunctions  (P | UL | Qualification )+>

<!--Qualifications required for a job/position. -->
<!ELEMENT QualificationsRequired  (P | UL | Qualification )+>

<!--Provides details on visa, citizenship, or other requirements related to legal eligibility to hold the job/position. -->
<!ELEMENT WorkEligibilityStatus  (#PCDATA )>

<!--The percentage of total working time. For instance, the percentage of working time spent traveling.-->
<!ELEMENT PercentageOfTime  (#PCDATA )>

<!--Contains information about how the job/position is classified.-->
<!ELEMENT Classification  (DirectHireOrContract? , Schedule? , Duration? , OTStatus? )>
<!ATTLIST Classification  distribute  (external | internal )  'external' >
<!--Indicates whether the position is a direct hire or a contract position. -->
<!ELEMENT DirectHireOrContract  ( (DirectHire | Contract )? , SummaryText? )>

<!--Contains information on whether the job/position is eligible for overtime compensation. -->
<!ELEMENT OTStatus  ( (Exempt | NonExempt )? , SummaryText? )>

<!--Information about whether the position is part-time or full-time and possibly the number of scheduled hours each week. -->
<!ELEMENT Schedule  ( (FullTime | PartTime )? , SummaryText? )>

<!--Contains information on whether the job/position is "temporary" or "regular". -->
<!ELEMENT Duration  ( (Temporary | Regular )? , SummaryText? )>

<!--Indicates that the position is exempt from overtime requirements under applicable wage-hour law.-->
<!ELEMENT Exempt EMPTY>

<!--Indicates that the job/position is not exempt from overtime requirements under applicable wage-hour law.-->
<!ELEMENT NonExempt EMPTY>

<!--Indicates that the job/position is a "direct hire", rather than a contract position.-->
<!ELEMENT DirectHire EMPTY>

<!--Indicates that the position is a direct hire, rather than a contract position.-->
<!ELEMENT Contract EMPTY>

<!--Indicates that the job/position is "full-time". Can contain information on the job/position's scheduled hours per week. -->
<!ELEMENT FullTime  (HoursPerWeek? , SummaryText? )>

<!--Contains information regarding the job/position's "part-time" status, such as the number of hours per week required by the job/position. -->
<!ELEMENT PartTime  (HoursPerWeek? , SummaryText? )>

<!--The number of scheduled or regular hours per week required by the job/position.-->
<!ELEMENT HoursPerWeek  (#PCDATA )>

<!--Indicates that the job/position is temporary. Possibly contains the duration of the job/position. -->
<!ELEMENT Temporary  (TermLength? , SummaryText? )>

<!--The length of a temporary assignment or job/position.-->
<!ELEMENT TermLength  (#PCDATA )>

<!--Indicates that the job/position is a "regular" versus "temporary" status. -->
<!ELEMENT Regular EMPTY>

<!--A telephone number for voice communications (versus fax, pager, etc). -->
<!ELEMENT VoiceNumber  (IntlCode? , AreaCode? , TelNumber , Extension? )>
<!ATTLIST VoiceNumber  type   (primary | secondary )  #IMPLIED
                       label CDATA  #IMPLIED >
<!--A telephone number for facsimile or "fax" transmissions. -->
<!ELEMENT FaxNumber  (IntlCode? , AreaCode? , TelNumber , Extension? )>
<!ATTLIST FaxNumber  type   (primary | secondary )  #IMPLIED
                     label CDATA  #IMPLIED >
<!--A telephone number for pager. -->
<!ELEMENT PagerNumber  (IntlCode? , AreaCode? , TelNumber , Extension? )>
<!ATTLIST PagerNumber  type   (primary | secondary )  #IMPLIED
                       label CDATA  #IMPLIED >
<!--A telephone number for teletype devices, which may be used by the hearing impaired. -->
<!ELEMENT TTDNumber  (IntlCode? , AreaCode? , TelNumber , Extension? )>
<!ATTLIST TTDNumber  type   (primary | secondary )  #IMPLIED
                     label CDATA  #IMPLIED >
<!--The "country code" that must be dialed to place an international call.-->
<!ELEMENT IntlCode  (#PCDATA )>

<!--A location prefix for a telephone number.-->
<!ELEMENT AreaCode  (#PCDATA )>

<!--A telephone number, not including a country code or area code.-->
<!ELEMENT TelNumber  (#PCDATA )>

<!--A telephone extension.-->
<!ELEMENT Extension  (#PCDATA )>

<!--Information about how to apply for an open job/position. -->
<!ELEMENT HowToApply  (ApplicationMethods? , SummaryText? )>
<!ATTLIST HowToApply  distribute  (external | internal )  'external' >
<!--Contains information on the prescribed ways to apply for the job/position. -->
<!ELEMENT ApplicationMethods  (ByPhone | ByFax | ByEmail | ByWeb | InPerson )*>

<!--Information necessary to apply for the job/position via voice telephone. -->
<!ELEMENT ByPhone  (PersonName? ,  (VoiceNumber , TTDNumber? ) , SummaryText? )>

<!--Information necessary to apply for the job/position via fax. -->
<!ELEMENT ByFax  (PersonName? ,  (FaxNumber? ) , SummaryText? )>

<!--Information necessary to apply for the job/position via e-mail. -->
<!ELEMENT ByEmail  (PersonName? ,  (E-mail? ) , SummaryText? )>

<!--Information necessary to apply for the job/position over the web. -->
<!ELEMENT ByWeb  (PersonName? ,  (URL? ) , SummaryText? )>

<!--Information necessary to apply for the job/position in person. -->
<!ELEMENT InPerson  (PersonName? , PostalAddress? , VoiceNumber? , TTDNumber? , SummaryText? )>

<!--A code to identify the job/position posting. An "idOwner" attribute can be used to identify the owner of the id.-->
<!ELEMENT JobPositionPostingId  (#PCDATA )>
<!ATTLIST JobPositionPostingId  idOwner CDATA  #IMPLIED >
<!--An equal employment opportunity statement.-->
<!ELEMENT EEOStatement  (#PCDATA )>

