<?xml version="1.0"?>
<xs:schema xmlns:tns="SmsApi" elementFormDefault="qualified" targetNamespace="SmsApi" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:import namespace="http://schemas.microsoft.com/2003/10/Serialization/Arrays" />
  <xs:complexType name="SubmitOtp">
    <xs:sequence>
      <xs:element minOccurs="0" name="Commercial" type="xs:boolean" />
      <xs:element minOccurs="0" name="Credential" nillable="true" type="tns:Credential" />
      <xs:element minOccurs="0" name="CustomId" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="DataCoding" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Header" nillable="true" type="tns:Header" />
      <xs:element minOccurs="0" name="Message" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="RecipientType" type="xs:int" />
      <xs:element minOccurs="0" name="SkipAhs" type="xs:boolean" />
      <xs:element minOccurs="0" name="To" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="SubmitOtp" nillable="true" type="tns:SubmitOtp" />
  <xs:complexType name="Credential">
    <xs:sequence>
      <xs:element minOccurs="0" name="Password" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Username" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Credential" nillable="true" type="tns:Credential" />
  <xs:complexType name="Header">
    <xs:sequence>
      <xs:element minOccurs="0" name="From" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Route" type="xs:int" />
      <xs:element minOccurs="0" name="ScheduledDeliveryTime" nillable="true" type="xs:dateTime" />
      <xs:element minOccurs="0" name="ValidityPeriod" nillable="true" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Header" nillable="true" type="tns:Header" />
  <xs:complexType name="SubmitOtpResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Response" nillable="true" type="tns:SubmitOtptReturnResponse" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="SubmitOtpResponse" nillable="true" type="tns:SubmitOtpResponse" />
  <xs:complexType name="SubmitOtptReturnResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="MessageId" type="xs:long" />
      <xs:element minOccurs="0" name="Status" nillable="true" type="tns:Status" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="SubmitOtptReturnResponse" nillable="true" type="tns:SubmitOtptReturnResponse" />
  <xs:complexType name="Status">
    <xs:sequence>
      <xs:element minOccurs="0" name="Code" type="xs:int" />
      <xs:element minOccurs="0" name="Description" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Status" nillable="true" type="tns:Status" />
  <xs:complexType name="Submit">
    <xs:sequence>
      <xs:element minOccurs="0" name="Commercial" type="xs:boolean" />
      <xs:element minOccurs="0" name="Credential" nillable="true" type="tns:Credential" />
      <xs:element minOccurs="0" name="CustomId" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="DataCoding" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Header" nillable="true" type="tns:Header" />
      <xs:element minOccurs="0" name="Message" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="RecipientType" type="xs:int" />
      <xs:element minOccurs="0" name="SkipAhs" type="xs:boolean" />
      <xs:element minOccurs="0" name="To" nillable="true" xmlns:q1="http://schemas.microsoft.com/2003/10/Serialization/Arrays" type="q1:ArrayOfstring" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Submit" nillable="true" type="tns:Submit" />
  <xs:complexType name="SubmitResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Response" nillable="true" type="tns:SubmitReturnResponse" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="SubmitResponse" nillable="true" type="tns:SubmitResponse" />
  <xs:complexType name="SubmitReturnResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="MessageId" type="xs:long" />
      <xs:element minOccurs="0" name="Status" nillable="true" type="tns:Status" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="SubmitReturnResponse" nillable="true" type="tns:SubmitReturnResponse" />
  <xs:complexType name="SubmitMulti">
    <xs:sequence>
      <xs:element minOccurs="0" name="Commercial" type="xs:boolean" />
      <xs:element minOccurs="0" name="Credential" nillable="true" type="tns:Credential" />
      <xs:element minOccurs="0" name="CustomId" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="DataCoding" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Envelopes" nillable="true" type="tns:ArrayOfEnvelope" />
      <xs:element minOccurs="0" name="Header" nillable="true" type="tns:Header" />
      <xs:element minOccurs="0" name="RecipientType" type="xs:int" />
      <xs:element minOccurs="0" name="SkipAhs" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="SubmitMulti" nillable="true" type="tns:SubmitMulti" />
  <xs:complexType name="ArrayOfEnvelope">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Envelope" nillable="true" type="tns:Envelope" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfEnvelope" nillable="true" type="tns:ArrayOfEnvelope" />
  <xs:complexType name="Envelope">
    <xs:sequence>
      <xs:element minOccurs="0" name="Message" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="To" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Envelope" nillable="true" type="tns:Envelope" />
  <xs:complexType name="SubmitMultiResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Response" nillable="true" type="tns:SubmitMultiReturnResponse" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="SubmitMultiResponse" nillable="true" type="tns:SubmitMultiResponse" />
  <xs:complexType name="SubmitMultiReturnResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="MessageId" type="xs:long" />
      <xs:element minOccurs="0" name="Status" nillable="true" type="tns:Status" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="SubmitMultiReturnResponse" nillable="true" type="tns:SubmitMultiReturnResponse" />
  <xs:complexType name="QueryMulti">
    <xs:sequence>
      <xs:element minOccurs="0" name="Credential" nillable="true" type="tns:Credential" />
      <xs:element minOccurs="0" name="MessageId" type="xs:int" />
      <xs:element minOccurs="0" name="PageIndex" type="xs:int" />
      <xs:element minOccurs="0" name="PageSize" type="xs:int" />
      <xs:element minOccurs="0" name="Range" nillable="true" type="tns:Range" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="QueryMulti" nillable="true" type="tns:QueryMulti" />
  <xs:complexType name="Range">
    <xs:sequence>
      <xs:element minOccurs="0" name="Begin" type="xs:dateTime" />
      <xs:element minOccurs="0" name="End" type="xs:dateTime" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Range" nillable="true" type="tns:Range" />
  <xs:complexType name="QueryMultiResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Response" nillable="true" type="tns:QueryMultiReturnResponse" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="QueryMultiResponse" nillable="true" type="tns:QueryMultiResponse" />
  <xs:complexType name="QueryMultiReturnResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Report" nillable="true" type="tns:MultiQueryReport" />
      <xs:element minOccurs="0" name="Status" nillable="true" type="tns:Status" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="QueryMultiReturnResponse" nillable="true" type="tns:QueryMultiReturnResponse" />
  <xs:complexType name="MultiQueryReport">
    <xs:sequence>
      <xs:element minOccurs="0" name="List" nillable="true" type="tns:ArrayOfReportItem" />
      <xs:element minOccurs="0" name="TotalCount" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="MultiQueryReport" nillable="true" type="tns:MultiQueryReport" />
  <xs:complexType name="ArrayOfReportItem">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ReportItem" nillable="true" type="tns:ReportItem" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfReportItem" nillable="true" type="tns:ArrayOfReportItem" />
  <xs:complexType name="ReportItem">
    <xs:sequence>
      <xs:element minOccurs="0" name="Coding" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Cost" type="xs:int" />
      <xs:element minOccurs="0" name="Count" type="xs:int" />
      <xs:element minOccurs="0" name="DeliveredCount" type="xs:int" />
      <xs:element minOccurs="0" name="Id" type="xs:long" />
      <xs:element minOccurs="0" name="Message" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Received" type="xs:dateTime" />
      <xs:element minOccurs="0" name="Sender" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Sent" type="xs:dateTime" />
      <xs:element minOccurs="0" name="State" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="UndeliveredCount" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ReportItem" nillable="true" type="tns:ReportItem" />
  <xs:complexType name="Query">
    <xs:sequence>
      <xs:element minOccurs="0" name="Credential" nillable="true" type="tns:Credential" />
      <xs:element minOccurs="0" name="MSISDN" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="MessageId" type="xs:int" />
      <xs:element minOccurs="0" name="PageIndex" type="xs:int" />
      <xs:element minOccurs="0" name="PageSize" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Query" nillable="true" type="tns:Query" />
  <xs:complexType name="QueryResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Response" nillable="true" type="tns:QueryReturnResponse" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="QueryResponse" nillable="true" type="tns:QueryResponse" />
  <xs:complexType name="QueryReturnResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="ReportDetail" nillable="true" type="tns:ReportDetail" />
      <xs:element minOccurs="0" name="Status" nillable="true" type="tns:Status" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="QueryReturnResponse" nillable="true" type="tns:QueryReturnResponse" />
  <xs:complexType name="ReportDetail">
    <xs:sequence>
      <xs:element minOccurs="0" name="List" nillable="true" type="tns:ArrayOfReportDetailItem" />
      <xs:element minOccurs="0" name="TotalCount" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ReportDetail" nillable="true" type="tns:ReportDetail" />
  <xs:complexType name="ArrayOfReportDetailItem">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="ReportDetailItem" nillable="true" type="tns:ReportDetailItem" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfReportDetailItem" nillable="true" type="tns:ArrayOfReportDetailItem" />
  <xs:complexType name="ReportDetailItem">
    <xs:sequence>
      <xs:element minOccurs="0" name="Cost" type="xs:int" />
      <xs:element minOccurs="0" name="ErrorCode" type="xs:int" />
      <xs:element minOccurs="0" name="Id" type="xs:long" />
      <xs:element minOccurs="0" name="LastUpdated" type="xs:dateTime" />
      <xs:element minOccurs="0" name="MSISDN" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="MessageId" type="xs:int" />
      <xs:element minOccurs="0" name="Network" type="xs:int" />
      <xs:element minOccurs="0" name="Payload" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Sequence" type="xs:int" />
      <xs:element minOccurs="0" name="State" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Submitted" type="xs:dateTime" />
      <xs:element minOccurs="0" name="Xser" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ReportDetailItem" nillable="true" type="tns:ReportDetailItem" />
  <xs:complexType name="GetBalance">
    <xs:sequence>
      <xs:element minOccurs="0" name="Credential" nillable="true" type="tns:Credential" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="GetBalance" nillable="true" type="tns:GetBalance" />
  <xs:complexType name="GetBalanceResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Response" nillable="true" type="tns:BalanceReturnResponse" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="GetBalanceResponse" nillable="true" type="tns:GetBalanceResponse" />
  <xs:complexType name="BalanceReturnResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Balance" nillable="true" type="tns:Balance" />
      <xs:element minOccurs="0" name="Status" nillable="true" type="tns:Status" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="BalanceReturnResponse" nillable="true" type="tns:BalanceReturnResponse" />
  <xs:complexType name="Balance">
    <xs:sequence>
      <xs:element minOccurs="0" name="Limit" type="xs:int" />
      <xs:element minOccurs="0" name="Main" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Balance" nillable="true" type="tns:Balance" />
  <xs:complexType name="GetSenders">
    <xs:sequence>
      <xs:element minOccurs="0" name="Credential" nillable="true" type="tns:Credential" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="GetSenders" nillable="true" type="tns:GetSenders" />
  <xs:complexType name="GetSendersResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Response" nillable="true" type="tns:GetSendersReturnResponse" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="GetSendersResponse" nillable="true" type="tns:GetSendersResponse" />
  <xs:complexType name="GetSendersReturnResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Senders" nillable="true" type="tns:ArrayOfSender" />
      <xs:element minOccurs="0" name="Status" nillable="true" type="tns:Status" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="GetSendersReturnResponse" nillable="true" type="tns:GetSendersReturnResponse" />
  <xs:complexType name="ArrayOfSender">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Sender" nillable="true" type="tns:Sender" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfSender" nillable="true" type="tns:ArrayOfSender" />
  <xs:complexType name="Sender">
    <xs:sequence>
      <xs:element minOccurs="0" name="Default" type="xs:boolean" />
      <xs:element minOccurs="0" name="Value" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Sender" nillable="true" type="tns:Sender" />
  <xs:complexType name="Cancel">
    <xs:sequence>
      <xs:element minOccurs="0" name="Credential" nillable="true" type="tns:Credential" />
      <xs:element minOccurs="0" name="MessageId" type="xs:long" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Cancel" nillable="true" type="tns:Cancel" />
  <xs:complexType name="CancelResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Response" nillable="true" type="tns:CancelReturnResponse" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="CancelResponse" nillable="true" type="tns:CancelResponse" />
  <xs:complexType name="CancelReturnResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Status" nillable="true" type="tns:Status" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="CancelReturnResponse" nillable="true" type="tns:CancelReturnResponse" />
  <xs:complexType name="GetSettings">
    <xs:sequence>
      <xs:element minOccurs="0" name="Credential" nillable="true" type="tns:Credential" />
      <xs:element minOccurs="0" name="MessageId" type="xs:long" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="GetSettings" nillable="true" type="tns:GetSettings" />
  <xs:complexType name="GetSettingsResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Response" nillable="true" type="tns:GetSettingsReturnResponse" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="GetSettingsResponse" nillable="true" type="tns:GetSettingsResponse" />
  <xs:complexType name="GetSettingsReturnResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="Settings" nillable="true" type="tns:Settings" />
      <xs:element minOccurs="0" name="Status" nillable="true" type="tns:Status" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="GetSettingsReturnResponse" nillable="true" type="tns:GetSettingsReturnResponse" />
  <xs:complexType name="Settings">
    <xs:sequence>
      <xs:element minOccurs="0" name="Balance" nillable="true" type="tns:Balance" />
      <xs:element minOccurs="0" name="Keywords" nillable="true" type="tns:ArrayOfKeyword" />
      <xs:element minOccurs="0" name="OperatorSettings" nillable="true" type="tns:OperatorSettings" />
      <xs:element minOccurs="0" name="Senders" nillable="true" type="tns:ArrayOfSender" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Settings" nillable="true" type="tns:Settings" />
  <xs:complexType name="ArrayOfKeyword">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Keyword" nillable="true" type="tns:Keyword" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ArrayOfKeyword" nillable="true" type="tns:ArrayOfKeyword" />
  <xs:complexType name="Keyword">
    <xs:sequence>
      <xs:element minOccurs="0" name="ServiceNumber" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Timestamp" type="xs:dateTime" />
      <xs:element minOccurs="0" name="Validity" type="xs:int" />
      <xs:element minOccurs="0" name="Value" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Keyword" nillable="true" type="tns:Keyword" />
  <xs:complexType name="OperatorSettings">
    <xs:sequence>
      <xs:element minOccurs="0" name="Account" type="tns:Account" />
      <xs:element minOccurs="0" name="MSISDN" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="ServiceId" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="UnitPrice" type="xs:decimal" />
      <xs:element minOccurs="0" name="VariantId" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="OperatorSettings" nillable="true" type="tns:OperatorSettings" />
  <xs:simpleType name="Account">
    <xs:restriction base="xs:string">
      <xs:enumeration value="Postpaid" />
      <xs:enumeration value="Prepaid" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="Account" nillable="true" type="tns:Account" />
</xs:schema>