Мне нужно выполнять запросы в информационную систему по SOAP. Есть руководство программиста с описанием xml-запросов, но там описаны не все запросы. Часть запросов задекларирована и говорится, что описание запросов находится в xsd-схемах. Мне прислали эти схемы, но я не знаю, как ими пользоваться. Вот wsdl-описание сервиса: Код | <?xml version="1.0"?> <definitions xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:xs="http://www.w3.org/2001/XMLSchema" name="IEtranSysservice" targetNamespace="http://tempuri.org/" xmlns:tns="http://tempuri.org/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:ns1="urn:SysEtranIntf"> <types> <xsd:schema targetNamespace="EtranFiledCars.xsd" xmlns:EtranFiledCars="EtranFiledCars.xsd" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <xsd:include schemaLocation="schemas/EtranFiledCars.xsd"/> </xsd:schema> </types> <message name="SendBlockRequest"> <part name="Text" type="xs:string"/> </message> <message name="SendBlockResponse"> <part name="return" type="xs:boolean"/> </message> <message name="GetBlockRequest"> <part name="Login" type="xs:string"/> <part name="Password" type="xs:string"/> <part name="Text" type="xs:string"/> </message> <message name="GetBlockResponse"> <part name="Text" type="xs:string"/> <part name="return" type="xs:boolean"/> </message> <portType name="IEtranSys"> <operation name="SendBlock"> <input message="tns:SendBlockRequest"/> <output message="tns:SendBlockResponse"/> </operation> <operation name="GetBlock"> <input message="tns:GetBlockRequest"/> <output message="tns:GetBlockResponse"/> </operation> </portType> <binding name="IEtranSysbinding" type="tns:IEtranSys"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="SendBlock"> <soap:operation soapAction="urn:SysEtranInt" style="rpc"/> <input> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="SysEtranInt"/> </input> <output> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="SysEtranInt"/> </output> </operation> <operation name="GetBlock"> <soap:operation soapAction="urn:SysEtranInt" style="rpc"/> <input> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="SysEtranInt"/> </input> <output> <soap:body use="encoded" encodingStyle="http://schemas.xmlsoap.org/soap/encoding/" namespace="SysEtranInt"/> </output> </operation> </binding> <service name="IEtranSysservice"> <port name="IEtranSysPort" binding="tns:IEtranSysbinding"> <soap:address location="http://10.248.35.14:8092/EtranServer/EtranLR.dll/soap"/> </port> </service> </definitions>
|
И вот xsd-схема из файла: Код | <?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" xmlns:ecat="http://intellex.ru/Etran/ASUASU/Categories"> <xs:import namespace="http://intellex.ru/Etran/ASUASU/Categories" schemaLocation="EtranCategories.xsd"/> <xs:include schemaLocation="EtranCommonMessages.xsd"/> <xs:annotation> <xs:documentation>Сообщения информационного обмена АС Этран - внешнее АСУ. Информация о наличии/отсутствии заготовок накладных на порожние собственные вагоны поданные, но не убранные с пути необщего пользования.</xs:documentation> </xs:annotation> <xs:element name="invoiceFiledCars"> <xs:annotation> <xs:documentation>Запрос справки о наличии/отсутствии заготовок накладных на порожние собственные вагоны поданные, но не убранные с пути необщего пользования. Поиск данных осуществляется за период 60 дней. В ответ АС Этран возвращает invoiceFiledCarsReply </xs:documentation> </xs:annotation> </xs:element> <xs:element name="invoiceFiledCarsReply"> <xs:annotation> <xs:documentation>Список заготовок накладных на порожние собственные вагоны поданные, но не убранные с пути необщего пользования. В ответе передается список порожних вагонов с накладными на порожняк, если они есть (только в состояниях "Приемосдатчиком принято" и "Согласование уведомления"). Ответ на запрос invoiceFiledCars. </xs:documentation> </xs:annotation> <xs:complexType> <xs:complexContent> <xs:extension base="SimpleAnswer"> <xs:sequence> <xs:element ref="invoiceFiledCar" minOccurs="0" maxOccurs="unbounded"> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="invoiceFiledCar"> <xs:annotation> <xs:documentation> Накладная на поданный собственный порожний вагон</xs:documentation> </xs:annotation> <xs:complexType> <xs:sequence> <xs:element name="Document" type="SimpleDocument" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>Электронный документ на поданный собственный порожний вагон.</xs:documentation> </xs:annotation> </xs:element> <xs:element name="FiledCarDate" type="ecat:DateTimeType" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Дата подачи на путь необщего пользования</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Car" type="TCar" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Поданный собственный порожний вагон</xs:documentation> </xs:annotation> </xs:element> <xs:element name="Station" type="TStation" minOccurs="1" maxOccurs="1"> <xs:annotation> <xs:documentation>Станция подачи</xs:documentation> </xs:annotation> </xs:element> <xs:element name="ToStation" type="TStation" minOccurs="0" maxOccurs="1"> <xs:annotation> <xs:documentation>Станция назначения</xs:documentation> </xs:annotation> </xs:element> </xs:sequence> </xs:complexType> </xs:element> </xs:schema>
|
Что, куда и как подключить? Язык - python.
|