<?xml version="1.0" encoding="UTF-8" ?>

<!--
XML Schema Rec
Generated by X-Meta 
Fri Jan 21 12:44:41 GMT 2011
  -->
<xsd:schema version='3.0' elementFormDefault='qualified' attributeFormDefault='unqualified' id='PensionCore' xmlns:xsd='http://www.w3.org/2001/XMLSchema'>
  <xsd:include schemaLocation='http://www.hmrc.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>CoreFiling Ltd</gms:Contributor>
        <gms:Creator>HMRC</gms:Creator>
        <gms:Date>
          <gms:Created>2005-06-13</gms:Created>
        </gms:Date>
        <gms:Date>
          <gms:Modified>2011-01-21</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>HMRC</gms:Publisher>
        <gms:Relation>
          <gms:Requires>core-v2-0</gms:Requires>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>TaxReferenceType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>EntityType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>MemberDetailsStructure</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>IndividualDetailsStructure</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>YesType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>PSOstringType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>PSOaddressLineType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>AddressType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>PSOcountryType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>AdministratorAddressType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>AdministratorIDtype</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>PractitionerIDtype</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>DeclarationsType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>OtherDetailsType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>SchemeNameType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>CRNtype</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>SFReferenceType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Relation>
          <gms:ProvidesDefinitionOf>ChargeReferenceType</gms:ProvidesDefinitionOf>
        </gms:Relation>
        <gms:Rights>
          <gms:Copyright>(C) Crown Copyright 2005-11</gms:Copyright>
        </gms:Rights>
        <gms:Subject>
          <gms:Category>Economics, Finance and Tax</gms:Category>
        </gms:Subject>
        <gms:Title>Pension Schemes Online Core Datatype Schema</gms:Title>
        <gms:Type>message</gms:Type>
      </gms:Metadata>
    </xsd:appinfo>
  </xsd:annotation>
  <xsd:simpleType name='TaxReferenceType'>
    <xsd:restriction base='xsd:string'>
      <xsd:length value='10' />
      <xsd:pattern value='[0-9]{8}R[A-HJ-NP-TV-Z]' />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name='EntityType'>
    <xsd:choice minOccurs='1' maxOccurs='1'>
      <xsd:element name='Individual' type='NameStructure' minOccurs='1' maxOccurs='1' />
      <xsd:element name='Organisation' minOccurs='1' maxOccurs='1'>
        <xsd:simpleType>
          <xsd:restriction base='PSOstringType'>
            <xsd:minLength value='1' />
            <xsd:maxLength value='255' />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
    </xsd:choice>
  </xsd:complexType>
  <xsd:complexType name='MemberDetailsStructure'>
    <xsd:sequence>
      <xsd:element name='Name' type='NameStructure' minOccurs='1' maxOccurs='1' />
      <xsd:choice minOccurs='1' maxOccurs='1'>
        <xsd:element name='NINO' type='NINOtype' minOccurs='1' maxOccurs='1' />
        <xsd:element name='DOB' minOccurs='1' maxOccurs='1'>
          <xsd:simpleType>
            <xsd:restriction base='xsd:date'>
              <xsd:pattern value='[0-9]{4}-[0-9]{2}-[0-9]{2}' />
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name='IndividualDetailsStructure'>
    <xsd:sequence>
      <xsd:element name='Name' type='NameStructure' minOccurs='1' maxOccurs='1' />
      <xsd:choice minOccurs='1' maxOccurs='1'>
        <xsd:element name='NINO' type='NINOtype' minOccurs='1' maxOccurs='1' />
        <xsd:element name='DOB' minOccurs='1' maxOccurs='1'>
          <xsd:simpleType>
            <xsd:restriction base='xsd:date'>
              <xsd:pattern value='[0-9]{4}-[0-9]{2}-[0-9]{2}' />
            </xsd:restriction>
          </xsd:simpleType>
        </xsd:element>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:simpleType name='YesType'>
    <xsd:restriction base='YesNoType'>
      <xsd:enumeration value='yes' />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name='PSOstringType'>
    <xsd:restriction base='xsd:string'>
      <xsd:pattern value='[A-Za-z0-9 &amp;&apos;()*,./%!+:;=?@\[\]^_{}~\-]+' />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name='PSOaddressLineType'>
    <xsd:restriction base='PSOstringType'>
      <xsd:minLength value='1' />
      <xsd:maxLength value='35' />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name='AddressType'>
    <xsd:sequence>
      <xsd:element name='Line' type='PSOaddressLineType' minOccurs='2' maxOccurs='4' />
      <xsd:element name='PostCode' minOccurs='0' maxOccurs='1'>
        <xsd:simpleType>
          <xsd:restriction base='PSOstringType'>
            <xsd:minLength value='1' />
            <xsd:maxLength value='8' />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
      <xsd:element name='Country' type='PSOcountryType' minOccurs='1' maxOccurs='1' />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:simpleType name='PSOcountryType'>
    <xsd:restriction base='PSOstringType'>
      <xsd:minLength value='1' />
      <xsd:maxLength value='35' />
      <xsd:pattern value='[A-Za-z ]+' />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name='AdministratorAddressType'>
    <xsd:sequence>
      <xsd:element name='Line' type='PSOaddressLineType' minOccurs='2' maxOccurs='4' />
      <xsd:element name='PostCode' minOccurs='0' maxOccurs='1'>
        <xsd:simpleType>
          <xsd:restriction base='PSOstringType'>
            <xsd:minLength value='1' />
            <xsd:maxLength value='8' />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
      <xsd:element name='Country' minOccurs='1' maxOccurs='1'>
        <xsd:simpleType>
          <xsd:restriction base='PSOcountryType'>
            <xsd:enumeration value='Austria' />
            <xsd:enumeration value='Belgium' />
            <xsd:enumeration value='Bulgaria' />
            <xsd:enumeration value='Cyprus' />
            <xsd:enumeration value='Czech Republic' />
            <xsd:enumeration value='Denmark' />
            <xsd:enumeration value='Estonia' />
            <xsd:enumeration value='Finland' />
            <xsd:enumeration value='France' />
            <xsd:enumeration value='Germany' />
            <xsd:enumeration value='Gibraltar' />
            <xsd:enumeration value='Greece' />
            <xsd:enumeration value='Hungary' />
            <xsd:enumeration value='Iceland' />
            <xsd:enumeration value='Italy' />
            <xsd:enumeration value='Latvia' />
            <xsd:enumeration value='Liechtenstein' />
            <xsd:enumeration value='Lithuania' />
            <xsd:enumeration value='Luxembourg' />
            <xsd:enumeration value='Malta' />
            <xsd:enumeration value='Norway' />
            <xsd:enumeration value='Poland' />
            <xsd:enumeration value='Portugal' />
            <xsd:enumeration value='Republic of Ireland' />
            <xsd:enumeration value='Romania' />
            <xsd:enumeration value='Slovakia' />
            <xsd:enumeration value='Slovenia' />
            <xsd:enumeration value='Spain' />
            <xsd:enumeration value='Sweden' />
            <xsd:enumeration value='The Netherlands' />
            <xsd:enumeration value='United Kingdom' />
          </xsd:restriction>
        </xsd:simpleType>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:simpleType name='AdministratorIDtype'>
    <xsd:restriction base='xsd:string'>
      <xsd:length value='8' />
      <xsd:pattern value='A[0-9]{7}' />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name='PractitionerIDtype'>
    <xsd:restriction base='xsd:string'>
      <xsd:length value='8' />
      <xsd:pattern value='[0-9]{8}' />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name='DeclarationsType'>
    <xsd:sequence>
      <xsd:element name='Administrator' minOccurs='1' maxOccurs='1'>
        <xsd:complexType>
          <xsd:complexContent>
            <xsd:extension base='EntityType'>
              <xsd:sequence>
                <xsd:element name='Address' type='AdministratorAddressType' minOccurs='1' maxOccurs='1' />
                <xsd:element name='Telephone' minOccurs='0' maxOccurs='1'>
                  <xsd:simpleType>
                    <xsd:restriction base='TelephoneNumberType'>
                      <xsd:minLength value='1' />
                      <xsd:maxLength value='35' />
                    </xsd:restriction>
                  </xsd:simpleType>
                </xsd:element>
                <xsd:element name='ID' type='AdministratorIDtype' minOccurs='0' maxOccurs='1' />
                <xsd:element name='Email' minOccurs='0' maxOccurs='1'>
                  <xsd:simpleType>
                    <xsd:restriction base='EmailType'>
                      <xsd:minLength value='3' />
                      <xsd:maxLength value='254' />
                      <xsd:pattern value='[^@]+@[^@]+' />
                    </xsd:restriction>
                  </xsd:simpleType>
                </xsd:element>
              </xsd:sequence>
            </xsd:extension>
          </xsd:complexContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:choice minOccurs='1' maxOccurs='1'>
        <xsd:sequence>
          <xsd:element name='InformationCorrect' type='YesType' minOccurs='1' maxOccurs='1' />
          <xsd:element name='NoFalseStatements' type='YesType' minOccurs='1' maxOccurs='1' />
        </xsd:sequence>
        <xsd:sequence>
          <xsd:element name='ApprovedByAdministrator' type='YesType' minOccurs='1' maxOccurs='1' />
          <xsd:element name='Authorised' type='YesType' minOccurs='1' maxOccurs='1' />
        </xsd:sequence>
      </xsd:choice>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:simpleType name='OtherDetailsType'>
    <xsd:restriction base='PSOstringType'>
      <xsd:minLength value='1' />
      <xsd:maxLength value='150' />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name='SchemeNameType'>
    <xsd:restriction base='PSOstringType'>
      <xsd:minLength value='1' />
      <xsd:maxLength value='255' />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name='CRNtype'>
    <xsd:restriction base='xsd:string'>
      <xsd:minLength value='7' />
      <xsd:maxLength value='8' />
      <xsd:pattern value='(0[0-9]{7}|(AC|BR|FC|GE|GN|GS|IC|IP|LP|NA|NF|NI|NL|NO|NP|NR|NZ|OC|RC|SA|SC|SF|SI|SL|SO|SP|SR|SZ|ZC|R)[0-9]{6})' />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name='SFReferenceType'>
    <xsd:restriction base='PSOstringType'>
      <xsd:length value='16' />
      <xsd:pattern value='[0-9]{15}[A-Z]' />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name='ChargeReferenceType'>
    <xsd:restriction base='PSOstringType'>
      <xsd:length value='14' />
      <xsd:pattern value='X[A-HJ-NP-TV-Z]R[0-9]{11}' />
    </xsd:restriction>
  </xsd:simpleType>
</xsd:schema>
