<?xml version="1.0" encoding="UTF-8"?>
<definitions name="ScudService" targetNamespace="http://%servername%/webservice/food_benefits/wsdl" xmlns="http://schemas.xmlsoap.org/wsdl/" 
    xmlns:tns="http://%servername%/webservice/food_benefits/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/food_benefits/wsdl" xmlns:tns="http://%servername%/webservice/food_benefits/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="benefit">
                <xs:annotation>
                    <xs:documentation>
			code - код льготы
			adate - дата начала действия льготы
			bdate - дата окончания действия льготы
                    </xs:documentation>
                </xs:annotation>
                <xs:sequence>
			<xs:element name="code" type="xs:string"/>
			<xs:element name="adate" type="xs:date"/>
			<xs:element name="bdate" type="xs:date"/>
                </xs:sequence>
            </xs:complexType>
            
            <xs:complexType name="pupil">
                <xs:annotation>
                    <xs:documentation>
			suid - ID ученика (bigint64)
			class - передается строковое имя класса (номер параллели, пробел, суффикс); для сотрудников передается СОТР; для сопровождающих передается РДТЛ
                        dob - дата рождения
                    </xs:documentation>
                </xs:annotation>
                <xs:sequence>
			<xs:element name="suid" type="xs:string" minOccurs="1" maxOccurs="1"/>
			<xs:element name="name" type="xs:string" minOccurs="1" maxOccurs="1"/>
			<xs:element name="surname" type="xs:string"/>
			<xs:element name="patronymic" type="xs:string"/>
			<xs:element name="class" type="xs:string" minOccurs="1" maxOccurs="1"/>
			<xs:element name="dob" type="xs:date"/>
                </xs:sequence>
            </xs:complexType>
                     
            <xs:element name="pupilsList">
                <xs:annotation>
                    <xs:documentation>
                        Список учащихся
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:all>
                        <xs:element name="pupil" type="tns:pupil" minOccurs="1"/>
                    </xs:all>
                </xs:complexType>
            </xs:element>

            <xs:complexType name="school">
                <xs:annotation>
                    <xs:documentation>
			Атрибут id заполните любым значением
                    </xs:documentation>
                </xs:annotation>
		<xs:attribute name="id" type="xs:string" minOccurs="1" maxOccurs="1"/>
            </xs:complexType>
            
            <xs:element name="query">
                <xs:annotation>
                    <xs:documentation>
                        Идентификатор школы
                    </xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:all>
                        <xs:element name="school" type="tns:school" minOccurs="1" maxOccurs="1"/>
                    </xs:all>
                </xs:complexType>
            </xs:element>
            
        </xs:schema>
    </types>
    
    <message name="pushDataRequest">
        <part name="query" element="tns:query"/>
    </message>
    
    <message name="pushResponse">
        <part name="login" element="tns:login"/>
        <part name="password" element="tns:password"/>
	<part name="school" element="xs:string"/>
        <part name="result" element="tns:pupilsList"/>
    </message>
    
    <message name="packageHeader">
        <part name="login" element="tns:login"/>
        <part name="password" element="tns:password"/>
    </message>
    
    <portType name="queryPersonPort">
        <documentation>
            Запрос информации о льготах на питание
        </documentation>
        <operation name="pushData">
            <input message="tns:pushDataRequest"/>
            <output message="tns:pushResponse"/>
        </operation>
    </portType>
    
    <binding name="queryPersonBinding" type="tns:queryPersonPort">
        <soap:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
        <operation name="pushData">
            <soap:operation soapAction=""/>
            <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="PersonWebService">
        <documentation>Служба данных о льготах питания</documentation>
        <port name="queryPersonPort" binding="tns:queryPersonBinding">
            <soap:address location="http://%servername%/webservice/food_benefits/execute"/>
        </port>
    </service>    
    
</definitions>
