<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:tns="http://infoproff.com/"
            targetNamespace="http://infoproff.com/" xmlns="http://infoproff.com/">
    <!-- request -->
    <xsd:complexType name="OrderReportRequest">
        <xsd:sequence>
            <xsd:element name="authentication_block" type="tns:authentication_block" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="order_details" type="tns:src_order_details" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /request -->

    <!-- response -->
    <xsd:complexType name="OrderReportResponse">
        <xsd:sequence>
            <xsd:element name="order_data" type="tns:order_data" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="last_duplicates" minOccurs="0" maxOccurs="1" nillable="false"> <!-- for last 60 days -->
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="order_data" type="tns:order_data" minOccurs="1" maxOccurs="unbounded" nillable="false"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /response -->

    <!-- *******************************************************************************************  -->
    
    <!-- request -->
    <xsd:complexType name="OrderConfirmationRequest">
        <xsd:sequence>
            <xsd:element name="authentication_block" type="tns:authentication_block" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="order_id" type="xsd:int" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /request -->
    
    <!-- response -->
    <xsd:complexType name="OrderConfirmationResponse">
        <xsd:sequence>
            <xsd:element name="order_data" type="tns:order_data" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /response -->
    
    <!-- *******************************************************************************************  -->

    <!-- request -->
    <xsd:complexType name="OrderCancellationRequest">
        <xsd:sequence>
            <xsd:element name="authentication_block" type="tns:authentication_block" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="order_id" type="xsd:int" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /request -->

    <!-- response -->
    <xsd:complexType name="OrderCancellationResponse">
        <xsd:sequence>
            <xsd:element name="order_data" type="tns:order_data" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /response -->

    <!-- *******************************************************************************************  -->

    <!-- request -->
    <xsd:complexType name="ChkStatusRequest">
        <xsd:sequence>
            <xsd:element name="authentication_block" type="tns:authentication_block" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="order_id" type="xsd:int" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /request -->

    <!-- response -->
    <xsd:complexType name="ChkStatusResponse">
        <xsd:sequence>
            <xsd:element name="order_data" type="tns:order_data" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /response -->

    <!-- *******************************************************************************************  -->

    <!-- request -->
    <xsd:complexType name="GetReportRequest">
        <xsd:sequence>
            <xsd:element name="authentication_block" type="tns:authentication_block" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="order_id" type="xsd:int" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="lang" type="tns:language" minOccurs="0" maxOccurs="1" nillable="true" default="en"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /request -->

    <!-- response -->
    <xsd:complexType name="GetReportResponse">
        <xsd:sequence>
            <xsd:element name="order_data" type="tns:order_data" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="report" type="tns:report" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /response -->

    <!-- *******************************************************************************************  -->

    <!-- request -->
    <xsd:complexType name="SimpleSearchRequest">
        <xsd:sequence>
            <xsd:element name="authentication_block" type="tns:authentication_block" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="search_block" minOccurs="1" maxOccurs="1" nillable="false">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:choice minOccurs="1" maxOccurs="1">
                            <xsd:element name="company_name" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true">
                                <xsd:annotation>
                                    <xsd:documentation>Search company by company name</xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                            <xsd:element name="reg_code" type="tns:code" minOccurs="0" maxOccurs="1" nillable="true">
                                <xsd:annotation>
                                    <xsd:documentation>Search company by registration code</xsd:documentation>
                                </xsd:annotation>
                            </xsd:element>
                        </xsd:choice>
                        <xsd:element name="country" minOccurs="1" maxOccurs="1" nillable="false" default="FIN">
                            <xsd:annotation>
                                <xsd:documentation>Country code (ISO 3166-1 alpha-3)</xsd:documentation>
                            </xsd:annotation>
                            <xsd:simpleType>
                                <xsd:restriction base="xsd:string">
                                    <xsd:enumeration value="FIN"/>
                                    <xsd:enumeration value="SWE"/>
                                    <xsd:enumeration value="DNK"/>
                                    <xsd:enumeration value="NOR"/>
                                </xsd:restriction>
                            </xsd:simpleType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /request -->

    <!-- response -->
    <xsd:complexType name="SimpleSearchResponse">
        <xsd:sequence>
            <xsd:element name="search_result" minOccurs="1" maxOccurs="1" nillable="false">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="item" minOccurs="0" maxOccurs="unbounded">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="historical_names" minOccurs="0">
                                        <xsd:complexType>
                                            <xsd:sequence>
                                                <xsd:element name="item" minOccurs="1" maxOccurs="unbounded">
                                                    <xsd:complexType>
                                                        <xsd:sequence>
                                                            <xsd:element name="name" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                                        </xsd:sequence>
                                                    </xsd:complexType>
                                                </xsd:element>
                                            </xsd:sequence>
                                        </xsd:complexType>
                                    </xsd:element>
                                    <xsd:element name="code" type="tns:code" minOccurs="1" maxOccurs="1" nillable="true"/>
                                    <xsd:element name="legal_status" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="true"/>
                                    <xsd:element name="legal_form" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="true"/>
                                    <xsd:element name="legal_address" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                                    <xsd:element name="parent_company_code" type="xsd:string" minOccurs="0" maxOccurs="1" nillable="true"/>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /response -->

    <!-- *******************************************************************************************  -->

    <!-- request -->
    <xsd:complexType name="GetClassifiersFinancialStatementsRequest">
        <xsd:sequence>
            <xsd:element name="authentication_block" type="tns:authentication_block" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /request -->
    
    <!-- response -->
    <xsd:complexType name="GetClassifiersFinancialStatementsResponse">
        <xsd:sequence>
            <xsd:element name="financial_statements" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="item" minOccurs="1" maxOccurs="unbounded">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="subtype_id" type="xsd:integer" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="subtype_description" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="row_number" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="row_formated_description" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="row_lang_key" type="xsd:integer" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="row_order" type="xsd:integer" minOccurs="1" maxOccurs="1" nillable="false"/>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /response -->

    <!-- *******************************************************************************************  -->
    
    <!-- request -->
    <xsd:complexType name="GetLegalFormsRequest">
        <xsd:sequence>
            <xsd:element name="authentication_block" type="tns:authentication_block" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /request -->
    
    <!-- response -->
    <xsd:complexType name="GetLegalFormsResponse">
        <xsd:sequence>
            <xsd:element name="legal_forms" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="item" minOccurs="1" maxOccurs="unbounded">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="country" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="language" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="legal_form" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="lang_key" type="xsd:integer" minOccurs="1" maxOccurs="1" nillable="true"/>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /response -->

    <!-- *******************************************************************************************  -->
    
    <!-- request -->
    <xsd:complexType name="GetActivityClassificatorsRequest">
        <xsd:sequence>
            <xsd:element name="authentication_block" type="tns:authentication_block" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="classificator_type" type="tns:classificator_type" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /request -->
    
    <!-- response -->
    <xsd:complexType name="GetActivityClassificatorsResponse">
        <xsd:sequence>
            <xsd:element name="classificator_type" type="tns:classificator_type" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="activities" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="item" minOccurs="1" maxOccurs="unbounded">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="activity_description" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="activity_code" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="activity_language" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="activity_lang_key" type="xsd:integer" minOccurs="1" maxOccurs="1" nillable="true"/>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /response -->
    
    <!-- *******************************************************************************************  -->
    
    <!-- request -->
    <xsd:complexType name="GetDictionaryStandardPhrasesRequest">
        <xsd:sequence>
            <xsd:element name="authentication_block" type="tns:authentication_block" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /request -->
    
    <!-- response -->
    <xsd:complexType name="GetDictionaryStandardPhrasesResponse">
        <xsd:sequence>
            <xsd:element name="dictionary_standard_phrases" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="item" minOccurs="1" maxOccurs="unbounded">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="dictionary_lang_key" type="xsd:integer" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="dictionary_category" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="dictionary_language" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="dictionary_value" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /response -->
    
    <!-- *******************************************************************************************  -->
    
    <!-- request -->
    <xsd:complexType name="GetAvailableProductsRequest">
        <xsd:sequence>
            <xsd:element name="authentication_block" type="tns:authentication_block" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /request -->
    
    <!-- response -->
    <xsd:complexType name="GetAvailableProductsResponse">
        <xsd:sequence>
            <xsd:element name="available_products" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="item" minOccurs="1" maxOccurs="unbounded">
                            <xsd:complexType>
                                <xsd:sequence>
                                    <xsd:element name="country" type="tns:ocountry_code" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="product" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="delivery_term" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                    <xsd:element name="full_description" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
                                </xsd:sequence>
                            </xsd:complexType>
                        </xsd:element>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /response -->

    <!-- *******************************************************************************************  -->

    <!-- request -->
    <xsd:complexType name="CreditOpinionCalculatorRequest">
        <xsd:sequence>
            <xsd:element name="authentication_block" type="tns:authentication_block" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="order_details" type="tns:co_src_order_details" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>

    <!-- response -->
    <xsd:complexType name="CreditOpinionCalculatorResponse">
        <xsd:sequence>
            <xsd:element name="order_data" type="tns:order_data" minOccurs="0" maxOccurs="1" nillable="false"/>
            <xsd:element name="credit_opinion" type="tns:credit_opinion" minOccurs="0" maxOccurs="1"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- /response -->

    <!-- *******************************************************************************************  -->

    <!-- SIMPLE TYPES -->
    <xsd:simpleType name="ocountry_code">
        <xsd:annotation>
            <xsd:documentation>Country code (based on ISO 3166-1 alpha-3)</xsd:documentation>
        </xsd:annotation>
        <xsd:restriction base="xsd:string">
            <xsd:pattern value="([A-Za-z]{3})?"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- ***  -->
    <xsd:simpleType name="delivery_term">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="n"/> <!-- Normal-->
            <xsd:enumeration value="f"/> <!-- Flash -->
            <xsd:enumeration value="s"/> <!-- SuperFlash -->
            <xsd:enumeration value="o"/> <!-- Online -->
        </xsd:restriction>
    </xsd:simpleType>
    <!-- ***  -->
    <xsd:simpleType name="order_status">
        <xsd:restriction base="xsd:string">
            <!--<xsd:enumeration value="Awaiting Payment"/>-->
            <xsd:enumeration value="Awaiting Confirmation"/>
            <xsd:enumeration value="Identification pending"/>
            <xsd:enumeration value="In progress"/>
            <xsd:enumeration value="Canceled"/>
            <xsd:enumeration value="Rejected"/>
            <xsd:enumeration value="Finished"/>
            <xsd:enumeration value="Updated"/>
			<xsd:enumeration value="Technical Error"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- ***  -->
    <xsd:simpleType name="report_format">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="xml"/>
            <!--<xsd:enumeration value="pdf"/>-->
        </xsd:restriction>
    </xsd:simpleType>
    <!-- *** -->
    <xsd:complexType name="authentication_block">
        <xsd:sequence>
            <xsd:element name="username" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="password" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- *** -->
    <xsd:simpleType name="classificator_type">
        <xsd:restriction base="xsd:string">
            <xsd:enumeration value="EMTAK 2008"/>
            <xsd:enumeration value="NACE Rev.2"/>
            <xsd:enumeration value="КВЕД 2005"/>
            <xsd:enumeration value="КВЕД 2010"/>
            <xsd:enumeration value="ОКВЭД 2"/>
            <xsd:enumeration value="ОКВЭД 2007"/>
        </xsd:restriction>
    </xsd:simpleType>
    <!-- /SIMPLE TYPES -->

    <!-- *** -->
    <xsd:complexType name="order_data">
        <xsd:sequence>
            <xsd:element name="order_id" type="xsd:int" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="order_hash" type="tns:code" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="order_deadline" type="xsd:date" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="price" type="xsd:double" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="currency" type="tns:currency" minOccurs="1" maxOccurs="1" nillable="false"/>
            <!--<xsd:element name="user" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>-->
            <xsd:element name="request_time" type="xsd:dateTime" minOccurs="1" maxOccurs="1" nillable="false"/>
            <!--<xsd:element name="confirmation_time" type="xsd:dateTime" minOccurs="0" maxOccurs="1" nillable="false"/>-->
            <xsd:element name="order_details" type="tns:src_order_details" minOccurs="0" maxOccurs="1" nillable="false"/>
            <xsd:element name="order_status" type="tns:order_status" minOccurs="0" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- *** -->
    <xsd:complexType name="src_order_details">
        <xsd:sequence>
            <xsd:element name="country" type="tns:ocountry_code" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="product" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="delivery_term" type="tns:delivery_term" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="notification_of_completion" type="xsd:boolean" minOccurs="1" maxOccurs="1"/>
            <xsd:element name="copy_notification_to_other_emails" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="item" type="xsd:string" minOccurs="1" maxOccurs="unbounded"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="confirm_order" type="xsd:boolean" minOccurs="0" default="false" >
                <xsd:annotation>
                    <xsd:documentation>By default we are waiting from you a confirmation of order ('false' value or element is missing). Set 'true' to skip confirmation block. In this case your order will be considered as confirmed immediately.
                    </xsd:documentation>
                </xsd:annotation>
            </xsd:element>
            <xsd:element name="company_details" minOccurs="0">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="business_name" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                        <xsd:element name="reg_code" type="tns:code" minOccurs="0" maxOccurs="1"/>
                        <xsd:element name="vat_code" type="tns:code" minOccurs="0" maxOccurs="1"/>
                        <xsd:element name="address" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                        <xsd:element name="phone" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                        <xsd:element name="email" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                        <xsd:element name="additional_info" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                        <xsd:element name="ref_code" type="tns:code" minOccurs="0" maxOccurs="1"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
            <xsd:element name="corrected_details" minOccurs="0" maxOccurs="1" nillable="true">
                <xsd:complexType>
                    <xsd:sequence>
                        <xsd:element name="reason" type="xsd:string" minOccurs="0" maxOccurs="1"/>
                        <xsd:element name="reg_code" type="tns:code" minOccurs="0" maxOccurs="1"/>
                    </xsd:sequence>
                </xsd:complexType>
            </xsd:element>
        </xsd:sequence>
    </xsd:complexType>
    <!-- *** -->

    <xsd:complexType name="co_src_order_details">
        <xsd:sequence>
            <xsd:element name="country" type="tns:ocountry_code" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="product" type="xsd:string" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="delivery_term" type="tns:delivery_term" minOccurs="1" maxOccurs="1" nillable="false"/>
            <xsd:element name="lang" type="tns:language" minOccurs="0" maxOccurs="1" nillable="true" default="en"/>
            <xsd:element name="ref_code" type="tns:code" minOccurs="0" maxOccurs="1"/>
            <xsd:element name="initial_data" type="tns:credit_opinion_initial_data" minOccurs="1" maxOccurs="1" nillable="false"/>
        </xsd:sequence>
    </xsd:complexType>
    <!-- *** -->
    

</xsd:schema>
