<?xml version="1.0" encoding="UTF-8"?>
<!-- edited with XMLSpy v2008 sp1 (http://www.altova.com) by Hubert Matthews (DCSF) -->
<xs:schema xmlns="http://dcsf.gov.uk/ISPP/Webservice" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ecd="http://www.opp-links.org.uk/XMLSchema/Childcare" xmlns:fsd="http://www.opp-links.org.uk/XMLSchema/ServiceDirectory" targetNamespace="http://dcsf.gov.uk/ISPP/Webservice" elementFormDefault="qualified" attributeFormDefault="unqualified" version="0.1a">
    <xs:import namespace="http://www.opp-links.org.uk/XMLSchema/Childcare" schemaLocation="ProviderTypes-v1-1b.xsd"/>
    <xs:import namespace="http://www.opp-links.org.uk/XMLSchema/ServiceDirectory" schemaLocation="ServiceTypes-v1-1.xsd"/>
    <!--======================================-->
    <!--Web service object types-->
    <!--======================================-->
    <xs:simpleType name="ISPPUsernameType">
        <xs:annotation>
            <xs:documentation>Holds the caller's username</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:token"/>
    </xs:simpleType>
    <xs:simpleType name="ISPPPasswordType">
        <xs:annotation>
            <xs:documentation>Holds the caller's password</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:token"/>
    </xs:simpleType>
    <xs:simpleType name="ISPPDateType">
        <xs:annotation>
            <xs:documentation>Represents query information that can be passed to and from the ISPP service</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:date"/>
    </xs:simpleType>
    <xs:simpleType name="ISPPQueryType">
        <xs:annotation>
            <xs:documentation>Represents query information that can be passed to and from the ISPP service</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <xs:simpleType name="ISPPLocationType">
        <xs:annotation>
            <xs:documentation>Represents query information that can be passed to and from the ISPP service</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string"/>
    </xs:simpleType>
    <xs:complexType name="ISPPRef">
        <xs:annotation>
            <xs:documentation>URI reference to a document or category rather than the document itself</xs:documentation>
        </xs:annotation>
        <xs:attribute name="URI" type="xs:anyURI" use="required"/>
    </xs:complexType>
    <xs:complexType name="ISPPRefListStructure">
        <xs:annotation>
            <xs:documentation>A set of DocRefs</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="Purpose" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>Optional text and @code to describe the purpose of this set of DocRefs</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="xs:string">
                            <xs:attribute name="code" type="xs:integer"/>
                        </xs:extension>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
            <xs:element name="Refs">
                <xs:annotation>
                    <xs:documentation>the actual set of DocRefs</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="DocRef" type="ISPPRef" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ISPPDocListECDStructure">
        <xs:annotation>
            <xs:documentation>A set of ECD document instances</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="ECDDoc" type="ecd:ProviderStructure" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ISPPDocListFSDStructure">
        <xs:annotation>
            <xs:documentation>A set of FSD document instances</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="FSDDoc" type="fsd:ServiceStructure" minOccurs="0" maxOccurs="unbounded"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ISPPWrapperStructureECD">
        <xs:annotation>
            <xs:documentation>A wrapper which holds a list of ECD docs and a list of refs</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="ISPPDocList" type="ISPPDocListECDStructure" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>The actual ECD document instances</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ISPPDocRefs" type="ISPPRefListStructure" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>A set of DocRefs which can provide extra information</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ISPPWrapperStructureFSD">
        <xs:annotation>
            <xs:documentation>A wrapper which holds a list of FSD docs and a list of refs</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="ISPPDocList" type="ISPPDocListFSDStructure" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>The actual FSD document instances</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ISPPDocRefs" type="ISPPRefListStructure" minOccurs="0">
                <xs:annotation>
                    <xs:documentation>A set of DocRefs which can provide extra information</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="ISPPLocalAuthorityStructure">
        <xs:annotation>
            <xs:documentation>Represents Local Authority information that can be passed to and from the ISPP service</xs:documentation>
        </xs:annotation>
        <xs:attribute name="ID" type="xs:int"/>
    </xs:complexType>
    <xs:complexType name="ISPPLocation">
        <xs:annotation>
            <xs:documentation>Physical location expressed as either a postcode or northing/easting</xs:documentation>
        </xs:annotation>
    </xs:complexType>
</xs:schema>