<?xml version="1.0" encoding="UTF-8" ?>
<xsd:schema version='1.2' elementFormDefault='qualified' attributeFormDefault='unqualified' id='CISreturn' targetNamespace='http://www.govtalk.gov.uk/taxation/CISreturn' xmlns='http://www.govtalk.gov.uk/taxation/CISreturn' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
  <xsd:include schemaLocation='http://www.inlandrevenue.gov.uk/schemas/core-v2-0.xsd' />
  <xsd:annotation>
    <xsd:appinfo>
      <gms:Metadata xmlns:gms='http://www.govtalk.gov.uk/CM/gms-xs'>
        <gms:Audience>e-service developers</gms:Audience>
        <gms:Contributor>DecisionSoft Ltd</gms:Contributor>
        <gms:Creator>Inland Revenue</gms:Creator>
        <gms:Date>
          <gms:Created>2005-02-10</gms:Created>
        </gms:Date>
        <gms:Date>
          <gms:Modified>2006-07-27</gms:Modified>
        </gms:Date>
        <gms:Format>
          <gms:MediaType>text/xml</gms:MediaType>
          <gms:Syntax>http://www.w3.org/2001/XMLSchema</gms:Syntax>
          <gms:Description>XML Schema, W3C Recommendation 2001</gms:Description>
        </gms:Format>
        <gms:Language>[ISO 639-2/B] ENG</gms:Language>
        <gms:Publisher>Inland Revenue</gms:Publisher>
        <gms:Relation>
          <gms:Requires>core-v2-0</gms:Requires>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>IRenvelope</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>CRNtype</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>AOrefType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Rights>
          <gms:Copyright>(C) Crown Copyright 2005</gms:Copyright>
        </gms:Rights>
        <gms:Subject>
          <gms:Category>Economics, Finance and Tax</gms:Category>
        </gms:Subject>
        <gms:Title>CIS Return</gms:Title>
        <gms:Type>message</gms:Type>
      </gms:Metadata>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:element name='IRenvelope'>
    <xsd:complexType>
      <xsd:sequence>
        <xsd:element minOccurs='1' maxOccurs='1' ref='IRheader' />
        <xsd:element name='CISreturn' minOccurs='1' maxOccurs='1'>
          <xsd:complexType>
            <xsd:sequence>
              <xsd:element name='Contractor' minOccurs='1' maxOccurs='1'>
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name='UTR' type='UTRtype' minOccurs='1' maxOccurs='1' />
                    <xsd:element name='AOref' type='AOrefType' minOccurs='1' maxOccurs='1' />
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
              <xsd:element name='NilReturn' minOccurs='0' maxOccurs='1'>
                <xsd:simpleType>
                  <xsd:restriction base='YesNoType'>
                    <xsd:enumeration value='yes' />
                  </xsd:restriction>
                </xsd:simpleType>
              </xsd:element>
              <xsd:element name='Subcontractor' minOccurs='0' maxOccurs='unbounded'>
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:choice minOccurs='1' maxOccurs='1'>
                      <xsd:element name='Name' type='NameStructure' minOccurs='1' maxOccurs='1' />
                      <xsd:element name='TradingName' minOccurs='1' maxOccurs='1'>
                        <xsd:simpleType>
                          <xsd:restriction base='PAYEstringType'>
                            <xsd:maxLength value='56' />
                            <xsd:pattern value='\S.*' />
                          </xsd:restriction>
                        </xsd:simpleType>
                      </xsd:element>
                    </xsd:choice>
                    <xsd:element name='WorksRef' minOccurs='0' maxOccurs='1'>
						<xsd:simpleType>
						   <xsd:restriction base='PAYEstringType'>
						      <xsd:maxLength value='20' />
					       </xsd:restriction>
					    </xsd:simpleType>
                    </xsd:element>
                    <xsd:element name='UnmatchedRate' minOccurs='0' maxOccurs='1'>
                      <xsd:simpleType>
                        <xsd:restriction base='YesNoType'>
                          <xsd:enumeration value='yes' />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:element>
                    <xsd:element name='UTR' type='UTRtype' minOccurs='0' maxOccurs='1' />
                    <xsd:element name='CRN' type='CRNtype' minOccurs='0' maxOccurs='1' />
                    <xsd:element name='NINO' type='NINOtype' minOccurs='0' maxOccurs='1' />
                    <xsd:element name='VerificationNumber' minOccurs='0' maxOccurs='1'>
                      <xsd:simpleType>
                        <xsd:restriction base='xsd:string'>
                          <xsd:minLength value='11' />
                          <xsd:maxLength value='13' />
                          <xsd:pattern value='V[0-9]{10}[A-HJ-NP-Z]{0,2}' />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:element>
                    <xsd:element name='TotalPayments' minOccurs='0' maxOccurs='1'>
                      <xsd:simpleType>
                        <xsd:restriction base='IRnonNegativeWholeUnitsMonetaryType'>
                          <xsd:maxInclusive value='99999999.00' />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:element>
                    <xsd:element name='CostOfMaterials' minOccurs='0' maxOccurs='1'>
                      <xsd:simpleType>
                        <xsd:restriction base='IRnonNegativeWholeUnitsMonetaryType'>
                          <xsd:maxInclusive value='99999999.00' />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:element>
                    <xsd:element name='TotalDeducted' minOccurs='0' maxOccurs='1'>
                      <xsd:simpleType>
                        <xsd:restriction base='IRnonNegativeMonetaryType'>
                          <xsd:maxInclusive value='99999999.99' />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:element>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
              <xsd:element name='Declarations' minOccurs='1' maxOccurs='1'>
                <xsd:complexType>
                  <xsd:sequence>
                    <xsd:element name='EmploymentStatus' type='YesNoType' minOccurs='0' maxOccurs='1' />
                    <xsd:element name='Verification' type='YesNoType' minOccurs='0' maxOccurs='1' />
                    <xsd:element name='InformationCorrect' minOccurs='1' maxOccurs='1'>
                      <xsd:simpleType>
                        <xsd:restriction base='YesNoType'>
                          <xsd:enumeration value='yes' />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:element>
                    <xsd:element name='Inactivity' minOccurs='0' maxOccurs='1'>
                      <xsd:simpleType>
                        <xsd:restriction base='YesNoType'>
                          <xsd:enumeration value='yes' />
                        </xsd:restriction>
                      </xsd:simpleType>
                    </xsd:element>
                  </xsd:sequence>
                </xsd:complexType>
              </xsd:element>
            </xsd:sequence>
          </xsd:complexType>
        </xsd:element>
      </xsd:sequence>
    </xsd:complexType>
  </xsd:element>
  <xsd:simpleType name='CRNtype'>
    <xsd:restriction base='xsd:string'>
      <xsd:pattern value='[A-Za-z]{2}[0-9]{1,6}|[0-9]{1,8}' />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name='AOrefType'>
    <xsd:restriction base='xsd:string'>
      <xsd:length value='13' />
      <xsd:pattern value='[0-9]{3}P[A-Za-z][A-Za-z0-9]{8}' />
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>
