<?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="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="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="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="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="ScheduledDeliveryTime" nillable="true" type="xs:dateTime" />
      <xs:element minOccurs="0" name="ValidityPeriod" type="xs:short" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Header" nillable="true" type="tns:Header" />
  <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="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="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="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: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:schema>