<?xml version="1.0" encoding="UTF-8"?>
<definitions name="ScudService" targetNamespace="http://%servername%/webservice/rks/wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:tns="http://%servername%/webservice/rks/wsdl" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
    
    <documentation>              
        Обмен информацией в рамках эмуляции системы Региональный контингент
    </documentation>    
    
    <types>
        <xs:schema targetNamespace="http://%servername%/webservice/rks/wsdl" xmlns:tns="http://%servername%/webservice/rks/wsdl">
            
            <xs:element name="login">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:pattern value="[a-zA-Z0-9\-_]{4,}"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            
            <xs:element name="password">
                <xs:simpleType>
                    <xs:restriction base="xs:string">
                        <xs:pattern value="[a-zA-Z0-9]{6,}"/>
                    </xs:restriction>
                </xs:simpleType>
            </xs:element>
            
            <xs:complexType name="personRecord">
                <xs:sequence>
                    <xs:element name="org_id" type="xs:string" minOccurs="1" maxOccurs="1"/>
                    <xs:element name="person_id" type="xs:string" minOccurs="1" maxOccurs="1"/>
                    <xs:element name="name_last" type="xs:string" minOccurs="1" maxOccurs="1"/>
                    <xs:element name="name_first" type="xs:string" minOccurs="1" maxOccurs="1"/>
                    <xs:element name="name_mid" type="xs:string" maxOccurs="1"/>
                    <xs:element name="birth_date" type="xs:date" minOccurs="1" maxOccurs="1"/>
                    <xs:element name="snils" type="xs:string" maxOccurs="1"/>
                    <xs:element name="inn" type="xs:string" maxOccurs="1"/>
                </xs:sequence>
            </xs:complexType>
                     
            <xs:element name="personsList">
                <xs:annotation>
                    <xs:documentation>
                        Список персон для индентификации
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:all>
                        <xs:element name="person" type="tns:personRecord" minOccurs="1"/>
                    </xs:all>
                </xs:complexType>
            </xs:element>

            <xs:complexType name="personReply">
                <xs:sequence>
                    <xs:element name="org_id" type="xs:string" minOccurs="1" maxOccurs="1"/>
                    <xs:element name="person_id" type="xs:string" minOccurs="1" maxOccurs="1"/>
                </xs:sequence>
            </xs:complexType>
            
            <xs:element name="response">
                <xs:annotation>
                    <xs:documentation>
                        Результат обработки запроса
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:all>
                        <xs:element name="person" type="tns:personReply" minOccurs="1"/>
                    </xs:all>
                </xs:complexType>
            </xs:element>
            
        </xs:schema>
    </types>
    
    <message name="pushDataRequest">
        <part name="data" element="tns:personsList"/>
    </message>
    
    <message name="pushResponse">
        <part name="response" element="tns:response"/>
    </message>
    
    <message name="packageHeader">
        <part name="login" element="tns:login"/>
        <part name="password" element="tns:password"/>
    </message>
    
    <portType name="pushDataPort">
        <documentation>
            Передача информации и входе-выходе учеников
        </documentation>
        <operation name="find">
            <input message="tns:pushDataRequest"/>
            <output message="tns:pushResponse"/>
        </operation>
    </portType>
    
    <binding name="pushDataBinding" type="tns:pushDataPort">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
        <operation name="find">
            <soap:operation soapAction="find"/>
            <input>
                <soap:header message="tns:packageHeader" part="login" use="literal"/>
                <soap:header message="tns:packageHeader" part="password" use="literal"/>
                <soap:body use="literal"/>
            </input>
            <output>
                <soap:body use="literal"/>
            </output>
        </operation>
    </binding>
    <service name="DataWebService">
        <documentation>Служба обмена данными в рамках эмуляции Региональный контингент</documentation>
        <port name="pushDataPort" binding="tns:pushDataBinding">
            <soap:address location="http://%servername%/webservice/rks/execute"/>
        </port>
    </service>
    
</definitions>