﻿<xs:schema xmlns="http://bof.fi/AC/Feedback" xmlns:ac="http://bof.fi/AC" xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://bof.fi/AC/Feedback" elementFormDefault="qualified" version="1.19">
  <xs:import namespace="http://bof.fi/AC" schemaLocation="AC_CommonDataTypes1.19.xsd" />
  <xs:simpleType name="IdentifierDescriptionType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="CNTRCT_ID" />
      <xs:enumeration value="INSTRMNT_ID" />
      <xs:enumeration value="CNTRPRTY_ID" />
      <xs:enumeration value="ENTTY_RL" />
      <xs:enumeration value="PRTCTN_ID" />
      <xs:enumeration value="OBSRVD_AGNT_ID" />
      <xs:enumeration value="RPRTNG_AGNT_ID" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="TargetType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="File" />
      <xs:enumeration value="ReportingAgentRecord" />
      <xs:enumeration value="ObservedAgentRecord" />
      <xs:enumeration value="CounterpartyReferenceRecord" />
      <xs:enumeration value="InstrumentInformationRecord" />
      <xs:enumeration value="InstrumentProtectionRecord" />
      <xs:enumeration value="CounterpartyInstrumentRecord" />
      <xs:enumeration value="ProtectionRecord" />
      <xs:enumeration value="ProtectionProviderRecord" />
      <xs:enumeration value="CounterpartyRiskAndDefaultRecord" />
      <xs:enumeration value="AccountingRecord" />
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StatusCodeType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="OK">
        <xs:annotation>
          <xs:documentation xml:lang="en">OK</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
      <xs:enumeration value="Error">
        <xs:annotation>
          <xs:documentation xml:lang="en">Error</xs:documentation>
        </xs:annotation>
      </xs:enumeration>
    </xs:restriction>
  </xs:simpleType>
  <xs:simpleType name="StatusCodeAccurateType">
    <xs:union memberTypes="StatusCodeType">
      <xs:simpleType>
        <xs:restriction base="xs:string">
          <xs:enumeration value="Fatal">
            <xs:annotation>
              <xs:documentation xml:lang="en">Fatal Error</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Warning">
            <xs:annotation>
              <xs:documentation xml:lang="en">Warning</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
          <xs:enumeration value="Info">
            <xs:annotation>
              <xs:documentation xml:lang="en">Info</xs:documentation>
            </xs:annotation>
          </xs:enumeration>
        </xs:restriction>
      </xs:simpleType>
    </xs:union>
  </xs:simpleType>
  <xs:complexType name="ErrorsType">
    <xs:sequence>
      <xs:element name="SchemaValidationErrors" minOccurs="0">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="SchemaValidationError" minOccurs="0" maxOccurs="unbounded">
              <xs:annotation>
                <xs:documentation xml:lang="en">Filename</xs:documentation>
              </xs:annotation>
              <xs:complexType>
                <xs:simpleContent>
                  <xs:extension base="xs:string">
                    <xs:attribute name="Filename" type="ac:String255Type">
                    </xs:attribute>
                  </xs:extension>
                </xs:simpleContent>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:complexType name="ValidationsType">
    <xs:sequence>
      <xs:element name="Validation" maxOccurs="unbounded">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Descriptions">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Description" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:simpleContent>
                        <xs:extension base="ac:String3000Type">
                          <xs:attribute name="lang" type="xs:language" />
                        </xs:extension>
                      </xs:simpleContent>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
            <xs:element name="Status"  type="StatusCodeAccurateType" />
            <xs:element name="Results">
              <xs:complexType>
                <xs:sequence>
                  <xs:element name="Result" maxOccurs="unbounded">
                    <xs:complexType>
                      <xs:sequence>
                        <xs:element name="Targets">
                          <xs:complexType>
                            <xs:sequence>
                              <xs:element name="Target" maxOccurs="unbounded">
                                <xs:complexType>
                                  <xs:sequence>
                                    <xs:element name="Identifiers" maxOccurs="unbounded">
                                      <xs:complexType>
                                        <xs:sequence>
                                          <xs:element name="Identifier" maxOccurs="unbounded">
                                            <xs:complexType>
                                              <xs:simpleContent>
                                                <xs:extension base="ac:IdentifierType">
                                                  <xs:attribute name="identifierDescription" type="IdentifierDescriptionType" use="required">
                                                  </xs:attribute>
                                                </xs:extension>
                                              </xs:simpleContent>
                                            </xs:complexType>
                                          </xs:element>
                                        </xs:sequence>
                                      </xs:complexType>
                                    </xs:element>
                                  </xs:sequence>
                                  <xs:attribute name="targetType" type="TargetType" use="required"/>
                                </xs:complexType>
                              </xs:element>
                            </xs:sequence>
                          </xs:complexType>
                        </xs:element>
                      </xs:sequence>
                    </xs:complexType>
                  </xs:element>
                </xs:sequence>
              </xs:complexType>
            </xs:element>
          </xs:sequence>
          <xs:attribute name="validationId" type="ac:String255Type" use="required"/>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
</xs:schema>
