<?xml version="1.0" standalone="yes"?>
<xs:schema elementFormDefault="qualified" version="1.0" targetNamespace="http://mobikat.net/service/streetNetwork/computations/types" xmlns:tns="http://mobikat.net/service/streetNetwork/computations/types" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ns1="http://mobikat.net/service/common/types">

  <xs:import namespace="http://mobikat.net/service/common/types" schemaLocation="http://routing.mobikat.net/rest/computations/calculateRoute/schema/out?file=schema2.xsd"/>

  <xs:element name="RouteResponse" type="tns:RouteResponse"/>

  <xs:complexType name="RouteResponse">
    <xs:complexContent>
      <xs:extension base="ns1:ResponseBase">
        <xs:sequence>
          <xs:element name="route" type="tns:Route"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Route">
    <xs:sequence>
      <xs:element name="duration" type="xs:double"/>
      <xs:element name="length" type="xs:double"/>
      <xs:element name="routeCoordinatesWkt" type="xs:string" minOccurs="0"/>
      <xs:element name="descriptionList" type="xs:string" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="structuredDescriptionList" type="tns:RouteDescribtionElement" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="streetSectionId" type="xs:long" minOccurs="0" maxOccurs="unbounded"/>
      <xs:element name="routeSections" type="tns:RouteSectionElement" minOccurs="0" maxOccurs="unbounded"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="RouteDescribtionElement">
    <xs:sequence>
      <xs:element name="type" type="tns:RouteDescribtionElementType" minOccurs="0"/>
      <xs:element name="counter" type="xs:int" minOccurs="0"/>
      <xs:element name="sourceStreetId" type="xs:long" minOccurs="0"/>
      <xs:element name="destinationStreetId" type="xs:long" minOccurs="0"/>
      <xs:element name="sourceStreetName" type="xs:string" minOccurs="0"/>
      <xs:element name="destinationStreetName" type="xs:string" minOccurs="0"/>
      <xs:element name="position" type="ns1:Position" minOccurs="0"/>
      <xs:element name="length" type="xs:double"/>
      <xs:element name="duration" type="xs:double"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="RouteSectionElement">
    <xs:sequence>
      <xs:element name="streetId" type="xs:long" minOccurs="0"/>
      <xs:element name="position" type="ns1:Position" minOccurs="0"/>
      <xs:element name="lenght" type="xs:double"/>
      <xs:element name="duration" type="xs:double"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="RouteDescribtionElementType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Roundabout"/>
      <xs:enumeration value="StraightOn"/>
      <xs:enumeration value="TurnLeftSlightly"/>
      <xs:enumeration value="TurnLeft"/>
      <xs:enumeration value="TurnLeftSharp"/>
      <xs:enumeration value="TurnRightSlightly"/>
      <xs:enumeration value="TurnRight"/>
      <xs:enumeration value="TurnRightSharp"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

