﻿<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified"
           xmlns:vc="http://www.w3.org/2007/XMLSchema-versioning" vc:minVersion="1.1">
    <xs:element name="RESPONSE" type="ApiDocumentListByIdXmlType"/>
    <xs:complexType name="ApiDocumentListByIdXmlType">
        <xs:complexContent>
            <xs:extension base="apiBaseResponse">
                <xs:sequence>
                    <xs:element name="ARTICLES" minOccurs="0">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="ARTICLE" type="apiArticle" minOccurs="0" maxOccurs="unbounded"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                    <xs:element name="CONTRACTORS" minOccurs="0">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="CONTRACTOR" type="apiContractor" minOccurs="0" maxOccurs="unbounded"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                    <xs:element name="DOCUMENTS" minOccurs="0">
                        <xs:complexType>
                            <xs:sequence>
                                <xs:element name="DOCUMENT" type="apiDocumentDocument" minOccurs="0" maxOccurs="300"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>

    <xs:complexType name="apiArticle">
        <xs:all>
            <xs:element name="ARTICLE_ID" type="xs:long" minOccurs="0"/>
            <xs:element name="ARTICLE_PROGRAM_ID" type="xs:string" minOccurs="0"/>
            <xs:element name="CODE" type="xs:string"/>
            <xs:element name="NAME" type="xs:string"/>
            <xs:element name="UNIT" type="xs:string" minOccurs="0"/>
            <xs:element name="PKWIU" type="xs:string" minOccurs="0"/>
            <xs:element name="FOR_INVOICES" type="xs:boolean" minOccurs="0"/>
            <xs:element name="FOR_DOCUMENTS" type="xs:boolean" minOccurs="0"/>
            <xs:element name="FOREIGN_CODES" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="FOREIGN_CODE" type="apiArticleForeignCode" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="PROGRAM_PARAMETERS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:any processContents="skip" namespace="##any" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="apiArticleForeignCode">
        <xs:all>
            <xs:element name="CONTRACTOR_SHORT_NAME" type="xs:string" minOccurs="0"/>
            <xs:element name="CODE" type="xs:string" minOccurs="0"/>
        </xs:all>
    </xs:complexType>
    <xs:complexType name="apiContractor">
        <xs:sequence>
            <xs:element name="CONTRACTOR_ID" type="xs:long"/>
            <xs:element name="CONTRACTOR_PROGRAM_ID" type="xs:string" minOccurs="0"/>
            <xs:element name="SHORT_NAME" type="xs:string"/>
            <xs:element name="FULL_NAME" type="xs:string"/>
            <xs:element name="SUPPLIER" type="xs:boolean" minOccurs="0"/>
            <xs:element name="CUSTOMER" type="xs:boolean" minOccurs="0"/>
            <xs:element name="VAT_NUMBER" type="xs:string" minOccurs="0"/>
            <xs:element name="CITY" type="xs:string"/>
            <xs:element name="POSTCODE" type="xs:string"/>
            <xs:element name="STREET" type="xs:string"/>
            <xs:element name="COUNTRY_ISO3166A2" type="xs:string" minOccurs="0"/>
            <xs:element name="TELEPHONE" type="xs:string" minOccurs="0"/>
            <xs:element name="CONTACT_PERSON" type="xs:string" minOccurs="0"/>
            <xs:element name="DESCRIPTION" type="xs:string" minOccurs="0"/>
            <xs:element name="PAYMENT_DAYS" type="xs:int" minOccurs="0"/>
            <xs:element name="BANK_ACCOUNTS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="BANK_ACCOUNT" type="apiBankAccount" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="EMAILS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="EMAIL" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="PROGRAM_PARAMETERS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:any processContents="skip" namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="INACTIVE" type="xs:boolean" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="apiBankAccount">
        <xs:sequence>
            <xs:element name="NAME" type="xs:string" minOccurs="0"/>
            <xs:element name="NUMBER" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="apiKsef">
        <xs:sequence>
            <xs:element name="NUMBER" type="xs:string" />
            <xs:element name="NUMBER_CREATE_DATE" type="xs:string" />
            <xs:element name="RECEIVED_BY_USER_ID" type="xs:long" />
            <xs:element name="RECEIVED_DATE" type="xs:string" />
            <xs:element name="PREVIEW_SOURCE" type="xs:string" />
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="apiDocumentDocument">
        <xs:sequence>
            <xs:element name="DOCUMENT_ID" type="xs:long"/>
            <xs:element name="NUMBER" type="xs:string" minOccurs="0"/>
            <xs:element name="ISSUE_DATE" type="xs:string" minOccurs="0"/>
            <xs:element name="SALE_DATE" type="xs:string" minOccurs="0"/>
            <xs:element name="PAYMENT_DATE" type="xs:string" minOccurs="0"/>
            <xs:element name="RECEIVE_DATE" type="xs:string" minOccurs="0"/>
            <xs:element name="DOCUMENT_TYPE" type="apiDocumentType" minOccurs="0"/>
            <xs:element name="CLASSIFICATION" type="apiDocumentClassification" minOccurs="0"/>
            <xs:element name="IS_CORRECTIVE" type="xs:boolean" minOccurs="0"/>
            <xs:element name="CORR_INV_NUM" type="xs:string" minOccurs="0"/>
            <xs:element name="CORR_INV_DATE" type="xs:string" minOccurs="0"/>
            <xs:element name="IS_CASH_BASIS" type="xs:boolean" minOccurs="0"/>
            <xs:element name="CONTRACTOR" type="apiDocumentContractor" minOccurs="0"/>
            <xs:element name="BANK_ACCOUNTS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="BANK_ACCOUNT" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="CATEGORY" type="xs:string" minOccurs="0"/>
            <xs:element name="DESCRIPTION" type="xs:string" minOccurs="0"/>
            <xs:element name="REGISTRY" type="xs:string" minOccurs="0"/>
            <xs:element name="FOLDER" type="apiFolder" minOccurs="0"/>
            <xs:element name="SUM" type="xs:decimal" minOccurs="0"/>
            <xs:element name="NAV_VAT_PROD" type="xs:string" minOccurs="0"/>
            <xs:element name="VAT_REGISTRIES" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="VAT_REGISTRY" type="apiVatRegistry" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="ITEMS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="ITEM" type="apiItem" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="CURRENCY_ISO4217" type="xs:string" minOccurs="0"/>
            <xs:element name="PAYMENT_TYPE" type="apiPaymentType" minOccurs="0"/>
            <xs:element name="STAGE" type="xs:string" minOccurs="0"/>
            <xs:element name="EXPORTED" type="xs:string" minOccurs="0"/>
            <xs:element name="ARCHIVIZATION_DATE" type="xs:string" minOccurs="0"/>
            <xs:element name="SOURCE" type="xs:string" minOccurs="0"/>
            <xs:element name="PAGE_COUNT" type="xs:long" minOccurs="0"/>
            <xs:element name="PROGRAM_PARAMETERS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:any processContents="skip" namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="PREVIEWS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="PREVIEW_URL" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="LANG_ISO639_1" type="apiLangIso6391" minOccurs="0"/>
            <xs:element name="REGISTRATION_NUMBERS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="REGISTRATION_NUMBER" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="DIMENSIONS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="DIMENSION" type="apiDocumentDimension" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="SALDEO_SYNC_DOCUMENTS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="SALDEO_SYNC_DOCUMENT" type="apiDocumentDocumentSync" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="SUBJECT" type="xs:string" minOccurs="0"/>
            <xs:element name="ATTACHMENTS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="ATTACHMENT" type="apiDocumentAttachment" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="DOCUMENT_ITEMS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="DOCUMENT_ITEM" type="apiDocumentItem" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="SEND_BY_USER" type="xs:string" minOccurs="0" />
            <xs:element name="IS_DOCUMENT_PAID" type="xs:boolean" minOccurs="0" />
            <xs:element name="IS_DOCUMENT_BELONG_TO_COMPANY" type="xs:boolean" minOccurs="0" />
            <xs:element name="IS_MPP" type="xs:boolean" minOccurs="0" />
            <xs:element name="JPK_CODES" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="JPK_CODE" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="KSEF" type="apiKsef" minOccurs="0" />
            <xs:element name="ADDED_BY_USER_ID" type="xs:long" minOccurs="0" />
            <xs:element name="ADDED_BY_USER" type="xs:string" minOccurs="0" />
            <xs:element name="CREATE_SOURCE" type="xs:string" minOccurs="0" />
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="apiDocumentType">
        <xs:sequence>
            <xs:element name="ID" type="xs:long" minOccurs="0"/>
            <xs:element name="NAME" type="xs:string" minOccurs="0"/>
            <xs:element name="SHORT_NAME" type="xs:string" minOccurs="0"/>
            <xs:element name="TYPE" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="apiDocumentContractor">
        <xs:sequence>
            <xs:element name="CONTRACTOR_ID" type="xs:string" minOccurs="0"/>
            <xs:element name="CONTRACTOR_PROGRAM_ID" type="xs:string" minOccurs="0"/>
            <xs:element name="NIP" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="apiFolder">
        <xs:sequence>
            <xs:element name="YEAR" type="xs:int"/>
            <xs:element name="MONTH" type="xs:int"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="apiVatRegistry">
        <xs:sequence>
            <xs:element name="RATE" type="xs:string" minOccurs="0"/>
            <xs:element name="NETTO" type="xs:decimal" minOccurs="0"/>
            <xs:element name="VAT" type="xs:decimal" minOccurs="0"/>
            <xs:element name="NAV_VAT_PROD" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="apiItem">
        <xs:sequence>
            <xs:element name="EXTRACTION" type="xs:boolean" minOccurs="0"/>
            <xs:element name="RATE" type="xs:string" minOccurs="0"/>
            <xs:element name="NETTO" type="xs:decimal" minOccurs="0"/>
            <xs:element name="VAT" type="xs:decimal" minOccurs="0"/>
            <xs:element name="CATEGORY" type="xs:string" minOccurs="0"/>
            <xs:element name="DESCRIPTION" type="xs:string" minOccurs="0"/>
            <xs:element name="NAV_VAT_PROD" type="xs:string" minOccurs="0"/>
            <xs:element name="PROGRAM_PARAMETERS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:any processContents="skip" namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="DIMENSIONS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="DIMENSION" type="apiDocumentDimension" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="REGISTRY" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="apiDocumentItem">
        <xs:sequence>
            <xs:element name="ARTICLE_ID" type="xs:long" minOccurs="0"/>
            <xs:element name="CODE" type="xs:string" minOccurs="0"/>
            <xs:element name="NAME" type="xs:string" minOccurs="0"/>
            <xs:element name="AMOUNT" type="xs:decimal" minOccurs="0"/>
            <xs:element name="UNIT" type="xs:string" minOccurs="0"/>
            <xs:element name="RATE" type="xs:string" minOccurs="0"/>
            <xs:element name="UNIT_VALUE" type="xs:decimal" minOccurs="0"/>
            <xs:element name="NETTO" type="xs:decimal" minOccurs="0"/>
            <xs:element name="VAT" type="xs:decimal" minOccurs="0"/>
            <xs:element name="GROSS" type="xs:decimal" minOccurs="0"/>
            <xs:element name="CATEGORY" type="xs:string" minOccurs="0"/>
            <xs:element name="DESCRIPTION" type="xs:string" minOccurs="0"/>
            <xs:element name="PROGRAM_PARAMETERS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:any processContents="skip" namespace="##other" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="DIMENSIONS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="DIMENSION" type="apiDocumentDimension" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
            <xs:element name="REGISTRY" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="apiDocumentDimension">
        <xs:sequence>
            <xs:element name="CODE" type="xs:string"/>
            <xs:element name="NAME" type="xs:string" minOccurs="0"/>
            <xs:element name="TYPE" type="apiDimensionType"/>
            <xs:element name="ADDITIONAL_CODE" type="xs:string" minOccurs="0"/>
            <xs:element name="DIMENSION_VALUES" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="DIMENSION_VALUE" type="apiDocumentDimensionValue" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="apiDocumentDimensionValue">
        <xs:sequence>
            <xs:element name="VALUE" type="xs:string" minOccurs="0"/>
            <xs:element name="CODE" type="xs:string" minOccurs="0"/>
            <xs:element name="DESCRIPTION" type="xs:string" minOccurs="0"/>
            <xs:element name="PROGRAM_ID" type="xs:string" minOccurs="0"/>
            <xs:element name="ADDITIONAL_CODE" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="apiDocumentDocumentSync">
        <xs:sequence>
            <xs:element name="ACCOUNT_DOCUMENT_NUMBER" type="xs:string"/>
            <xs:element name="DESCRIPTION" type="xs:string" minOccurs="0"/>
            <xs:element name="DOCUMENT_STATUS" type="apiDocumentDocumentSyncStatus" minOccurs="0"/>
            <xs:element name="GUID" type="xs:string"/>
            <xs:element name="ID" type="xs:long"/>
            <xs:element name="NUMBERING_TYPE" type="xs:string"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="apiDocumentAttachment">
        <xs:sequence>
            <xs:element name="ATTACHMENT_ID" type="xs:long"/>
            <xs:element name="CREATE_DATE" type="xs:dateTime"/>
            <xs:element name="DESCRIPTION" type="xs:string" minOccurs="0"/>
            <xs:element name="FILENAME" type="xs:string"/>
            <xs:element name="SOURCE" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="apiMetaInf">
        <xs:sequence>
            <xs:element name="PRODUCER" type="xs:string" minOccurs="0"/>
            <xs:element name="TIMESTAMP" type="xs:dateTime" minOccurs="0"/>
            <xs:element name="OPERATION" type="xs:string" minOccurs="0"/>
            <xs:element name="VERSION" type="xs:string" minOccurs="0"/>
            <xs:element name="PARAMETERS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="PARAMETER" type="apiMetaInfParameter" minOccurs="0" maxOccurs="unbounded"/>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>

    <xs:complexType name="apiMetaInfParameter">
        <xs:sequence>
            <xs:element name="NAME" type="xs:string" minOccurs="0"/>
            <xs:element name="VALUE" type="xs:string" minOccurs="0"/>
        </xs:sequence>
    </xs:complexType>

    <xs:simpleType name="apiDocumentClassification">
        <xs:restriction base="xs:string">
            <xs:enumeration value="INVOICE"/>
            <xs:enumeration value="SIMPLE_INVOICE"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="apiDimensionType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="ENUM"/>
            <xs:enumeration value="NUM"/>
            <xs:enumeration value="LONG_NUM"/>
            <xs:enumeration value="DATE"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="apiPaymentType">
        <xs:restriction base="xs:string">
            <xs:enumeration value="CASH"/>
            <xs:enumeration value="CARD"/>
            <xs:enumeration value="TRANSFER"/>
            <xs:enumeration value="COMPENSATION"/>
            <xs:enumeration value="PREPAYMENT"/>
            <xs:enumeration value="CASH_ON_DELIVERY"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="apiLangIso6391">
        <xs:restriction base="xs:string">
            <xs:enumeration value="EN"/>
            <xs:enumeration value="DE"/>
            <xs:enumeration value="IT"/>
            <xs:enumeration value="PL"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="apiDocumentDocumentSyncStatus">
        <xs:restriction base="xs:string">
            <xs:enumeration value="BUFFER"/>
            <xs:enumeration value="INTRODUCED"/>
            <xs:enumeration value="BOOKED"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:simpleType name="apiResponseStatus">
        <xs:restriction base="xs:string">
            <xs:enumeration value="OK"/>
            <xs:enumeration value="ERROR"/>
        </xs:restriction>
    </xs:simpleType>

    <xs:complexType name="apiBaseResponse">
        <xs:sequence>
            <xs:element name="METAINF" type="apiMetaInf" minOccurs="0"/>
            <xs:element name="STATUS" type="apiResponseStatus" minOccurs="0"/>
            <xs:element name="ERROR_CODE" type="xs:string" minOccurs="0"/>
            <xs:element name="ERROR_MESSAGE" type="xs:string" minOccurs="0"/>
            <xs:element name="ERRORS" minOccurs="0">
                <xs:complexType>
                    <xs:sequence>
                        <xs:element name="ERROR" minOccurs="0" maxOccurs="unbounded">
                            <xs:complexType>
                                <xs:sequence>
                                    <xs:element name="PATH" type="xs:string" minOccurs="0"/>
                                    <xs:element name="MESSAGE" type="xs:string" minOccurs="0"/>
                                </xs:sequence>
                            </xs:complexType>
                        </xs:element>
                    </xs:sequence>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
    </xs:complexType>
</xs:schema>