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

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

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

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

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

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

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

  <xs:complexType name="ResponseBase">
    <xs:sequence>
      <xs:element name="requestId" type="xs:string"/>
      <xs:element name="coordSystem" type="xs:string" default="EPSG:4326"/>
      <xs:element name="language" type="xs:string" default="en" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="ResultRequest">
    <xs:sequence>
      <xs:element name="requestId" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="MobikatServiceFault">
    <xs:sequence>
      <xs:element name="requestId" type="xs:string"/>
      <xs:element name="code" type="tns:MobikatServiceFaultCode"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
      <xs:element name="cause" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="AsyncCallFault">
    <xs:sequence>
      <xs:element name="requestId" type="xs:string"/>
      <xs:element name="code" type="tns:AsyncCallFaultCode"/>
      <xs:element name="description" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="RequestBase">
    <xs:sequence>
      <xs:element name="requestId" type="xs:string" minOccurs="0"/>
      <xs:element name="user" type="xs:string" minOccurs="0"/>
      <xs:element name="password" type="xs:string" minOccurs="0"/>
      <xs:element name="coordSystem" type="xs:string" default="EPSG:4326" minOccurs="0"/>
      <xs:element name="outCoordSystem" type="xs:string" default="EPSG:4326" minOccurs="0"/>
      <xs:element name="outLanguage" type="xs:string" default="en" minOccurs="0"/>
      <xs:element name="timeout" type="xs:long" default="10000" minOccurs="0"/>
      <xs:element name="pointInTime" type="xs:dateTime" minOccurs="0"/>
      <xs:element name="resultUrl" type="xs:string" minOccurs="0"/>
      <xs:element name="statusChangedUrl" type="xs:string" minOccurs="0"/>
      <xs:element name="errorUrl" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="RequestDataRequest">
    <xs:sequence>
      <xs:element name="requestId" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="StatusResponse">
    <xs:sequence>
      <xs:element name="requestId" type="xs:string"/>
      <xs:element name="state" type="tns:ProcessingState"/>
      <xs:element name="info" type="xs:string" minOccurs="0"/>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="StatusRequest">
    <xs:sequence>
      <xs:element name="requestId" type="xs:string"/>
    </xs:sequence>
  </xs:complexType>

  <xs:simpleType name="MobikatServiceFaultCode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Internal"/>
      <xs:enumeration value="AccessDenied"/>
      <xs:enumeration value="Timeout"/>
      <xs:enumeration value="OutOfMemory"/>
      <xs:enumeration value="IllegalArgument"/>
      <xs:enumeration value="NoResult"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="AsyncCallFaultCode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="NotFound"/>
      <xs:enumeration value="NotFinished"/>
      <xs:enumeration value="AccessDenied"/>
    </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="ProcessingState">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Waiting"/>
      <xs:enumeration value="Running"/>
      <xs:enumeration value="Finished"/>
      <xs:enumeration value="NoResult"/>
      <xs:enumeration value="ParameterError"/>
      <xs:enumeration value="RunError"/>
      <xs:enumeration value="NotFound"/>
    </xs:restriction>
  </xs:simpleType>
</xs:schema>

