<?xml version="1.0" encoding="UTF-8" ?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:c="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" attributeFormDefault="qualified"> <xs:simpleType name="IDType"> <xs:restriction base="xs:string"> <xs:maxLength value="36"/> <xs:minLength value="1"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="NameType"> <xs:restriction base="xs:string"> <xs:maxLength value="100"/> <xs:minLength value="1"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="OkatoType"> <xs:restriction base="xs:string"> <xs:length value="11"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="InnType"> <xs:restriction base="xs:string"> <xs:maxLength value="12"/> <xs:minLength value="10"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="SimpleStringType"> <xs:restriction base="xs:string"> <xs:maxLength value="100"/> <xs:minLength value="0"/> </xs:restriction> </xs:simpleType> <xs:complexType name="AbstractResponse"> <xs:sequence> <xs:element name="Error" minOccurs="0"> <xs:complexType> <xs:sequence> <xs:element name="code" type="xs:string" minOccurs="1"/> <xs:element name="message" type="xs:string" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:complexType> <xs:simpleType name="UidType"> <xs:restriction base="xs:string"> <xs:length value="36"/> </xs:restriction> </xs:simpleType> <xs:complexType name="RouteKey"> <xs:sequence> <xs:element name="dispatchStationUid" type="UidType"/> <xs:element name="arrivalStationUid" type="UidType"/> <xs:element name="dispatchTime" type="xs:time"/> </xs:sequence> </xs:complexType> <xs:complexType name="Agent"> <xs:sequence> <xs:element name="name" type="NameType" minOccurs="0"/> <xs:element name="inn" type="InnType" minOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType name="Station"> <xs:sequence> <xs:element name="id" type="IDType" minOccurs="1"/> <xs:element name="name" type="NameType" minOccurs="1"/> <xs:element name="okato" type="OkatoType" minOccurs="0"/> <xs:element name="region" type="SimpleStringType" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:simpleType name="TripType"> <xs:restriction base="xs:string"> <xs:enumeration value="INTERNATIONAL"/> <xs:enumeration value="INTERREGIONAL"/> <xs:enumeration value="ADJACENT_INTERREGIONAL"/> <xs:enumeration value="INTERMUNICIPAL"/> <xs:enumeration value="MUNICIPAL"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="TripStatus"> <xs:restriction base="xs:string"> <xs:enumeration value="ON_SALE"/> <xs:enumeration value="SUSPENDED"/> <xs:enumeration value="CANCELED"/> <xs:enumeration value="DISPATCHED"/> <xs:enumeration value="UNKNOWN"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="TripClass"> <xs:restriction base="xs:string"> <xs:enumeration value="REGULAR"/> <xs:enumeration value="CUSTOM"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="TicketClass"> <xs:restriction base="xs:string"> <xs:enumeration value="PASSENGER"/> <xs:enumeration value="BAGGAGE"/> <xs:enumeration value="WITHOUT_SEAT"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="GenderType"> <xs:restriction base="xs:string"> <xs:enumeration value="MALE"/> <xs:enumeration value="FEMALE"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="ErrorCode"> <xs:restriction base="xs:string"> <xs:enumeration value="INTERNAL"/> <xs:enumeration value="NOT_FOUND"/> <xs:enumeration value="SEAT_OCCUPIED"/> <xs:enumeration value="PERSONAL_DATA_INCORRECT"/> </xs:restriction> </xs:simpleType> <xs:simpleType name="TicketStatus"> <xs:restriction base="xs:string"> <xs:enumeration value="RESERVED"/> <xs:enumeration value="SOLD"/> <xs:enumeration value="CANCELED"/> <xs:enumeration value="RETURNED"/> </xs:restriction> </xs:simpleType> <xs:complexType name="Trip"> <xs:sequence> <xs:element name="id" type="IDType" minOccurs="1"/> <xs:element name="name" type="NameType" minOccurs="1"/> <xs:element name="num" type="xs:string" minOccurs="0"/> <xs:element name="dispatchDate" type="xs:dateTime" minOccurs="1"/> <xs:element name="arrivalDate" type="xs:dateTime" minOccurs="1"/> <xs:element name="dispatchStationId" type="IDType" minOccurs="1"/> <xs:element name="dispatchStationName" type="NameType" minOccurs="1"/> <xs:element name="arrivalStationId" type="IDType" minOccurs="1"/> <xs:element name="arrivalStationName" type="NameType" minOccurs="1"/> <xs:element name="price" type="xs:decimal" minOccurs="1"/> <xs:element name="carrierName" type="NameType" minOccurs="0"/> <xs:element name="carrierInn" type="InnType" minOccurs="1"/> <xs:element name="busInfo" type="xs:string" minOccurs="1"/> <xs:element name="platform" type="xs:string" minOccurs="0"/> <xs:element name="type" type="TripType" minOccurs="1"/> <xs:element name="status" type="TripStatus" minOccurs="1"/> <xs:element name="tripClass" type="TripClass" minOccurs="0"/> <xs:element name="seatCount" type="xs:int" minOccurs="1"/> <xs:element name="freeSeatCount" type="xs:int" minOccurs="1"/> <xs:element name="routeKey" type="RouteKey" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="Seat"> <xs:sequence> <xs:element name="id" type="IDType" minOccurs="1"/> <xs:element name="num" type="xs:int" minOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType name="Passenger"> <xs:sequence> <xs:element name="firstName" type="xs:string" minOccurs="1"/> <xs:element name="lastName" type="xs:string" minOccurs="1"/> <xs:element name="middleName" type="xs:string" minOccurs="0"/> <xs:element name="docNum" type="xs:string" minOccurs="0"/> <xs:element name="docSeries" type="xs:string" minOccurs="0"/> <xs:element name="docTypeId" type="IDType" minOccurs="1"/> <xs:element name="birthday" type="xs:date" minOccurs="0"/> <xs:element name="citizenshipISO2" minOccurs="0"> <xs:simpleType> <xs:restriction base="xs:string"> <xs:length value="2"/> </xs:restriction> </xs:simpleType> </xs:element> <xs:element name="gender" type="GenderType" minOccurs="0"/> <xs:element name="phone" type="xs:string" minOccurs="0"/> <xs:element name="info" type="xs:string" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="Sale"> <xs:sequence> <xs:element name="seatId" type="IDType" minOccurs="0"/> <xs:element name="ticketTypeId" type="IDType" minOccurs="1"/> <xs:element name="Passenger" type="Passenger" minOccurs="0"/> </xs:sequence> </xs:complexType> <xs:complexType name="TripStop"> <xs:sequence> <xs:element name="id" type="IDType" minOccurs="1"/> <xs:element name="name" type="NameType" minOccurs="1"/> <xs:element name="regionName" type="NameType" minOccurs="0"/> <xs:element name="dispatchDate" type="xs:dateTime" minOccurs="1"/> <xs:element name="arrivalDate" type="xs:dateTime" minOccurs="1"/> <xs:element name="stopTime" type="xs:int" minOccurs="0"/> <xs:element name="distance" type="xs:int" minOccurs="0"/> <xs:element name="price" type="xs:decimal" minOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType name="TicketType"> <xs:sequence> <xs:element name="id" type="IDType" minOccurs="1"/> <xs:element name="name" type="NameType" minOccurs="1"/> <xs:element name="price" type="xs:decimal" minOccurs="1"/> <xs:element name="ticketClass" type="TicketClass" minOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType name="DocumentType"> <xs:sequence> <xs:element name="id" type="IDType" minOccurs="1"/> <xs:element name="name" type="NameType" minOccurs="1"/> </xs:sequence> </xs:complexType> <xs:complexType name="Ticket"> <xs:sequence> <xs:element name="id" type="IDType" minOccurs="1"/> <xs:element name="number" type="xs:string" minOccurs="0"/> <xs:element name="series" type="xs:string" minOccurs="0"/> <xs:element name="created" type="xs:dateTime" minOccurs="1"/> <xs:element name="returned" type="xs:dateTime" minOccurs="1"/> <xs:element name="status" type="TicketStatus" minOccurs="1"/> <xs:element name="ticketClass" type="TicketClass" minOccurs="1"/> <xs:element name="typeId" type="IDType" minOccurs="1"/> <xs:element name="routeNum" type="xs:string" minOccurs="0"/> <xs:element name="routeName" type="NameType" minOccurs="1"/> <xs:element name="busInfo" type="xs:string" minOccurs="1"/> <xs:element name="carrierName" type="xs:string" minOccurs="0"/> <xs:element name="carrierInn" type="InnType" minOccurs="1"/> <xs:element name="platform" type="xs:string" minOccurs="0"/> <xs:element name="dispatchDate" type="xs:dateTime" minOccurs="1"/> <xs:element name="arrivalDate" type="xs:dateTime" minOccurs="1"/> <xs:element name="dispatchStation" type="xs:string" minOccurs="1"/> <xs:element name="arrivalStation" type="xs:string" minOccurs="1"/> <xs:element name="seatNum" type="xs:int" minOccurs="1"/> <xs:element name="Passenger" type="Passenger" minOccurs="0"/> <xs:element name="fare" type="xs:decimal" minOccurs="1"/> <xs:element name="fees" type="xs:decimal" minOccurs="1"/> <xs:element name="repayment" type="xs:decimal" minOccurs="0"/> <xs:element name="insuranceInfo" type="xs:string" minOccurs="1"/> </xs:sequence> </xs:complexType> <xs:element name="EchoRequest"> <xs:complexType> <xs:sequence> <xs:element name="message" type="xs:string" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="EchoResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="AbstractResponse"> <xs:sequence> <xs:element name="Body"> <xs:complexType> <xs:sequence> <xs:element name="message" minOccurs="1" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="GetDispatchStationsRequest"> <xs:complexType> </xs:complexType> </xs:element> <xs:element name="GetDispatchStationsResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="AbstractResponse"> <xs:sequence> <xs:element name="Body"> <xs:complexType> <xs:sequence> <xs:element name="Station" type="Station" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="GetArrivalStationsRequest"> <xs:complexType> <xs:sequence> <xs:element name="dispatchStationId" type="IDType" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="GetArrivalStationsResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="AbstractResponse"> <xs:sequence> <xs:element name="Body"> <xs:complexType> <xs:sequence> <xs:element name="Station" type="Station" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="SearchTripsRequest"> <xs:complexType> <xs:sequence> <xs:element name="dispatchStationId" type="IDType" minOccurs="1"/> <xs:element name="arrivalStationId" type="IDType" minOccurs="1"/> <xs:element name="date" type="xs:date" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="SearchTripsResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="AbstractResponse"> <xs:sequence> <xs:element name="Body"> <xs:complexType> <xs:sequence> <xs:element name="Trip" type="Trip" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="GetTicketTypesRequest"> <xs:complexType> <xs:sequence> <xs:element name="tripId" type="IDType" minOccurs="1"/> <xs:element name="dispatchStationId" type="IDType" minOccurs="1"/> <xs:element name="arrivalStationId" type="IDType" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="GetTicketTypesResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="AbstractResponse"> <xs:sequence> <xs:element name="Body"> <xs:complexType> <xs:sequence> <xs:element name="TicketType" type="TicketType" maxOccurs="unbounded" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="GetDocumentTypesRequest"> <xs:complexType> <xs:sequence> <xs:element name="tripId" type="IDType" minOccurs="1"/> <xs:element name="dispatchStationId" type="IDType" minOccurs="1"/> <xs:element name="arrivalStationId" type="IDType" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="GetDocumentTypesResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="AbstractResponse"> <xs:sequence> <xs:element name="Body"> <xs:complexType> <xs:sequence> <xs:element name="DocumentType" type="DocumentType" maxOccurs="unbounded" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="GetTripStopsRequest"> <xs:complexType> <xs:sequence> <xs:element name="tripId" type="IDType" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="GetTripStopsResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="AbstractResponse"> <xs:sequence> <xs:element name="Body"> <xs:complexType> <xs:sequence> <xs:element name="Stop" type="TripStop" maxOccurs="unbounded" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="BookOrderRequest"> <xs:complexType> <xs:sequence> <xs:element name="tripId" type="IDType" minOccurs="1"/> <xs:element name="dispatchStationId" type="IDType" minOccurs="1"/> <xs:element name="arrivalStationId" type="IDType" minOccurs="1"/> <xs:element name="Sale" type="Sale" minOccurs="0" maxOccurs="unbounded"/> <xs:element name="Agent" type="Agent" minOccurs="0"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="BookOrderResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="AbstractResponse"> <xs:sequence> <xs:element name="Body"> <xs:complexType> <xs:sequence> <xs:element name="orderId" type="IDType" minOccurs="1"/> <xs:element name="lifetime" type="xs:int" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="GetOrderRequest"> <xs:complexType> <xs:sequence> <xs:element name="orderId" type="IDType" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="GetOrderResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="AbstractResponse"> <xs:sequence> <xs:element name="Body"> <xs:complexType> <xs:sequence> <xs:element name="orderId" type="IDType" minOccurs="1"/> <xs:element name="Ticket" type="Ticket" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="ConfirmOrderRequest"> <xs:complexType> <xs:sequence> <xs:element name="orderId" type="IDType" minOccurs="1"/> <xs:element name="Agent" type="Agent" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ConfirmOrderResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="AbstractResponse"> <xs:sequence> <xs:element name="Body"> <xs:complexType> <xs:sequence> <xs:element name="orderId" type="IDType" minOccurs="1"/> <xs:element name="Ticket" type="Ticket" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="CancelTicketRequest"> <xs:complexType> <xs:sequence> <xs:element name="ticketId" type="IDType" minOccurs="1" maxOccurs="unbounded"/> <xs:element name="Agent" type="Agent" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="CancelTicketResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="AbstractResponse"> <xs:sequence> <xs:element name="Body"> <xs:complexType> <xs:sequence> <xs:element name="Ticket" type="Ticket" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="ReturnTicketRequest"> <xs:complexType> <xs:sequence> <xs:element name="ticketId" type="IDType" minOccurs="1" maxOccurs="unbounded"/> <xs:element name="Agent" type="Agent" minOccurs="1"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="ReturnTicketResponse"> <xs:complexType> <xs:complexContent> <xs:extension base="AbstractResponse"> <xs:sequence> <xs:element name="Body"> <xs:complexType> <xs:sequence> <xs:element name="Ticket" type="Ticket" minOccurs="1" maxOccurs="unbounded"/> </xs:sequence> </xs:complexType> </xs:element> </xs:sequence> </xs:extension> </xs:complexContent> </xs:complexType> </xs:element> <xs:element name="UpdateTicketRequest"> <xs:complexType> <xs:sequence> <xs:element name="ticketId" type="IDType"/> <xs:element name="Passenger" type="Passenger" /> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="UpdateTicketResponse"> <xs:complexType> <xs:complexContent> <xs:restriction base="AbstractResponse"/> </xs:complexContent> </xs:complexType> </xs:element> </xs:schema>