<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
    <xs:element name="Documents">
        <xs:complexType>
            <xs:sequence>
                <xs:element ref="Document" maxOccurs="unbounded"/>
                <xs:element ref="Totals" minOccurs="0"/>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Document">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="Method" type="String255">
                    <xs:annotation>
                        <xs:documentation>Указываем метод АПИ для соаздния документа
                            (createDocument, createSignedTitulBySeller, createSignedReceiptDocument,
                            createSignedUvutochDocument, createSignedTitulByBuyer). Пакетна отправка
                            данных - просто обертка для массива запрсоов. </xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="DocumentType" type="String255">
                    <xs:annotation>
                        <xs:documentation>edi_documents.type</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="VersionFormat" type="String255" minOccurs="0" >
                    <xs:annotation>
                        <xs:documentation>Версия формата. '5.01'/'5.01-N'/'5.02' если document_type=EDI_FNS_UPD_P1, '5.01'/'5.02' если document_type=EDI_FNS_UKD_P1 в остальных случаях заполняться не должен</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Renouncement"  type="xs:boolean" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>указывается только для метода createSignedUvutochDocument, означает что выполняется откз в подписи документа, ответный DP_IZVPOL в таком случае не формируется</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="SednerILN" type="ILN">
                    <xs:annotation>
                        <xs:documentation>edi_documents.fromorg_id</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ReceiverILN" type="ILN">
                    <xs:annotation>
                        <xs:documentation>edi_documents.toorg_id</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="FileName" type="String255">
                    <xs:annotation>
                        <xs:documentation>Имя файла документа находящегося в ZIP архиве
                            пакета</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="Number" type="String255">
                    <xs:annotation>
                        <xs:documentation>edi_documents.number</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="DocFlowType" type="String255" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>бизнес процесс документа, аналог поля doc_flow_type из ТП
                            ЕХД</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="DocDate" type="Date" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>edi_documents.doctime</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="ReceiverSignatureExpected" type="xs:boolean" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>означает что трубется подпись получателя. Возможно
                            параметр избыточене, надо проверить обрабочтик лбого документа типа
                            ДСФ</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="SingCount" type="xs:int" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Количество подписией отправителя, нужно для отправки
                            документа. Возможно параметр избыточен, надо проверить обрабочтик любого
                            EDI_FNS_UPD</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element name="DocFlowID" type="UUID" minOccurs="0">
                    <xs:annotation>
                        <xs:documentation>Значеине для сохранения в бизнес атрибут
                            edi_document_flow_ids, должно соответствовать правилу валидации  [a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}  </xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:element name="Totals">
        <xs:complexType>
            <xs:sequence>
                <xs:element name="TotalCount" type="xs:int">
                    <xs:annotation>
                        <xs:documentation>Общее количество отправялемых
                            документов</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
        </xs:complexType>
    </xs:element>
    <xs:simpleType name="Date">
        <xs:restriction base="xs:date">
            <xs:pattern value="[0-9]{4}-[0-9]{2}-[0-9]{2}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DateTime">
        <xs:restriction base="xs:string">
            <xs:pattern
                value="[0-9]{4}-[0-9]{2}-[0-9]{2}\s[0-9]{2}:[0-9]{2}:[0-9]{2}\.([0-9]{3}|[0-9]{2})"
            />
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="String255">
        <xs:restriction base="xs:string">
            <xs:maxLength value="255"/>
            <xs:minLength value="0"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ILN">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9]{13}"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="UUID">
        <xs:restriction base="xs:string">
            <xs:pattern
                value="([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12})|(\{[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\})"
            />
        </xs:restriction>
    </xs:simpleType>
</xs:schema>
