﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://www.nrf-arts.org/UnifiedPOS/PINPad/" elementFormDefault="qualified" targetNamespace="http://www.nrf-arts.org/UnifiedPOS/PINPad/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="PollForUPOSEvent">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="PollForUPOSEventResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="PollForUPOSEventResult" nillable="true" type="tns:PINPadEvent" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="PINPadEvent">
    <xs:sequence>
      <xs:element minOccurs="0" name="DataContainedEvent" nillable="true" type="tns:DataContainedEvent" />
      <xs:element minOccurs="0" name="DataEvent" nillable="true" type="tns:DataEvent" />
      <xs:element minOccurs="0" name="DirectIOEvent" nillable="true" type="tns:DirectIOEvent" />
      <xs:element minOccurs="0" name="ErrorEvent" nillable="true" type="tns:ErrorEvent" />
      <xs:element minOccurs="0" name="StatusUpdateEvent" nillable="true" type="tns:StatusUpdateEvent" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="PINPadEvent" nillable="true" type="tns:PINPadEvent" />
  <xs:complexType name="DataContainedEvent">
    <xs:sequence>
      <xs:element minOccurs="0" name="EventID" type="xs:int" />
      <xs:element minOccurs="0" name="Parameters" nillable="true" type="tns:ParameterList" />
      <xs:element minOccurs="0" name="Source" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Status" type="xs:int" />
      <xs:element minOccurs="0" name="TimeStamp" type="xs:dateTime" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DataContainedEvent" nillable="true" type="tns:DataContainedEvent" />
  <xs:complexType name="ParameterList">
    <xs:annotation>
      <xs:appinfo>
        <IsDictionary xmlns="http://schemas.microsoft.com/2003/10/Serialization/">true</IsDictionary>
      </xs:appinfo>
    </xs:annotation>
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Parameter">
        <xs:complexType>
          <xs:sequence>
            <xs:element name="Key" nillable="true" type="xs:string" />
            <xs:element name="Value" nillable="true" type="xs:anyType" />
          </xs:sequence>
        </xs:complexType>
      </xs:element>
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ParameterList" nillable="true" type="tns:ParameterList" />
  <xs:complexType name="DataEvent">
    <xs:sequence>
      <xs:element minOccurs="0" name="EventID" type="xs:int" />
      <xs:element minOccurs="0" name="Source" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Status" type="xs:int" />
      <xs:element minOccurs="0" name="TimeStamp" type="xs:dateTime" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DataEvent" nillable="true" type="tns:DataEvent" />
  <xs:complexType name="DirectIOEvent">
    <xs:sequence>
      <xs:element minOccurs="0" name="Data" type="xs:int" />
      <xs:element minOccurs="0" name="EventID" type="xs:int" />
      <xs:element minOccurs="0" name="EventNumber" type="xs:int" />
      <xs:element minOccurs="0" name="Obj" nillable="true" type="xs:anyType" />
      <xs:element minOccurs="0" name="Source" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="TimeStamp" type="xs:dateTime" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DirectIOEvent" nillable="true" type="tns:DirectIOEvent" />
  <xs:complexType name="ErrorEvent">
    <xs:sequence>
      <xs:element minOccurs="0" name="ErrorCode" type="tns:ErrorCode" />
      <xs:element minOccurs="0" name="ErrorCodeExtended" type="xs:int" />
      <xs:element minOccurs="0" name="ErrorLocus" type="tns:ErrorLocus" />
      <xs:element minOccurs="0" name="ErrorResponse" type="tns:ErrorResponse" />
      <xs:element minOccurs="0" name="EventID" type="xs:int" />
      <xs:element minOccurs="0" name="Source" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="TimeStamp" type="xs:dateTime" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ErrorEvent" nillable="true" type="tns:ErrorEvent" />
  <xs:simpleType name="ErrorCode">
    <xs:restriction base="xs:string">
      <xs:enumeration value="E_CLOSED" />
      <xs:enumeration value="E_CLAIMED" />
      <xs:enumeration value="E_NOTCLAIMED" />
      <xs:enumeration value="E_NOSERVICE" />
      <xs:enumeration value="E_DISABLED" />
      <xs:enumeration value="E_ILLEGAL" />
      <xs:enumeration value="E_NOHARDWARE" />
      <xs:enumeration value="E_OFFLINE" />
      <xs:enumeration value="E_NOEXIST" />
      <xs:enumeration value="E_EXISTS" />
      <xs:enumeration value="E_FAILURE" />
      <xs:enumeration value="E_TIMEOUT" />
      <xs:enumeration value="E_BUSY" />
      <xs:enumeration value="E_EXTENDED" />
      <xs:enumeration value="E_DEPRECATED" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="ErrorCode" nillable="true" type="tns:ErrorCode" />
  <xs:simpleType name="ErrorLocus">
    <xs:restriction base="xs:string">
      <xs:enumeration value="EL_INPUT" />
      <xs:enumeration value="EL_INPUT_DATA" />
      <xs:enumeration value="EL_OUTPUT" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="ErrorLocus" nillable="true" type="tns:ErrorLocus" />
  <xs:simpleType name="ErrorResponse">
    <xs:restriction base="xs:string">
      <xs:enumeration value="ER_CLEAR" />
      <xs:enumeration value="ER_CONTINUEINPUT" />
      <xs:enumeration value="ER_RETRY" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="ErrorResponse" nillable="true" type="tns:ErrorResponse" />
  <xs:complexType name="StatusUpdateEvent">
    <xs:sequence>
      <xs:element minOccurs="0" name="EventID" type="xs:int" />
      <xs:element minOccurs="0" name="Source" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Status" type="xs:int" />
      <xs:element minOccurs="0" name="TimeStamp" type="xs:dateTime" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="StatusUpdateEvent" nillable="true" type="tns:StatusUpdateEvent" />
  <xs:complexType name="UposException">
    <xs:sequence>
      <xs:element minOccurs="0" name="ErrorCode" type="tns:ErrorCode" />
      <xs:element minOccurs="0" name="ErrorCodeExtended" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="UposException" nillable="true" type="tns:UposException" />
  <xs:element name="SetEventResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="EventResponse" nillable="true" type="tns:PINPadEventResponse" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="PINPadEventResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="DataContainedEventResponse" nillable="true" type="tns:DataContainedEventResponse" />
      <xs:element minOccurs="0" name="DataEventResponse" nillable="true" type="tns:DataEventResponse" />
      <xs:element minOccurs="0" name="DirectIOEventResponse" nillable="true" type="tns:DirectIOEventResponse" />
      <xs:element minOccurs="0" name="ErrorEventResponse" nillable="true" type="tns:ErrorEventResponse" />
      <xs:element minOccurs="0" name="StatusUpdateEventResponse" nillable="true" type="tns:StatusUpdateEventResponse" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="PINPadEventResponse" nillable="true" type="tns:PINPadEventResponse" />
  <xs:complexType name="DataContainedEventResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="CallClearInputProperties" type="xs:boolean" />
      <xs:element minOccurs="0" name="EventID" type="xs:int" />
      <xs:element minOccurs="0" name="SetDataEventEnabled" type="xs:boolean" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DataContainedEventResponse" nillable="true" type="tns:DataContainedEventResponse" />
  <xs:complexType name="DataEventResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="EventID" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DataEventResponse" nillable="true" type="tns:DataEventResponse" />
  <xs:complexType name="DirectIOEventResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="DirectIOData" nillable="true" type="tns:DirectIOData" />
      <xs:element minOccurs="0" name="EventID" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DirectIOEventResponse" nillable="true" type="tns:DirectIOEventResponse" />
  <xs:complexType name="DirectIOData">
    <xs:sequence>
      <xs:element minOccurs="0" name="Data" type="xs:int" />
      <xs:element minOccurs="0" name="Obj" nillable="true" type="xs:anyType" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="DirectIOData" nillable="true" type="tns:DirectIOData" />
  <xs:complexType name="ErrorEventResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="ErrorResponse" type="tns:ErrorResponse" />
      <xs:element minOccurs="0" name="EventID" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="ErrorEventResponse" nillable="true" type="tns:ErrorEventResponse" />
  <xs:complexType name="StatusUpdateEventResponse">
    <xs:sequence>
      <xs:element minOccurs="0" name="EventID" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="StatusUpdateEventResponse" nillable="true" type="tns:StatusUpdateEventResponse" />
  <xs:element name="SetEventResponseResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetEncryptedClaimedConsumerID">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetEncryptedClaimedConsumerIDResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetEncryptedClaimedConsumerIDResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetEventRequestProperties">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="list" nillable="true" type="tns:PropertyNameList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="PropertyNameList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="PropertyName" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="PropertyNameList" nillable="true" type="tns:PropertyNameList" />
  <xs:element name="SetEventRequestPropertiesResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetBinaryConversion">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="consumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetBinaryConversionResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetBinaryConversionResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetBinaryConversion">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="consumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="binaryConversion" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetBinaryConversionResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapCompareFirmwareVersion">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapCompareFirmwareVersionResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetCapCompareFirmwareVersionResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapPowerReporting">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapPowerReportingResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetCapPowerReportingResult" type="tns:PowerReporting" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="PowerReporting">
    <xs:restriction base="xs:string">
      <xs:enumeration value="PR_NONE" />
      <xs:enumeration value="PR_STANDARD" />
      <xs:enumeration value="PR_ADVANCED" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="PowerReporting" nillable="true" type="tns:PowerReporting" />
  <xs:element name="GetCapStatisticsReporting">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapStatisticsReportingResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetCapStatisticsReportingResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapUpdateFirmware">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapUpdateFirmwareResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetCapUpdateFirmwareResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapUpdateStatistics">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapUpdateStatisticsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetCapUpdateStatisticsResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCheckHealthText">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCheckHealthTextResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetCheckHealthTextResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetClaimed">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetClaimedResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetClaimedResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDataCount">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDataCountResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetDataCountResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDataEventEnabled">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDataEventEnabledResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetDataEventEnabledResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetDataEventEnabled">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="DataEventEnabled" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetDataEventEnabledResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDeviceEnabled">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDeviceEnabledResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetDeviceEnabledResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetDeviceEnabled">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="DeviceEnabled" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetDeviceEnabledResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetFreezeEvents">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetFreezeEventsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetFreezeEventsResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetFreezeEvents">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="FreezeEvents" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetFreezeEventsResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPowerNotify">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPowerNotifyResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetPowerNotifyResult" type="tns:PowerNotification" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="PowerNotification">
    <xs:restriction base="xs:string">
      <xs:enumeration value="PN_DISABLED" />
      <xs:enumeration value="PN_ENABLED" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="PowerNotification" nillable="true" type="tns:PowerNotification" />
  <xs:element name="SetPowerNotify">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="PowerNotify" type="tns:PowerNotification" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetPowerNotifyResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPowerState">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPowerStateResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetPowerStateResult" type="tns:PowerState" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="PowerState">
    <xs:restriction base="xs:string">
      <xs:enumeration value="PS_UNKNOWN" />
      <xs:enumeration value="PS_ONLINE" />
      <xs:enumeration value="PS_OFF" />
      <xs:enumeration value="PS_OFFLINE" />
      <xs:enumeration value="PS_OFF_OFFLINE" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="PowerState" nillable="true" type="tns:PowerState" />
  <xs:element name="GetState">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetStateResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetStateResult" type="tns:ControlState" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="ControlState">
    <xs:restriction base="xs:string">
      <xs:enumeration value="S_CLOSED" />
      <xs:enumeration value="S_IDLE" />
      <xs:enumeration value="S_BUSY" />
      <xs:enumeration value="S_ERROR" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="ControlState" nillable="true" type="tns:ControlState" />
  <xs:element name="GetDeviceControlDescription">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDeviceControlDescriptionResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetDeviceControlDescriptionResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDeviceControlVersion">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDeviceControlVersionResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetDeviceControlVersionResult" nillable="true" type="tns:UposVersion" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="UposVersion">
    <xs:sequence>
      <xs:element minOccurs="0" name="Build" type="xs:int" />
      <xs:element minOccurs="0" name="Major" type="xs:int" />
      <xs:element minOccurs="0" name="Minor" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="UposVersion" nillable="true" type="tns:UposVersion" />
  <xs:element name="GetDeviceServiceDescription">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDeviceServiceDescriptionResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetDeviceServiceDescriptionResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDeviceServiceVersion">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetDeviceServiceVersionResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetDeviceServiceVersionResult" nillable="true" type="tns:UposVersion" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPhysicalDeviceDescription">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPhysicalDeviceDescriptionResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetPhysicalDeviceDescriptionResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPhysicalDeviceName">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPhysicalDeviceNameResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetPhysicalDeviceNameResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapDisplay">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapDisplayResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetCapDisplayResult" type="tns:PINPadDisplay" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="PINPadDisplay">
    <xs:restriction base="xs:string">
      <xs:enumeration value="None" />
      <xs:enumeration value="PPAD_DISP_UNRESTRICTED" />
      <xs:enumeration value="PPAD_DISP_PINRESTRICTED" />
      <xs:enumeration value="PPAD_DISP_RESTRICTED_LIST" />
      <xs:enumeration value="PPAD_DISP_RESTRICTED_ORDER" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="PINPadDisplay" nillable="true" type="tns:PINPadDisplay" />
  <xs:element name="GetCapKeyboard">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapKeyboardResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetCapKeyboardResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapLanguage">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapLanguageResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetCapLanguageResult" type="tns:PINPadLanguage" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="PINPadLanguage">
    <xs:restriction base="xs:string">
      <xs:enumeration value="PPAD_LANG_NONE" />
      <xs:enumeration value="PPAD_LANG_ONE" />
      <xs:enumeration value="PPAD_LANG_PINRESTRICTED" />
      <xs:enumeration value="PPAD_LANG_UNRESTRICTED" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="PINPadLanguage" nillable="true" type="tns:PINPadLanguage" />
  <xs:element name="GetCapMACCalculation">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapMACCalculationResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetCapMACCalculationResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapTone">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetCapToneResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetCapToneResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAccountNumber">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAccountNumberResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetAccountNumberResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetAccountNumber">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="AccountNumber" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetAccountNumberResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAdditionalSecurityInformation">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAdditionalSecurityInformationResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetAdditionalSecurityInformationResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAmount">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAmountResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetAmountResult" type="xs:decimal" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetAmount">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Amount" type="xs:decimal" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetAmountResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAvailableLanguagesList">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAvailableLanguagesListResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetAvailableLanguagesListResult" nillable="true" type="tns:LanguageList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="LanguageList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Language" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="LanguageList" nillable="true" type="tns:LanguageList" />
  <xs:element name="GetAvailablePromptsList">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetAvailablePromptsListResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetAvailablePromptsListResult" nillable="true" type="tns:PINPadMessageList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="PINPadMessageList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="PINPadMessage" type="xs:int" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="PINPadMessageList" nillable="true" type="tns:PINPadMessageList" />
  <xs:element name="GetEncryptedPIN">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetEncryptedPINResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetEncryptedPINResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMaximumPINLength">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMaximumPINLengthResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetMaximumPINLengthResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetMaximumPINLength">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="MaximumPINLength" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetMaximumPINLengthResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMerchantID">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMerchantIDResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetMerchantIDResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetMerchantID">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="MerchantID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetMerchantIDResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMinimumPINLength">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetMinimumPINLengthResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetMinimumPINLengthResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetMinimumPINLength">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="MinimumPINLength" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetMinimumPINLengthResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPINEntryEnabled">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPINEntryEnabledResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetPINEntryEnabledResult" type="xs:boolean" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPrompt">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPromptResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetPromptResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetPrompt">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Prompt" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetPromptResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPromptLanguage">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetPromptLanguageResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetPromptLanguageResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetPromptLanguage">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="PromptLanguage" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetPromptLanguageResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetTerminalID">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetTerminalIDResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetTerminalIDResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetTerminalID">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="TerminalID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetTerminalIDResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetTrack1Data">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetTrack1DataResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetTrack1DataResult" nillable="true" type="xs:base64Binary" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetTrack1Data">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Track1Data" nillable="true" type="xs:base64Binary" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetTrack1DataResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetTrack2Data">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetTrack2DataResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetTrack2DataResult" nillable="true" type="xs:base64Binary" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetTrack2Data">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Track2Data" nillable="true" type="xs:base64Binary" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetTrack2DataResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetTrack3Data">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetTrack3DataResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetTrack3DataResult" nillable="true" type="xs:base64Binary" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetTrack3Data">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Track3Data" nillable="true" type="xs:base64Binary" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetTrack3DataResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetTrack4Data">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetTrack4DataResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetTrack4DataResult" nillable="true" type="xs:base64Binary" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetTrack4Data">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Track4Data" nillable="true" type="xs:base64Binary" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetTrack4DataResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetTransactionType">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetTransactionTypeResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetTransactionTypeResult" type="tns:EFTTransactionType" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="EFTTransactionType">
    <xs:restriction base="xs:string">
      <xs:enumeration value="PPAD_TRANS_DEBIT" />
      <xs:enumeration value="PPAD_TRANS_CREDIT" />
      <xs:enumeration value="PPAD_TRANS_INQ" />
      <xs:enumeration value="PPAD_TRANS_RECONCILE" />
      <xs:enumeration value="PPAD_TRANS_ADMIN" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="EFTTransactionType" nillable="true" type="tns:EFTTransactionType" />
  <xs:element name="SetTransactionType">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="TransactionType" type="tns:EFTTransactionType" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="SetTransactionTypeResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="Claim">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Timeout" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ClaimResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="Release">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ReleaseResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="CheckHealth">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Level" type="tns:HealthCheckLevel" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="HealthCheckLevel">
    <xs:restriction base="xs:string">
      <xs:enumeration value="CH_INTERNAL" />
      <xs:enumeration value="CH_EXTERNAL" />
      <xs:enumeration value="CH_INTERACTIVE" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="HealthCheckLevel" nillable="true" type="tns:HealthCheckLevel" />
  <xs:element name="CheckHealthResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="ClearInput">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ClearInputResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="ClearInputProperties">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ClearInputPropertiesResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="DirectIO">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Command" type="xs:int" />
        <xs:element minOccurs="0" name="Data" type="xs:int" />
        <xs:element minOccurs="0" name="Obj" nillable="true" type="xs:anyType" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DirectIOResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="DirectIOResult" nillable="true" type="tns:DirectIOData" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CompareFirmwareVersion">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="FirmwareFileName" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CompareFirmwareVersionResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="CompareFirmwareVersionResult" type="tns:CompareFirmwareResult" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="CompareFirmwareResult">
    <xs:restriction base="xs:string">
      <xs:enumeration value="CFV_FIRMWARE_OLDER" />
      <xs:enumeration value="CFV_FIRMWARE_SAME" />
      <xs:enumeration value="CFV_FIRMWARE_NEWER" />
      <xs:enumeration value="CFV_FIRMWARE_DIFFERENT" />
      <xs:enumeration value="CFV_FIRMWARE_UNKNOWN" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="CompareFirmwareResult" nillable="true" type="tns:CompareFirmwareResult" />
  <xs:element name="ResetStatistics">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="StatisticsBuffer" nillable="true" type="tns:StatisticList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="StatisticList">
    <xs:sequence>
      <xs:element minOccurs="0" maxOccurs="unbounded" name="Statistic" nillable="true" type="tns:Statistic" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="StatisticList" nillable="true" type="tns:StatisticList" />
  <xs:complexType name="Statistic">
    <xs:sequence>
      <xs:element minOccurs="0" name="Name" nillable="true" type="xs:string" />
      <xs:element minOccurs="0" name="Value" nillable="true" type="xs:string" />
    </xs:sequence>
  </xs:complexType>
  <xs:element name="Statistic" nillable="true" type="tns:Statistic" />
  <xs:element name="ResetStatisticsResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="RetrieveStatistics">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="StatisticsBuffer" nillable="true" type="tns:StatisticList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="RetrieveStatisticsResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="RetrieveStatisticsResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateFirmware">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="FirmwareFileName" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateFirmwareResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateStatistics">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="StatisticsBuffer" nillable="true" type="tns:StatisticList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateStatisticsResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="BeginEFTTransaction">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="PINPadSystem" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="TransactionHost" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="BeginEFTTransactionResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="ComputeMAC">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="InMsg" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="ComputeMACResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ComputeMACResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="EnablePINEntry">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="EnablePINEntryResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="EndEFTTransaction">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="CompletionCode" type="tns:EFTTransactionCompletion" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:simpleType name="EFTTransactionCompletion">
    <xs:restriction base="xs:string">
      <xs:enumeration value="PPAD_EFT_NORMAL" />
      <xs:enumeration value="PPAD_EFT_ABNORMAL" />
    </xs:restriction>
  </xs:simpleType>
  <xs:element name="EFTTransactionCompletion" nillable="true" type="tns:EFTTransactionCompletion" />
  <xs:element name="EndEFTTransactionResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateKey">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="KeyNum" type="xs:int" />
        <xs:element minOccurs="0" name="Key" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="UpdateKeyResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="VerifyMAC">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Message" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="VerifyMACResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetWSPOSVersion">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetWSPOSVersionResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetWSPOSVersionResult" nillable="true" type="tns:UposVersion" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GenerateConsumerID">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GenerateConsumerIDResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GenerateConsumerIDResult" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="OpenSession">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="EndpointAddress" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="OpenSessionResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="CloseSession">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CloseSessionResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="GetProviderSessionTimeout">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="GetProviderSessionTimeoutResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="GetProviderSessionTimeoutResult" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="KeepAlive">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="KeepAliveResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="OpenDevice">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="OpenDeviceResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="CloseDevice">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="CloseDeviceResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
</xs:schema>