<?xml version="1.0" encoding="utf-8"?>
<!-- v1.0 -->
<!-- last modified date: 2020-01-22 -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://infoproff.com/"
            targetNamespace="http://infoproff.com/"
            xmlns="http://infoproff.com/">

    <!-- Credit opinion -->
    <xsd:element name="credit_opinion_calculator" type="tns:credit_opinion" nillable="true"/>
    <!-- -->
    <!-- *******************************************************************************************  -->
    <xsd:complexType name="credit_opinion">
        <xsd:sequence>
            <xsd:element name="language" type="tns:language" minOccurs="0" maxOccurs="1" nillable="false"/>
            <xsd:element name="ref_code" type="tns:code" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="initial_data" type="tns:credit_opinion_initial_data" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="credit_opinion" type="tns:credit_opinions" minOccurs="0" maxOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>Credit opinion</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="financial_statements_data" type="tns:financial_statements_data" minOccurs="0"
                         maxOccurs="1">
                <xsd:annotation>
                    <xsd:documentation>Key Ratios</xsd:documentation>
                </xsd:annotation>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>

    <!-- *******************************************************************************************  -->
    <!-- *******************************************************************************************  -->
    <!-- *******************************************************************************************  -->
    <xsd:complexType name="credit_opinion_initial_data">
        <xsd:sequence>
            <xsd:element name="general_data" minOccurs="0" maxOccurs="1">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="status" type="tns:status_type" minOccurs="0" maxOccurs="1"/>
                        <xsd:element name="foundation" type="xsd:date" minOccurs="0" maxOccurs="1"/>
                        <xsd:element name="nace2code" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                        <xsd:element name="notifications" minOccurs="0" maxOccurs="1">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="item" minOccurs="1" maxOccurs="unbounded">
                                        <xsd:complexType>
                                            <xsd:sequence>
                                                <xsd:element name="date" type="xsd:date" minOccurs="1" maxOccurs="1"
                                                             nillable="false"/>
                                                <xsd:element name="type" type="tns:notification_type" minOccurs="1"
                                                             maxOccurs="1" nillable="false">
                                                </xsd:element>
                                            </xsd:sequence>
                                        </xsd:complexType>
                                    </xsd:element>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                        <xsd:element name="employees" minOccurs="0" maxOccurs="1">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="item" minOccurs="1" maxOccurs="unbounded">
                                        <xsd:complexType>
                                            <xsd:sequence>
                                                <xsd:element name="number_of_employees" type="xsd:integer" minOccurs="1"
                                                             maxOccurs="1" nillable="true"/>
                                                <xsd:element name="year" type="xsd:integer" minOccurs="1" maxOccurs="1"
                                                             nillable="false"/>
                                                <xsd:element name="period_end_date" type="xsd:date" minOccurs="1"
                                                             maxOccurs="1" nillable="false"/>
                                            </xsd:sequence>
                                        </xsd:complexType>
                                    </xsd:element>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="debts" minOccurs="0" maxOccurs="1">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="paid_debts" type="tns:cr_debts" minOccurs="0" maxOccurs="1"/>
                        <xsd:element name="upaid_debts" type="tns:cr_debts" minOccurs="0" maxOccurs="1"/>
                        <xsd:element name="last_registered_debt" type="xsd:date" minOccurs="1" maxOccurs="1" nillable="false"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="financial_elements" minOccurs="1" maxOccurs="1">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="item" minOccurs="1" maxOccurs="2">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="year" type="xsd:string" minOccurs="1" maxOccurs="1"
                                                 nillable="false"/>
                                    <xsd:element name="period" type="xsd:integer" minOccurs="1" maxOccurs="1"
                                                 nillable="false">
                                        <xsd:annotation>
                                            <xsd:documentation>Period in months</xsd:documentation>
                                        </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="currency" type="tns:currency" minOccurs="1" maxOccurs="1"
                                                 nillable="false">
                                        <xsd:annotation>
                                            <xsd:documentation>Currency (three-letter system of codes - ISO 4217)
                                            </xsd:documentation>
                                        </xsd:annotation>
                                    </xsd:element>
                                    <xsd:element name="scale" minOccurs="1" maxOccurs="1" nillable="false">
                                        <xsd:simpleType>
                                            <xsd:restriction base="xsd:string">
                                                <xsd:enumeration value="1"/>
                                                <xsd:enumeration value="10"/>
                                                <xsd:enumeration value="100"/>
                                                <xsd:enumeration value="1000"/>
                                                <xsd:enumeration value="1000000"/>
                                                <xsd:enumeration value="1000000000"/>
                                                <xsd:enumeration value="1000000000000"/>
                                            </xsd:restriction>
                                        </xsd:simpleType>
                                    </xsd:element>
                                    <xsd:element name="currency_exchange_rate_to_eur" type="xsd:double" minOccurs="1"
                                                 maxOccurs="1" nillable="false"/>
                                    <xsd:element name="period_start_date" type="xsd:date" minOccurs="1" maxOccurs="1"
                                                 nillable="false"/>
                                    <xsd:element name="period_end_date" type="xsd:date" minOccurs="1" maxOccurs="1"
                                                 nillable="false"/>
                                    <xsd:element name="positions" minOccurs="1" maxOccurs="1" nillable="false">
                                        <xsd:complexType>
                                            <xsd:sequence>
                                                <xsd:element name="position" minOccurs="1" maxOccurs="unbounded">
                                                    <xsd:complexType>
                                                        <xsd:sequence>
                                                            <xsd:element name="position_code" type="tns:finelcode"
                                                                         minOccurs="1" maxOccurs="1" nillable="false">
                                                                <xsd:annotation>
                                                                    <xsd:documentation>Line number</xsd:documentation>
                                                                </xsd:annotation>
                                                            </xsd:element>
                                                            <xsd:element name="value" type="xsd:double" minOccurs="1"
                                                                         maxOccurs="1" nillable="true">
                                                                <xsd:annotation>
                                                                    <xsd:documentation>Value</xsd:documentation>
                                                                </xsd:annotation>
                                                            </xsd:element>
                                                        </xsd:sequence>
                                                    </xsd:complexType>
                                                </xsd:element>
                                            </xsd:sequence>
                                        </xsd:complexType>
                                    </xsd:element>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:complexType name="cr_debts">
        <xsd:sequence>
            <xsd:element name="total_amount" type="xsd:double" minOccurs="1" maxOccurs="1" nillable="true"/>
            <xsd:element name="currency_name" type="tns:currency" minOccurs="1" maxOccurs="1" nillable="true"/>
            <xsd:element name="currency_exchange_rate_to_eur" type="xsd:double" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>

    <xsd:simpleType name="status_type">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="DEL"/> <!--  Deleted  -->
            <xsd:enumeration value="LIQ"/> <!--  In liquidation  -->
            <xsd:enumeration value="BANKR"/> <!--  In bankruptcy  -->
            <xsd:enumeration value="REG"/> <!--  Entered into the register  -->
            <xsd:enumeration value="ACT"/> <!--  Active = Entered into the register  -->
            <xsd:enumeration value="INACT"/> <!--  Inactive = Deleted  -->
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="notification_type">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="LIQ"/> <!--  In liquidation  -->
            <xsd:enumeration value="BANKR"/> <!--  In bankruptcy  -->
            <xsd:enumeration value="MRG"/> <!--  Merger process  -->
            <xsd:enumeration value="DIV"/> <!--  Division process  -->
        </xsd:restriction>
    </xsd:simpleType>

    <xsd:simpleType name="finelcode">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="1000"/> <!-- NON-CURRENT ASSETS -->
            <xsd:enumeration value="1010"/> <!-- Fixed assets -->
            <xsd:enumeration value="1020"/> <!-- Financial assets -->
            <xsd:enumeration value="1100"/> <!-- CURRENT ASSETS -->
            <xsd:enumeration value="1110"/> <!-- Stock -->
            <xsd:enumeration value="1120"/> <!-- Debtors -->
            <xsd:enumeration value="1130"/> <!-- Cash -->
            <xsd:enumeration value="1200"/> <!-- ASSETS TOTAL -->
            <xsd:enumeration value="1300"/> <!-- EQUITY -->
            <xsd:enumeration value="1310"/> <!-- Share capital -->
            <xsd:enumeration value="1400"/> <!-- LIABILITIES TOTAL -->
            <xsd:enumeration value="1410"/> <!-- Long-term liabilities -->
            <xsd:enumeration value="1420"/> <!-- Short-term liabilities -->
            <xsd:enumeration value="1500"/> <!-- EQUITY AND LIABILITIES TOTAL -->
            <xsd:enumeration value="1600"/> <!-- NET SALES -->
            <xsd:enumeration value="1700"/> <!-- COST OF GOODS SOLD -->
            <xsd:enumeration value="1800"/> <!-- OPERATING PROFIT -->
            <xsd:enumeration value="1900"/> <!-- PROFIT BEFORE TAXATION -->
            <xsd:enumeration value="2000"/> <!-- NET PROFIT -->
        </xsd:restriction>
    </xsd:simpleType>

</xsd:schema>
