<?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= "16" />
<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:complexType name= "TicketFare" >
<xs:sequence >
<xs:element name= "ticketId" type= "IDType" minOccurs= "1" />
<xs:element name= "fare" type= "xs:decimal" 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:element name= "Agent" type= "Agent" minOccurs= "0" />
</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:element name= "Agent" type= "Agent" minOccurs= "0" />
</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:element name= "TicketFare" maxOccurs= "unbounded" type= "TicketFare" />
</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:element name= "GetFreeSeatsRequest" >
<xs:complexType >
<xs:choice >
<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:choice>
</xs:complexType>
</xs:element>
<xs:element name= "GetFreeSeatsResponse" >
<xs:complexType >
<xs:complexContent >
<xs:extension base= "AbstractResponse" >
<xs:sequence >
<xs:element name= "Body" >
<xs:complexType >
<xs:choice >
<xs:element name= "Seat" type= "Seat" maxOccurs= "unbounded" />
</xs:choice>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:schema>