﻿<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:tns="http://www.nrf-arts.org/UnifiedPOS/POSKeyboardEvents/" elementFormDefault="qualified" targetNamespace="http://www.nrf-arts.org/UnifiedPOS/POSKeyboardEvents/" xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="DataEvent">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Source" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="EventID" type="xs:int" />
        <xs:element minOccurs="0" name="TimeStamp" type="xs:dateTime" />
        <xs:element minOccurs="0" name="Status" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="DataEventResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="DirectIOEvent">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Source" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="EventID" type="xs:int" />
        <xs:element minOccurs="0" name="TimeStamp" type="xs:dateTime" />
        <xs:element minOccurs="0" name="EventNumber" 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="DirectIOEventResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="DirectIOEventResult" nillable="true" type="tns:DirectIOData" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <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:element name="ErrorEvent">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Source" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="EventID" type="xs:int" />
        <xs:element minOccurs="0" name="TimeStamp" type="xs:dateTime" />
        <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:sequence>
    </xs:complexType>
  </xs:element>
  <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:element name="ErrorEventResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ErrorEventResult" type="tns:ErrorResponse" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="StatusUpdateEvent">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Source" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="EventID" type="xs:int" />
        <xs:element minOccurs="0" name="TimeStamp" type="xs:dateTime" />
        <xs:element minOccurs="0" name="Status" type="xs:int" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:element name="StatusUpdateEventResponse">
    <xs:complexType>
      <xs:sequence />
    </xs:complexType>
  </xs:element>
  <xs:element name="DataContainedEvent">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="ConsumerID" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="Source" nillable="true" type="xs:string" />
        <xs:element minOccurs="0" name="EventID" type="xs:int" />
        <xs:element minOccurs="0" name="TimeStamp" type="xs:dateTime" />
        <xs:element minOccurs="0" name="Status" type="xs:int" />
        <xs:element minOccurs="0" name="Parameters" nillable="true" type="tns:ParameterList" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <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:element name="DataContainedEventResponse">
    <xs:complexType>
      <xs:sequence>
        <xs:element minOccurs="0" name="DataContainedEventResult" nillable="true" type="tns:DataContainedEventData" />
      </xs:sequence>
    </xs:complexType>
  </xs:element>
  <xs:complexType name="DataContainedEventData">
    <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="DataContainedEventData" nillable="true" type="tns:DataContainedEventData" />
</xs:schema>