<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    xmlns:tns="http://www.fca.org.uk/NSMresponse"
    targetNamespace="http://www.fca.org.uk/NSMresponse"
    version="1.1">
      
    <xs:complexType name="NSM_Processing_Result">
        <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="NSMStatusHeader" type="tns:NSM_Status_Header"/>
            <xs:element minOccurs="0" name="XBRLValidationResults" type="tns:XBRL_Validation_Results"/>
        </xs:sequence>
        <xs:attribute name="version" type="xs:positiveInteger" use="optional" default="1">
            <xs:annotation>
                <xs:documentation>The version of the Item. </xs:documentation>
            </xs:annotation>
        </xs:attribute> 
    </xs:complexType>
    
    <xs:element name="NSMProcessingResult" type="tns:NSM_Processing_Result"></xs:element>
    
    <xs:complexType name="NSM_Status_Header">
        <xs:sequence>
            <xs:element minOccurs="1" maxOccurs="1" name="NSMStatusCode" type="tns:NSM_Status_Code"/>
            <xs:element minOccurs="1" maxOccurs="1" name="NSMStatusMessage" type="tns:String255"/>
            <xs:element minOccurs="0" maxOccurs="1" name="NSMStatusDescription" type="tns:String1024"/>
        </xs:sequence>        
    </xs:complexType>

    <xs:complexType name="XBRL_Validation_Results">
        <xs:sequence>
            <xs:element minOccurs="0" name="TaxonomyVersionEntryPoints" nillable="true" type="tns:ArrayOfTaxonomyVersionEntryPoint"/>
            <xs:element minOccurs="0" name="TaxonomyVersionIds" nillable="true" type="tns:ArrayOfTaxonomyVersionId"/>
            <xs:element minOccurs="0" name="ValidationResults" nillable="true" type="tns:ArrayOfValidationResult"/>
        </xs:sequence>
    </xs:complexType>
    
    <xs:simpleType name="NSM_Status_Code">
        <xs:restriction base="xs:string">
            <xs:pattern value="FCA(0|[1-9]){4}"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="String255">
        <xs:restriction base="xs:string">
            <xs:maxLength value="255"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="String1024">
        <xs:restriction base="xs:string">
            <xs:maxLength value="1024"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:simpleType name="PublishStatus">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Published"/>
            <xs:enumeration value="Published with Warnings"/>
            <xs:enumeration value="Not Published - Errors"/>
            <xs:enumeration value="Not Published - Information"/>
            <xs:enumeration value="Success"/>
            <xs:enumeration value="Success with Warnings"/>
            <xs:enumeration value="Invalid Taxonomies"/>
        </xs:restriction>
    </xs:simpleType>
    
    <xs:complexType name="ArrayOfTaxonomyVersionEntryPoint">
        <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" name="TaxonomyVersionEntryPoint" nillable="true" type="tns:TaxonomyVersionEntryPoint"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="ArrayOfTaxonomyVersionEntryPoint" nillable="true" type="tns:ArrayOfTaxonomyVersionEntryPoint"/>
    <xs:complexType name="TaxonomyVersionEntryPoint">
        <xs:sequence>
            <xs:element minOccurs="0" name="Value" nillable="true" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="TaxonomyVersionEntryPoint" nillable="true" type="tns:TaxonomyVersionEntryPoint"/>
    <xs:complexType name="ArrayOfTaxonomyVersionId">
        <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" name="TaxonomyVersionId" nillable="true" type="tns:TaxonomyVersionId"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="ArrayOfTaxonomyVersionId" nillable="true" type="tns:ArrayOfTaxonomyVersionId"/>
    <xs:complexType name="TaxonomyVersionId">
        <xs:sequence>
            <xs:element minOccurs="0" name="Value" type="xs:int"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="TaxonomyVersionId" nillable="true" type="tns:TaxonomyVersionId"/>
    <xs:complexType name="ArrayOfValidationResult">
        <xs:sequence>
            <xs:element minOccurs="0" maxOccurs="unbounded" name="ValidationResult" nillable="true" type="tns:ValidationResult"/>
        </xs:sequence>
    </xs:complexType>
    <xs:element name="ArrayOfValidationResult" nillable="true" type="tns:ArrayOfValidationResult"/>
    <xs:complexType name="ValidationResult">
        <xs:sequence>
            <xs:element minOccurs="0" name="Id" nillable="true" type="xs:string"/>
            <xs:element minOccurs="0" name="Message" nillable="true" type="xs:string"/>
            <xs:element minOccurs="0" name="Severity" type="xs:string"/>
            <xs:element minOccurs="0" name="Type" type="xs:string"/>            
            <xs:element minOccurs="0" name="ErrorType" type="xs:string"/>
            <xs:element minOccurs="0" name="ErrorSubType" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>
</xs:schema>
