<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema id="SISWebFileUploadTypes" xmlns="SISWebFileUpload"
			attributeFormDefault="qualified" elementFormDefault="qualified"
			xmlns:jaxb="http://java.sun.com/xml/ns/jaxb"
			xmlns:xsd="http://www.w3.org/2001/XMLSchema"
			jaxb:version="2.1"
			targetNamespace="SISWebFileUpload">
	
 
	<xsd:element name="UploadedBy">
		<xsd:simpleType>
			<xsd:restriction base="xsd:string">
				<xsd:maxLength value="30"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>
 
	<xsd:element name="TotalInsurableEarnings" type="xsd:integer"/>
	<xsd:element name="TotalHolidayFundContribution" type="xsd:decimal"/>
	<xsd:element name="TotalActualEarnings" type="xsd:integer"/>
	<xsd:element name="TotalGesyEarnings" type="xsd:integer"/>
 
	<xsd:simpleType name="NumericStringType10">
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="10"/>
			<xsd:pattern value="[0-9]*"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="AlphaNumericStringType15">
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="15"/>
			<xsd:pattern value="[0-9a-zA-Z]*"/>
		</xsd:restriction>
	</xsd:simpleType>
 
	<xsd:simpleType name="AlphaNumericStringType30">
		<xsd:restriction base="xsd:string">
			<xsd:maxLength value="30"/>
			<xsd:pattern value="[0-9a-zA-Z]*"/>
		</xsd:restriction>
	</xsd:simpleType>
 
 
	<xsd:simpleType name="PaymentFrequencyCode">
		<xsd:annotation><xsd:appinfo><jaxb:typesafeEnumClass /></xsd:appinfo></xsd:annotation>
		
			<xsd:restriction base="xsd:string">
				<xsd:enumeration value="Weekly"/>
				<xsd:enumeration value="Monthly"/>
			</xsd:restriction>
		
	</xsd:simpleType>
	<xsd:element name="OtherInformation">
		<xsd:simpleType>
			<xsd:restriction base="xsd:string">
				<xsd:maxLength value="20"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>
 
	<xsd:element name="NumberOfTerminatedEmployees" type="xsd:integer"/>
	<xsd:element name="NumberOfSchedules" type="xsd:integer"/>
	<xsd:element name="NumberOfNewEmployees" type="xsd:integer"/>
	<xsd:element name="NumberOfEarningsDetails" type="xsd:integer"/>
	<xsd:element name="SocialInsuranceNo" type="NumericStringType10"/>
 
	<xsd:element name="ScheduleList">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Schedule" minOccurs="1" maxOccurs="unbounded">
					
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="Schedule">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="ScheduleInformation" minOccurs="1" maxOccurs="1">
					<xsd:annotation>
						<xsd:documentation>
							Information about the schedule
						</xsd:documentation>		
					</xsd:annotation>
				</xsd:element>
				<xsd:element ref="EarningsDetailsList">
					<xsd:annotation>
						<xsd:documentation>
							A list of the earnings for each employee of the company
						</xsd:documentation>
					</xsd:annotation>						
				</xsd:element>
				<xsd:element ref="EarningsTotals" minOccurs="1" maxOccurs="1">
					<xsd:annotation>
						<xsd:documentation>
							The totals of the earnings reported in the schedule
						</xsd:documentation>
					</xsd:annotation>				
				</xsd:element>
			</xsd:sequence>
                  
			<xsd:attribute name="SequenceNumber" type="xsd:integer" use="required" form="unqualified"/>
		
		</xsd:complexType>
	</xsd:element>
				
	<xsd:element name="EarningsDetails" >
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="SocialInsuranceNo" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="IdentityCardNo" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="AliensRegistrationNo" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="ActualEarnings" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="GesyEarnings" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="InsurableEarnings" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="HolidayFundContribution" minOccurs="1" maxOccurs="1"/>
				<xsd:element name="Week1" type="WeeklyAbsenceType" minOccurs="1" maxOccurs="1" default="1" />
				<xsd:element name="Week2" type="WeeklyAbsenceType" minOccurs="1" maxOccurs="1" default="1"/>
				<xsd:element name="Week3" type="WeeklyAbsenceType" minOccurs="1" maxOccurs="1" default="1"/>
				<xsd:element name="Week4" type="WeeklyAbsenceType" minOccurs="1" maxOccurs="1" default="1"/>
				<xsd:element name="Week5" type="WeeklyAbsenceType" minOccurs="1" maxOccurs="1" default="1"/>
				<xsd:element name="TerminationDate" type="nillableDate" nillable="true" minOccurs="0" maxOccurs="1"/>
				
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="EarningsTotals">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="TotalActualEarnings" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="TotalGesyEarnings" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="TotalInsurableEarnings" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="TotalHolidayFundContribution" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="NumberOfNewEmployees" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="NumberOfTerminatedEmployees" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="NumberOfEarningsDetails" minOccurs="1" maxOccurs="1"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	
	<xsd:element name="EarningsDetailsList" >
		
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="EarningsDetails" minOccurs="1" maxOccurs="unbounded">
														
				</xsd:element>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
										
	<xsd:element name="ScheduleInformation">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="EmployerRegistrationNo" minOccurs="1" maxOccurs="1"/>
				<xsd:element name="RegistrationType" type="RegistrationType" minOccurs="1" maxOccurs="1"/>
				<xsd:element name="EarningsType" type="EarningsType" minOccurs="1" maxOccurs="1"/>
				<xsd:element name="ContributionPeriod" type="ContributionPeriod" minOccurs="1" maxOccurs="1">
					
				</xsd:element>
				<xsd:element name="ArrearsContributionPeriods" type="ArrearsContributionPeriods" minOccurs="0" maxOccurs="1"/>
								
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="HeaderRecord">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="FileType" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="CurrentVersion" minOccurs="1" maxOccurs="1"/>
				<xsd:element name="DateCreated" type="xsd:date" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="UploadedBy" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="OtherInformation" minOccurs="1" maxOccurs="1"/>
				
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
				
	<xsd:element name="GrandTotals">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="TotalActualEarnings" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="TotalGesyEarnings" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="TotalInsurableEarnings" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="TotalHolidayFundContribution" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="NumberOfNewEmployees" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="NumberOfTerminatedEmployees" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="NumberOfEarningsDetails" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="NumberOfSchedules" minOccurs="1" maxOccurs="1"/>
				
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>						
	<xsd:element name="NewEmployment" >
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="Forename" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="Surname" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="Gender" minOccurs="1" maxOccurs="1"/>
				<xsd:element name="Community" type="CommunityCode" minOccurs="0" maxOccurs="1"/>
				<xsd:element ref="SocialInsuranceNo" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="AdditionalIdentityData" minOccurs="1" maxOccurs="1"/>
				<xsd:element name="DateOfBirth" type="xsd:date" minOccurs="1" maxOccurs="1"/>
				<xsd:element name="EmploymentStartDate" type="xsd:date" minOccurs="1" maxOccurs="1"/>
				<xsd:element name="PaymentFrequencyCode" type="PaymentFrequencyCode" minOccurs="1" maxOccurs="1"/>
				<xsd:element name="HolidayFundRate" type="HolidayFundRateType" minOccurs="1" maxOccurs="1"/>
				<xsd:element name="OccupationCode" type="OccupationCode" minOccurs="1" maxOccurs="1"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
													
	<xsd:element name="AdditionalIdentityData">
		<xsd:complexType>
			<xsd:choice>
				<xsd:element ref="IdentityCardNo"/>
				<xsd:element ref="AliensRegistrationNo"/>
				<xsd:element ref="PassportNo"/>
				<xsd:element ref="EUIdentityData"/>
			</xsd:choice>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="IdentityCardNo" type="NumericStringType10"/>
	<xsd:element name="AliensRegistrationNo" type="NumericStringType10"/>
	<xsd:element name="PassportNo" type="AlphaNumericStringType15"/>
	<xsd:element name="EUIdentityData">
		<xsd:complexType>
			<xsd:sequence>
				<xsd:element ref="EUSocialInsuranceNo" minOccurs="1" maxOccurs="1"/>
				<xsd:element ref="EUMemberStateCode" minOccurs="1" maxOccurs="1"/>
			</xsd:sequence>
		</xsd:complexType>
	</xsd:element>
	<xsd:element name="EUSocialInsuranceNo" type="AlphaNumericStringType30"/>
	<xsd:element name="EUMemberStateCode" type="EUMemberStateType"/>
 
	<xsd:simpleType name="HolidayFundRateType">
		<xsd:annotation>
			<xsd:appinfo>
				<jaxb:typesafeEnumClass />
			</xsd:appinfo>
		</xsd:annotation>
		<xsd:restriction base="xsd:decimal">
			<xsd:enumeration value="0" />
			<xsd:enumeration value="8"/>
			<xsd:enumeration value="8.5"/>
			<xsd:enumeration value="9"/>
			<xsd:enumeration value="9.5"/>
			<xsd:enumeration value="10"/>
			<xsd:enumeration value="10.5"/>
			<xsd:enumeration value="11"/>
			<xsd:enumeration value="11.5"/>
			<xsd:enumeration value="12"/>
			<xsd:enumeration value="12.5"/>
			<xsd:enumeration value="13"/>
			<xsd:enumeration value="13.5"/>
			<xsd:enumeration value="14"/>
			<xsd:enumeration value="14.5"/>
			<xsd:enumeration value="15"/>
			<xsd:enumeration value="15.5"/>
			<xsd:enumeration value="16"/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:element name="HolidayFundExemption" type="xsd:integer"/>
	<xsd:element name="InsurableEarnings" type="xsd:integer"/>
	<xsd:element name="HolidayFundContribution" type="xsd:decimal"/>
	<xsd:element name="Gender">
		<xsd:annotation>
			<xsd:documentation>Gender of person, M=Male, F=Female</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleType>
			<xsd:annotation>
				<xsd:appinfo>
					<jaxb:typesafeEnumClass name="GenderEnum" />
				</xsd:appinfo>
			</xsd:annotation>
			<xsd:restriction base="xsd:string">
				<xsd:enumeration value="M"/>
				<xsd:enumeration value="F"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>
	<xsd:element name="Forename">
		<xsd:annotation>
			<xsd:documentation>Person's forename (first name)</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleType>
			<xsd:restriction base="xsd:string">
				<xsd:maxLength value="30"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>
	<xsd:element name="Surname">
		<xsd:annotation>
			<xsd:documentation>Person's Surname (last name)</xsd:documentation>
		</xsd:annotation>
		<xsd:simpleType>
			<xsd:restriction base="xsd:string">
				<xsd:maxLength value="20"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>
	<xsd:element name="FileType">
		<xsd:simpleType>
			<xsd:restriction base="xsd:string">
				<xsd:maxLength value="25"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>
	<xsd:element name="EmployerRegistrationNo">
		<xsd:simpleType>
			<xsd:restriction base="xsd:string">
				<xsd:pattern value="[0-9]{1,8}/\d/[0-9]{4}"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>
 
	<xsd:element name="CurrentVersion">
		<xsd:simpleType>
			<xsd:restriction base="xsd:string">
				<xsd:pattern value="(0[1-9]|\d\d)"/>
			</xsd:restriction>
		</xsd:simpleType>
	</xsd:element>
	
 
	<xsd:element name="ActualEarnings" type="xsd:integer"/>

	<xsd:element name="GesyEarnings" type="xsd:integer"/>

	 
	<xsd:simpleType name="nillableDate">
		<xsd:union memberTypes="xsd:date empty-string"/>
	</xsd:simpleType>
	<xsd:simpleType name="empty-string">
		<xsd:restriction base="xsd:string">
			<xsd:enumeration value=""/>
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="ArreasMonth">
		<xsd:restriction base="xsd:unsignedByte">
			<xsd:minInclusive value="1" />
			<xsd:maxInclusive value="12" />
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="PeriodMonth">
		<xsd:restriction base="xsd:unsignedByte">
			<xsd:minInclusive value="1" />
			<xsd:maxInclusive value="24" />
		</xsd:restriction>
	</xsd:simpleType>
	
	<xsd:simpleType name="PeriodYear">
		
		<xsd:restriction base="xsd:integer">
			<xsd:minInclusive value="2008" />
			<xsd:maxInclusive value="2090" />
		</xsd:restriction>
		
	</xsd:simpleType>

	<xsd:complexType name="ContributionPeriod">
		<xsd:attribute name="Month" type="PeriodMonth" use="required" form="unqualified">
			<xsd:annotation>
				<xsd:documentation>
					The Month of the contribution period. Valid values are from 1-24.
							
					If value is from 1 to 12, then no information is allowed in ArrearsContributionPeriods element
							
					If value is from 13 to 24, then ArrearsContributionPeriods MUST have valid values.
				</xsd:documentation>
			</xsd:annotation>
		</xsd:attribute>
		<xsd:attribute name="Year" type="PeriodYear" use="required" form="unqualified">
		<xsd:annotation>
			<xsd:documentation>
				The Year of the contribution period. Valid values are from 2008-2020
			</xsd:documentation>
		</xsd:annotation>
		</xsd:attribute>
	</xsd:complexType>

	<xsd:complexType name="ArrearsContributionPeriods">
		
		<xsd:attribute name="FromMonth" type="ArreasMonth" use="required" form="unqualified" />
		<xsd:attribute name="FromYear" type="PeriodYear" use="required" form="unqualified"/>
		
		<xsd:attribute name="ToMonth" type="ArreasMonth" use="required" form="unqualified" />
		<xsd:attribute name="ToYear" type="PeriodYear" use="required" form="unqualified"/>
		
	</xsd:complexType>

</xsd:schema>
