<?xml version="1.0" encoding="UTF-8"?>
<!-- Minor Version 1.1 - 2008-04
	- added WSDL root element names
-->
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
    targetNamespace="http://www.nrf-arts.org/UnifiedPOSBumpBarEvents/"
    xmlns="http://www.nrf-arts.org/UnifiedPOSBumpBarEvents/"
    xmlns:xs="http://www.w3.org/2001/XMLSchema">
    <!--============-->
    <!-- Extension mechanism -->
    <!--============-->
    <xs:simpleType name="IXREnumerationExtension">
        <xs:restriction base="xs:string">
            <xs:pattern value="[0-9A-Za-z][0-9A-Za-z]*:[A-Z][0-9A-Za-z]*"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="TypeCodeExtension">
        <xs:restriction base="IXREnumerationExtension"/>
    </xs:simpleType>
    <!--
		Enumerated type for  CommonData Action Type Codes attribute
	-->
    <xs:simpleType name="ActionCommonDataTypeCodes">
        <xs:union memberTypes="ActionCommonDataTypeCodesEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="ActionCommonDataTypeCodesEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="Begin"/>
            <xs:enumeration value="Cancel"/>
            <xs:enumeration value="Complete"/>
            <xs:enumeration value="Create"/>
            <xs:enumeration value="Delete"/>
            <xs:enumeration value="Dispatch"/>
            <xs:enumeration value="Lookup"/>
            <xs:enumeration value="Initiate"/>
            <xs:enumeration value="Instruction"/>
            <xs:enumeration value="Information"/>
            <xs:enumeration value="PartialCancel"/>
            <xs:enumeration value="PartialComplete"/>
            <xs:enumeration value="Read"/>
            <xs:enumeration value="Request"/>
            <xs:enumeration value="Update"/>
            <xs:enumeration value="Add"/>
            <xs:enumeration value="Subtract"/>
            <xs:enumeration value="Replace"/>
        </xs:restriction>
    </xs:simpleType>
    <!--
		Enumerated type for Business Unit Type attribute
	-->
    <xs:simpleType name="BusinessUnitTypeCode">
        <xs:union memberTypes="BusinessUnitTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="BusinessUnitTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="RetailStore"/>
            <xs:enumeration value="DistributionCenter"/>
            <xs:enumeration value="AdministrationCenter"/>
            <xs:enumeration value="CallCenter"/>
            <xs:enumeration value="WebSite"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="BusinessUnitCommonData">
        <xs:annotation>
            <xs:documentation>Business Unit Common Data Node describing the location.     Contains
                one or more of RetailStore, DistributionCenter, InventoryLocation and
                AdminstrativeCenter.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute form="unqualified" name="Name" type="xs:string" use="optional">
                    <xs:annotation>
                        <xs:documentation>The name of the business unit</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute default="RetailStore" form="unqualified" name="TypeCode"
                    type="BusinessUnitTypeCode" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:simpleType name="OrganizationTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="Corporation"/>
            <xs:enumeration value="OperatingCompany">
                <xs:annotation>
                    <xs:documentation> separate legal entity which conducts retail operations for
                        the retail enterprise in some geographical location. It may be treated as a
                        division internally - yet it is still a separate legal
                        entity</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Concept">
                <xs:annotation>
                    <xs:documentation>a unique line of business within a
                        corporation</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RevenueCenter">
                <xs:annotation>
                    <xs:documentation>Any area of a store from which particular revenues can be said
                        to derive</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Region"/>
            <xs:enumeration value="Department">
                <xs:annotation>
                    <xs:documentation>A grouping of items with similar point of sale control and
                        processing attributes. This entity type may also be used to control sales
                        that are not properly identified at the item-level.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="Division">
                <xs:annotation>
                    <xs:documentation>an administrative unit in a large store which certain retail
                        functions have been grouped</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="District"/>
            <xs:enumeration value="Zone"/>
            <xs:enumeration value="DistributionCenter">
                <xs:annotation>
                    <xs:documentation>A warehouse or other storage facility that receives
                        merchandise in bulk from Suppliers and supplies merchandise to RetailStores.
                        It may be co-located at the same Site as a RetailStore or
                        AdministrativeCenter.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AdministrationCenter">
                <xs:annotation>
                    <xs:documentation>A group of offices at which the retail enterprise conducts
                        administrative (non-selling) operations. May be co-located at a Site with
                        RetailStore, DistributionCenter, or InventoryLocation.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RetailStore">
                <xs:annotation>
                    <xs:documentation>A retail outlet that sells merchandise and services through
                        either a physical location, catalog, web page or other channel. It may or
                        may not be identical to a Site. It may be co-located at the same Site as a
                        DistributionCenter, InventoryLocation or
                        AdministrativeCenter.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="OrganizationHierarchyCommonData">
        <xs:annotation>
            <xs:documentation>organizational hierarchy so that destination can be targeted to
                individual location, region, division etc, not to be confused with reporting the
                entire hierarchy as is done with the Organizational Hierarchy Structure - i.e. an
                instance of an organization hierarchy at a particular level.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute form="unqualified" name="Level" type="OrganizationTypeCodeEnumeration"
                    use="optional"/>
                <xs:attribute form="unqualified" name="ID" type="xs:string" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <!-- 
		Date Time Enumeration
	-->
    <xs:simpleType name="DateTimeType">
        <xs:union memberTypes="DateTimeTypeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="DateTimeTypeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="Message"/>
            <xs:enumeration value="Cancel"/>
            <xs:enumeration value="ActualStart"/>
            <xs:enumeration value="Effective"/>
            <xs:enumeration value="ExpectedDue"/>
            <xs:enumeration value="ExpectedStart"/>
            <xs:enumeration value="Dispatch"/>
            <xs:enumeration value="Expiration"/>
            <xs:enumeration value="Business"/>
            <xs:enumeration value="Start"/>
            <xs:enumeration value="End"/>
            <xs:enumeration value="Receipt"/>
            <xs:enumeration value="Transaction"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="DateTimeCommonData">
        <xs:simpleContent>
            <xs:extension base="xs:dateTime">
                <xs:attribute default="Message" form="unqualified" name="TypeCode"
                    type="DateTimeType" use="optional"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <!-- 
		Severity Type Codes
	-->
    <xs:simpleType name="SeverityCodeType">
        <xs:union memberTypes="SeverityCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="SeverityCodeEnumeration">
        <xs:restriction base="xs:string">
            <xs:enumeration value="Information"/>
            <xs:enumeration value="Warning"/>
            <xs:enumeration value="Error"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="SequenceNumberType">
        <xs:restriction base="xs:unsignedLong">
            <xs:minInclusive value="0"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- 
		email type codes 
	-->
    <xs:simpleType name="IFSFTypeCode">
        <xs:union memberTypes="IFSFTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="IFSFTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="Autosafe"/>
            <xs:enumeration value="BankNoteAcceptor"/>
            <xs:enumeration value="CarWash"/>
            <xs:enumeration value="CardHandling"/>
            <xs:enumeration value="CodeGeneratingDevice"/>
            <xs:enumeration value="COPT"/>
            <xs:enumeration value="DeliveryControl"/>
            <xs:enumeration value="Dispenser"/>
            <xs:enumeration value="EnvironmentalMonitor"/>
            <xs:enumeration value="ForecourtPinPad"/>
            <xs:enumeration value="ForecourtPrinter"/>
            <xs:enumeration value="ForecourtPricePole"/>
            <xs:enumeration value="HumanInterfaceDevice"/>
            <xs:enumeration value="LineLeakDetector"/>
            <xs:enumeration value="MagCardReader"/>
            <xs:enumeration value="TankLevelGauge"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- 
		Minor Release V1.1.0 - Oct 2007
		- Added ElectronicValueReaderWriter
	-->
    <xs:simpleType name="UnifiedPOSTypeCode">
        <xs:union memberTypes="UnifiedPOSTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="UnifiedPOSTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="Belt"/>
            <xs:enumeration value="BillAcceptor"/>
            <xs:enumeration value="BillDispenser"/>
            <xs:enumeration value="Biometrics"/>
            <xs:enumeration value="BumpBar"/>
            <xs:enumeration value="CashChanger"/>
            <xs:enumeration value="CashDrawer"/>
            <xs:enumeration value="CAT"/>
            <xs:enumeration value="CheckScanner"/>
            <xs:enumeration value="CoinAcceptor"/>
            <xs:enumeration value="CoinDispenser"/>
            <xs:enumeration value="ElectronicJournal"/>
            <xs:enumeration value="ElectronicValueReaderWriter"/>
            <xs:enumeration value="FiscalPrinter"/>
            <xs:enumeration value="Gate"/>
            <xs:enumeration value="HardTotals"/>
            <xs:enumeration value="ImageScanner"/>
            <xs:enumeration value="ItemDispenser"/>
            <xs:enumeration value="Keylock"/>
            <xs:enumeration value="Light"/>
            <xs:enumeration value="LineDisplay"/>
            <xs:enumeration value="MagneticStripeReader"/>
            <xs:enumeration value="MICR"/>
            <xs:enumeration value="MotionSensor"/>
            <xs:enumeration value="PinPad"/>
            <xs:enumeration value="PointcardReaderWriter"/>
            <xs:enumeration value="POSKeyboard"/>
            <xs:enumeration value="POSPower"/>
            <xs:enumeration value="POSPrinter"/>
            <xs:enumeration value="RemoteOrderDisplay"/>
            <xs:enumeration value="RFIDScanner"/>
            <xs:enumeration value="Scale"/>
            <xs:enumeration value="Scanner"/>
            <xs:enumeration value="SignatureCapture"/>
            <xs:enumeration value="SmartCardReader"/>
            <xs:enumeration value="ToneIndicator"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="NAFEMTypeCode">
        <xs:union memberTypes="NAFEMTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="NAFEMTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="Dispensing"/>
            <xs:enumeration value="FoodPreparation"/>
            <xs:enumeration value="FrozenDessertsBeverages"/>
            <xs:enumeration value="FrozenDessertsSteamers"/>
            <xs:enumeration value="GriddlesGrills"/>
            <xs:enumeration value="HoldingCabinets"/>
            <xs:enumeration value="HotBeverages"/>
            <xs:enumeration value="HVAC"/>
            <xs:enumeration value="IceEquipment"/>
            <xs:enumeration value="Measurement"/>
            <xs:enumeration value="Ovens"/>
            <xs:enumeration value="Refrigeration"/>
            <xs:enumeration value="SecuritySystem"/>
            <xs:enumeration value="TemperatureFryer"/>
            <xs:enumeration value="Timers"/>
            <xs:enumeration value="Toasters"/>
            <xs:enumeration value="Ventilation"/>
            <xs:enumeration value="WareWashing"/>
            <xs:enumeration value="WasteSystems"/>
            <xs:enumeration value="Weighing"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- 
		email type codes 
	-->
    <xs:simpleType name="LonMarkTypeCode">
        <xs:union memberTypes="LonMarkTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="LonMarkTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="Industrial"/>
            <xs:enumeration value="EnergyManagement"/>
            <xs:enumeration value="HVAC"/>
            <xs:enumeration value="Lighting"/>
            <xs:enumeration value="Refrigeration"/>
            <xs:enumeration value="Sensors"/>
            <xs:enumeration value="MotorControls"/>
            <xs:enumeration value="InputOutput"/>
            <xs:enumeration value="AccessIntrusionMonitoring"/>
            <xs:enumeration value="FireAndSmoke"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- 
		email type codes 
	-->
    <xs:simpleType name="IETFTypeCode">
        <xs:union memberTypes="IETFTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="IETFTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="UPS"/>
        </xs:restriction>
    </xs:simpleType>
    <!-- 
		email type codes 
	-->
    <xs:simpleType name="REMTypeCode">
        <xs:union memberTypes="REMTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="REMTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="Heartbeat"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="EventCommonData">
        <xs:sequence>
            <xs:element form="qualified" name="SequenceNumber" type="SequenceNumberType">
                <xs:annotation>
                    <xs:documentation>The event message’s auto-incrementing sequence number so that
                        the messages can be ordered and duplicates can be detected.  Each producer
                        should use its own sequence number, which should
                        rollover.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="EventDateTime">
                <xs:annotation>
                    <xs:documentation>The date, time, and time zone when the event occurred from the
                        producer’s perspective.  Millisecond granularity.</xs:documentation>
                </xs:annotation>
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="DateTimeCommonData"/>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
            <xs:element form="qualified" minOccurs="0" name="EventDescription" type="xs:string">
                <xs:annotation>
                    <xs:documentation>A description of the event.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" minOccurs="0" name="SourceName" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Logical name of the event producer.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:choice>
                <xs:element form="qualified" name="SourceURI" type="xs:string"/>
                <xs:element form="qualified" name="SensorID" type="SensorIDType"/>
            </xs:choice>
            <xs:element form="qualified" minOccurs="0" name="Instance" type="xs:string">
                <xs:annotation>
                    <xs:documentation>In the case of multiple instances of a producing application,
                        the instance number so that each producer can be unique.  This may be the
                        process ID for convenience.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" minOccurs="0" name="BusinessUnit">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="BusinessUnitCommonData"/>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
            <xs:element form="qualified" minOccurs="0" name="OrganizationalHierarchy">
                <xs:complexType>
                    <xs:simpleContent>
                        <xs:extension base="OrganizationHierarchyCommonData"/>
                    </xs:simpleContent>
                </xs:complexType>
            </xs:element>
        </xs:sequence>
        <xs:attribute form="unqualified" name="Priority" type="xs:integer" use="optional">
            <xs:annotation>
                <xs:documentation>Used for prioritizing messages in the queue.</xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute form="unqualified" name="Severity" type="SeverityCodeType" use="optional">
            <xs:annotation>
                <xs:documentation>The Severity is the basic priority of the message. This is defined
                    in ISO 2382.  Enumeration - Information - data about the condition the event is
                    reporting, e.g.temperature of a freezer or chiller - Warning - an indication of
                    a condition which may develop into a fault at a later time - Fault – Error
                    requiring immediate attention. </xs:documentation>
            </xs:annotation>
        </xs:attribute>
        <xs:attribute default="Production" form="unqualified" name="Mode" type="EventModeTypeCodes">
            <xs:annotation>
                <xs:documentation>TestMode, TrainingMode, or ProductionMode</xs:documentation>
            </xs:annotation>
        </xs:attribute>
    </xs:complexType>
    <xs:complexType name="SensorIDType">
        <xs:simpleContent>
            <xs:extension base="xs:string">
                <xs:attribute form="unqualified" name="REM" type="REMTypeCode"/>
                <xs:attribute form="unqualified" name="UnifiedPOS"
                    type="UnifiedPOSTypeCodeEnumeration"/>
                <xs:attribute form="unqualified" name="IFSF" type="IFSFTypeCode"/>
                <xs:attribute form="unqualified" name="IETF" type="IETFTypeCode"/>
                <xs:attribute form="unqualified" name="NAFEM" type="NAFEMTypeCode"/>
                <xs:attribute form="unqualified" name="LonMark" type="LonMarkTypeCode"/>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <xs:simpleType name="EventModeTypeCodes">
        <xs:union memberTypes="EventModeTypeCodesEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="EventModeTypeCodesEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="Test"/>
            <xs:enumeration value="Training"/>
            <xs:enumeration value="Production"/>
        </xs:restriction>
    </xs:simpleType>
    <!--
		Enumerated type for  CommonData Type Codes attribute
	-->
    <xs:simpleType name="StatusUpdateCommonDataTypeCodes">
        <xs:union memberTypes="StatusUpdateCommonDataTypeCodesEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="StatusUpdateCommonDataTypeCodesEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="SUE_POWER_ONLINE"/>
            <xs:enumeration value="SUE_POWER_OFF"/>
            <xs:enumeration value="SUE_POWER_OFFLINE"/>
            <xs:enumeration value="SUE_POWER_OFF_OFFLINE"/>
            <xs:enumeration value="SUE_UF_PROGRESS1"/>
            <xs:enumeration value="SUE_UF_PROGRESS2"/>
            <xs:enumeration value="SUE_UF_PROGRESS3"/>
            <xs:enumeration value="SUE_UF_PROGRESS4"/>
            <xs:enumeration value="SUE_UF_PROGRESS5"/>
            <xs:enumeration value="SUE_UF_PROGRESS6"/>
            <xs:enumeration value="SUE_UF_PROGRESS7"/>
            <xs:enumeration value="SUE_UF_PROGRESS8"/>
            <xs:enumeration value="SUE_UF_PROGRESS9"/>
            <xs:enumeration value="SUE_UF_PROGRESS10"/>
            <xs:enumeration value="SUE_UF_PROGRESS11"/>
            <xs:enumeration value="SUE_UF_PROGRESS12"/>
            <xs:enumeration value="SUE_UF_PROGRESS13"/>
            <xs:enumeration value="SUE_UF_PROGRESS14"/>
            <xs:enumeration value="SUE_UF_PROGRESS15"/>
            <xs:enumeration value="SUE_UF_PROGRESS16"/>
            <xs:enumeration value="SUE_UF_PROGRESS17"/>
            <xs:enumeration value="SUE_UF_PROGRESS18"/>
            <xs:enumeration value="SUE_UF_PROGRESS19"/>
            <xs:enumeration value="SUE_UF_PROGRESS20"/>
            <xs:enumeration value="SUE_UF_PROGRESS21"/>
            <xs:enumeration value="SUE_UF_PROGRESS22"/>
            <xs:enumeration value="SUE_UF_PROGRESS23"/>
            <xs:enumeration value="SUE_UF_PROGRESS24"/>
            <xs:enumeration value="SUE_UF_PROGRESS25"/>
            <xs:enumeration value="SUE_UF_PROGRESS26"/>
            <xs:enumeration value="SUE_UF_PROGRESS27"/>
            <xs:enumeration value="SUE_UF_PROGRESS28"/>
            <xs:enumeration value="SUE_UF_PROGRESS29"/>
            <xs:enumeration value="SUE_UF_PROGRESS30"/>
            <xs:enumeration value="SUE_UF_PROGRESS31"/>
            <xs:enumeration value="SUE_UF_PROGRESS32"/>
            <xs:enumeration value="SUE_UF_PROGRESS33"/>
            <xs:enumeration value="SUE_UF_PROGRESS34"/>
            <xs:enumeration value="SUE_UF_PROGRESS35"/>
            <xs:enumeration value="SUE_UF_PROGRESS36"/>
            <xs:enumeration value="SUE_UF_PROGRESS37"/>
            <xs:enumeration value="SUE_UF_PROGRESS38"/>
            <xs:enumeration value="SUE_UF_PROGRESS39"/>
            <xs:enumeration value="SUE_UF_PROGRESS40"/>
            <xs:enumeration value="SUE_UF_PROGRESS41"/>
            <xs:enumeration value="SUE_UF_PROGRESS42"/>
            <xs:enumeration value="SUE_UF_PROGRESS43"/>
            <xs:enumeration value="SUE_UF_PROGRESS44"/>
            <xs:enumeration value="SUE_UF_PROGRESS45"/>
            <xs:enumeration value="SUE_UF_PROGRESS46"/>
            <xs:enumeration value="SUE_UF_PROGRESS47"/>
            <xs:enumeration value="SUE_UF_PROGRESS48"/>
            <xs:enumeration value="SUE_UF_PROGRESS49"/>
            <xs:enumeration value="SUE_UF_PROGRESS50"/>
            <xs:enumeration value="SUE_UF_PROGRESS51"/>
            <xs:enumeration value="SUE_UF_PROGRESS52"/>
            <xs:enumeration value="SUE_UF_PROGRESS53"/>
            <xs:enumeration value="SUE_UF_PROGRESS54"/>
            <xs:enumeration value="SUE_UF_PROGRESS55"/>
            <xs:enumeration value="SUE_UF_PROGRESS56"/>
            <xs:enumeration value="SUE_UF_PROGRESS57"/>
            <xs:enumeration value="SUE_UF_PROGRESS58"/>
            <xs:enumeration value="SUE_UF_PROGRESS59"/>
            <xs:enumeration value="SUE_UF_PROGRESS60"/>
            <xs:enumeration value="SUE_UF_PROGRESS61"/>
            <xs:enumeration value="SUE_UF_PROGRESS62"/>
            <xs:enumeration value="SUE_UF_PROGRESS63"/>
            <xs:enumeration value="SUE_UF_PROGRESS64"/>
            <xs:enumeration value="SUE_UF_PROGRESS65"/>
            <xs:enumeration value="SUE_UF_PROGRESS66"/>
            <xs:enumeration value="SUE_UF_PROGRESS67"/>
            <xs:enumeration value="SUE_UF_PROGRESS68"/>
            <xs:enumeration value="SUE_UF_PROGRESS69"/>
            <xs:enumeration value="SUE_UF_PROGRESS70"/>
            <xs:enumeration value="SUE_UF_PROGRESS71"/>
            <xs:enumeration value="SUE_UF_PROGRESS72"/>
            <xs:enumeration value="SUE_UF_PROGRESS73"/>
            <xs:enumeration value="SUE_UF_PROGRESS74"/>
            <xs:enumeration value="SUE_UF_PROGRESS75"/>
            <xs:enumeration value="SUE_UF_PROGRESS76"/>
            <xs:enumeration value="SUE_UF_PROGRESS77"/>
            <xs:enumeration value="SUE_UF_PROGRESS78"/>
            <xs:enumeration value="SUE_UF_PROGRESS79"/>
            <xs:enumeration value="SUE_UF_PROGRESS80"/>
            <xs:enumeration value="SUE_UF_PROGRESS81"/>
            <xs:enumeration value="SUE_UF_PROGRESS82"/>
            <xs:enumeration value="SUE_UF_PROGRESS83"/>
            <xs:enumeration value="SUE_UF_PROGRESS84"/>
            <xs:enumeration value="SUE_UF_PROGRESS85"/>
            <xs:enumeration value="SUE_UF_PROGRESS86"/>
            <xs:enumeration value="SUE_UF_PROGRESS87"/>
            <xs:enumeration value="SUE_UF_PROGRESS88"/>
            <xs:enumeration value="SUE_UF_PROGRESS89"/>
            <xs:enumeration value="SUE_UF_PROGRESS90"/>
            <xs:enumeration value="SUE_UF_PROGRESS91"/>
            <xs:enumeration value="SUE_UF_PROGRESS92"/>
            <xs:enumeration value="SUE_UF_PROGRESS93"/>
            <xs:enumeration value="SUE_UF_PROGRESS94"/>
            <xs:enumeration value="SUE_UF_PROGRESS95"/>
            <xs:enumeration value="SUE_UF_PROGRESS96"/>
            <xs:enumeration value="SUE_UF_PROGRESS97"/>
            <xs:enumeration value="SUE_UF_PROGRESS98"/>
            <xs:enumeration value="SUE_UF_PROGRESS99"/>
            <xs:enumeration value="SUE_UF_PROGRESS100"/>
            <xs:enumeration value="SUE_UF_COMPLETE"/>
            <xs:enumeration value="SUE_UF_COMPLETE_DEV_NOT_RESTORED"/>
            <xs:enumeration value="SUE_UF_FAILED_DEV_OK"/>
            <xs:enumeration value="SUE_UF_FAILED_DEV_UNRECOVERABLE"/>
            <xs:enumeration value="SUE_UF_FAILED_DEV_NEEDS_FIRMWARE"/>
            <xs:enumeration value="SUE_UF_FAILED_DEV_UNKNOWN"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:group name="BumpBarPropertiesGroup">
        <xs:choice>
            <xs:element form="qualified" name="AsyncMode" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, then the bumpBarSound method will be performed
                        synchronously. If false, tones are generated
                        synchronously.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="AutoToneDuration" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Holds the duration (in milliseconds) of the automatic tone for
                        the bump bar unit specified by the CurrentUnitID
                        property.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="AutoToneFrequency" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Holds the frequency (in Hertz) of the automatic tone for the
                        bump bar unit specified by the CurrentUnitID property.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="BumpBarDataCount" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Holds the number of DataEvents enqueued for the bump bar unit
                        specified by the CurrentUnitID property.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapTone" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the bump bar unit specified by the CurrentUnitID
                        property supports an enunciator.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CurrentUnitID" nillable="true"
                type="CurrentUnitTypeCode">
                <xs:annotation>
                    <xs:documentation>Holds the current bump bar unit ID. Up to 32 units are allowed
                        for one bump bar device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="ErrorString" nillable="true" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Holds a description of the error which occurred on the unit(s)
                        specified by the ErrorUnits property, when an error occurs for any method
                        that acts on a bitwise set of bump bar units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="ErrorUnits" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Holds a bitwise mask of the unit(s) that encountered an error,
                        when an error occurs for any method that acts on a bitwise set of bump bar
                        units.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="EventString" nillable="true" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Holds a description of the error which occurred to the unit(s)
                        specified by the EventUnits property, when an ErrorEvent is
                        delivered.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="EventUnitID" nillable="true"
                type="CurrentUnitTypeCode">
                <xs:annotation>
                    <xs:documentation>Holds the bump bar unit ID causing a DataEvent. This property
                        is set just before a DataEvent is delivered. The unit ID definitions range
                        from BB_UID_1 to BB_UID_32.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="EventUnits" nillable="true"
                type="CurrentUnitTypeCode">
                <xs:annotation>
                    <xs:documentation>Holds a bitwise mask of the unit(s) when an
                        OutputCompleteEvent, ErrorEvent, or StatusUpdateEvent is
                        delivered.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="Keys" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Holds the number of keys on the bump bar unit specified by the
                        CurrentUnitID property.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="Timeout" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Holds the timeout value in milliseconds used by the bump bar
                        device to complete all output methods supported. If the device cannot
                        successfully complete an output method within the timeout value, then the
                        method notifies the application of the error.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="UnitsOnline" nillable="true"
                type="CurrentUnitTypeCode">
                <xs:annotation>
                    <xs:documentation>Bitwise mask indicating the bump bar units online, where zero
                        or more of the unit constants BB_UID_1 (bit 0 on) through BB_UID_32 (bit 31
                        on)</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:choice>
    </xs:group>
    <xs:simpleType name="CurrentUnitTypeCode">
        <xs:union memberTypes="CurrentUnitTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="CurrentUnitTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="BB_UID_1"/>
            <xs:enumeration value="BB_UID_2"/>
            <xs:enumeration value="BB_UID_3"/>
            <xs:enumeration value="BB_UID_4"/>
            <xs:enumeration value="BB_UID_5"/>
            <xs:enumeration value="BB_UID_6"/>
            <xs:enumeration value="BB_UID_7"/>
            <xs:enumeration value="BB_UID_8"/>
            <xs:enumeration value="BB_UID_9"/>
            <xs:enumeration value="BB_UID_10"/>
            <xs:enumeration value="BB_UID_11"/>
            <xs:enumeration value="BB_UID_12"/>
            <xs:enumeration value="BB_UID_13"/>
            <xs:enumeration value="BB_UID_14"/>
            <xs:enumeration value="BB_UID_15"/>
            <xs:enumeration value="BB_UID_16"/>
            <xs:enumeration value="BB_UID_17"/>
            <xs:enumeration value="BB_UID_18"/>
            <xs:enumeration value="BB_UID_19"/>
            <xs:enumeration value="BB_UID_20"/>
            <xs:enumeration value="BB_UID_21"/>
            <xs:enumeration value="BB_UID_22"/>
            <xs:enumeration value="BB_UID_23"/>
            <xs:enumeration value="BB_UID_24"/>
            <xs:enumeration value="BB_UID_25"/>
            <xs:enumeration value="BB_UID_26"/>
            <xs:enumeration value="BB_UID_27"/>
            <xs:enumeration value="BB_UID_28"/>
            <xs:enumeration value="BB_UID_29"/>
            <xs:enumeration value="BB_UID_30"/>
            <xs:enumeration value="BB_UID_31"/>
            <xs:enumeration value="BB_UID_32"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:group name="XMLPOSCommonPropertiesGroup">
        <xs:choice>
            <xs:element default="false" form="qualified" name="AutoDisable" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>if true, the UnifiedPOS Service will set DeviceEnabled to
                        false after it receives and enqueus data as a DataEvent.  Before any
                        additional input can be received, the application must be set DeviceEnabled
                        to true.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapCompareFirmwareVersion" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, then the service/device supports comparing the
                        version of the firmware in the physical device against that of a firmware
                        file.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapPowerReporting" type="CapPowerReportingTypeCode">
                <xs:annotation>
                    <xs:documentation>Identifies the reporting capabilities of the
                        device</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapStatisticsReporting" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the device accumulates and can provide various
                        statistics regarding usage; otherwise no usage statistics are
                        accumulated.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapUpdateFirmware" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, then the device's firmware can be updated via the
                        UpdateFirmware method.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapUpdateStatistics" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>if true, the device statistics, or some of the statistics, can
                        be reset to zero using the ResetStatistics method, or updated using the
                        UpdateStatistics method.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CheckHealthText" nillable="true" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Holds the results of the most recent call to the CheckHealth
                        method.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="false" form="qualified" name="Claimed" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the device is claimed for exclusive access.  If
                        false, the device is released for sharing with other
                        applications.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="0" form="qualified" name="DataCount" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Holds the number of enqueued Data Events.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="false" form="qualified" name="DataEventEnabled" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, a Data Event will be delivered as soon as input data
                        is enqueued.  If changed to true and some input data is already queued, then
                        a Data Event is delivered immediately.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="DeviceControlDescription" nillable="true"
                type="xs:string">
                <xs:annotation>
                    <xs:documentation>Holds an identifier for the UnifiedPOS Control and the company
                        that produced it.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="DeviceControlVersion" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Holds the UnifiedPOS Control version number</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="false" form="qualified" name="DeviceEnabled" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the device is in an operational state.  If changed to
                        true, then the device is bought to an operational state.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="DeviceServiceDescription" nillable="true"
                type="xs:string">
                <xs:annotation>
                    <xs:documentation>Holds an identifier for the UnifiedPOS Service and the company
                        that produced it.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="DeviceServiceVersion" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Holds the UnifiedPOS Service version number</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="false" form="qualified" name="FreezeEvents" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the UnifiedPOS control will not deliver events.
                        Events will be enqueued until this property is set to
                        false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="OutputID" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Identifier of the most recently started asynchronous
                        output</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="PhysicalDeviceDescription" nillable="true"
                type="xs:string">
                <xs:annotation>
                    <xs:documentation>Holds an identifier for the physical device</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="PhysicalDeviceName" nillable="true" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Holds a short name identifying the physical
                        device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="PN_DISABLED" form="qualified" name="PowerNotify"
                type="PowerNotifyTypeCode">
                <xs:annotation>
                    <xs:documentation>Contains the type of power notification selection made by the
                        application.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="PS_UNKNOWN" form="qualified" name="PowerState"
                type="PowerStateTypeCode">
                <xs:annotation>
                    <xs:documentation>Identifies the current power condition of the device, if it
                        can be determined</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="State" type="StateTypeCode">
                <xs:annotation>
                    <xs:documentation>Holds the current state of the device</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:choice>
    </xs:group>
    <!--
		Enumerated type for CapPowerReporting Type attribute
	-->
    <xs:simpleType name="CapPowerReportingTypeCode">
        <xs:union memberTypes="CapPowerReportingTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="CapPowerReportingTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="PR_NONE"/>
            <xs:enumeration value="PR_STANDARD"/>
            <xs:enumeration value="PR_ADVANCED"/>
        </xs:restriction>
    </xs:simpleType>
    <!--
		Enumerated type for PowerNotify Type attribute
	-->
    <xs:simpleType name="PowerNotifyTypeCode">
        <xs:union memberTypes="PowerNotifyTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="PowerNotifyTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="PN_DISABLED"/>
            <xs:enumeration value="PN_ENABLED"/>
        </xs:restriction>
    </xs:simpleType>
    <!--
		Enumerated type for PowerState Type attribute
	-->
    <xs:simpleType name="PowerStateTypeCode">
        <xs:union memberTypes="PowerStateTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="PowerStateTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <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>
    <!--
		Enumerated type for State Type attribute
	-->
    <xs:simpleType name="StateTypeCode">
        <xs:union memberTypes="StateTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="StateTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <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:complexType name="BumpBarPropertiesType">
        <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:group ref="XMLPOSCommonPropertiesGroup"/>
            <xs:group ref="BumpBarPropertiesGroup"/>
        </xs:choice>
    </xs:complexType>
    <xs:simpleType name="POSErrorTypeCode">
        <xs:union memberTypes="POSErrorTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="POSErrorTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="E_CLOSED">
                <xs:annotation>
                    <xs:documentation>An attempt was made to access a closed
                        Device.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_CLAIMED">
                <xs:annotation>
                    <xs:documentation>An attempt was made to access a Physical Device that is
                        claimed by another Control instance. The other Control must release the
                        Physical Device before this access may be made. For exclusive-use devices,
                        the application will also need to claim the Physical Device before the
                        access is legal.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_NOTCLAIMED">
                <xs:annotation>
                    <xs:documentation>An attempt was made to access an exclusive-use device that
                        must be claimed before the method or property set action can be used.  If
                        the Physical Device is already claimed by another Control instance, then the
                        status E_CLAIMED is returned instead.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_NOSERVICE">
                <xs:annotation>
                    <xs:documentation>The Control cannot communicate with the Service, normally
                        because of a setup or configuration error.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_DISABLED">
                <xs:annotation>
                    <xs:documentation>Cannot perform this operation while the Device is
                        disabled.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_ILLEGAL">
                <xs:annotation>
                    <xs:documentation>An attempt was made to perform an illegal or unsupported
                        operation with the Device, or an invalid parameter value was
                        used.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_NOHARDWARE">
                <xs:annotation>
                    <xs:documentation>The Physical Device is not connected to the system or is not
                        powered on.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_OFFLINE">
                <xs:annotation>
                    <xs:documentation>The Physical Device is off-line.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_NOEXIST">
                <xs:annotation>
                    <xs:documentation>The file name (or other specified value) does not
                        exist.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_EXISTS">
                <xs:annotation>
                    <xs:documentation>The file name (or other specified value) already
                        exists.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_FAILURE">
                <xs:annotation>
                    <xs:documentation>The Device cannot perform the requested procedure, even though
                        the Physical Device is connected to the system, powered on, and
                        on-line.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_TIMEOUT">
                <xs:annotation>
                    <xs:documentation>The Service timed out waiting for a response from the Physical
                        Device, or the Control timed out waiting for a response from the
                        Service.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_BUSY">
                <xs:annotation>
                    <xs:documentation>The current Service state does not allow this request. For
                        example, if asynchronous output is in progress, certain methods may not be
                        allowed.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_EXTENDED">
                <xs:annotation>
                    <xs:documentation>A device category-specific error condition occurred. The error
                        condition code is held in an extended error code.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="E_DEPRECATED">
                <xs:annotation>
                    <xs:documentation>The requested operation can not be performed since it has been
                        deprecated.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:element name="BumpBarEvent">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="DataEvent"
                    type="DataEventType">
                    <xs:annotation>
                        <xs:documentation>Notifies the application when status from the bump bar is
                            available.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="DirectIOEvent"
                    type="DirectIOEventType">
                    <xs:annotation>
                        <xs:documentation>Provides Service information directly to the application.
                            This event provides a means for a vendor-specific Bump Bar Service to
                            provide events to the application that are not otherwise supported by
                            the Control.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="ErrorEvent"
                    type="ErrorEventType">
                    <xs:annotation>
                        <xs:documentation>Notifies the application that a Bump Bar device error has
                            been detected and a suitable response by the application is necessary to
                            process the error condition.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="OutputCompleteEvent"
                    type="OutputCompleteEventType">
                    <xs:annotation>
                        <xs:documentation>Notifies the application that the queued output request
                            associated with the OutputID attribute has completed
                            successfully.</xs:documentation>
                    </xs:annotation>
                </xs:element>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="StatusUpdateEvent"
                    type="StatusUpdateEventType">
                    <xs:annotation>
                        <xs:documentation>Notifies the application that the bump bar has had an
                            operation status change.</xs:documentation>
                    </xs:annotation>
                </xs:element>
            </xs:sequence>
            <xs:attribute fixed="1" name="MajorVersion" use="required"/>
            <xs:attribute fixed="15" name="MinorVersion"/>
            <xs:attribute fixed="1" name="FixVersion"/>
            <xs:attribute name="ActionCode" type="ActionCommonDataTypeCodes"/>
        </xs:complexType>
    </xs:element>
    <xs:complexType name="DataEventType">
        <xs:annotation>
            <xs:documentation>Notifies the application when status from the bump bar is
                available.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="EventCommonData">
                <xs:sequence>
                    <xs:element name="Status" type="xs:int">
                        <xs:annotation>
                            <xs:documentation>The Status property is divided into four bytes.
                                Depending on the Event Type, located in the low word, the remaining
                                2 bytes will contain additional data.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element minOccurs="0" name="Properties" type="BumpBarPropertiesType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="DirectIOEventType">
        <xs:annotation>
            <xs:documentation>Provides Service information directly to the application. This event
                provides a means for a vendor-specific Bump Bar Service to provide events to the
                application that are not otherwise supported by the Control.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="EventCommonData">
                <xs:sequence>
                    <xs:element name="EventNumber" type="xs:int">
                        <xs:annotation>
                            <xs:documentation>Event number whose specific values are assigned by the
                                Service.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element maxOccurs="unbounded" name="Data" type="xs:int">
                        <xs:annotation>
                            <xs:documentation>Additional numeric data. Specific values vary by the
                                EventNumber and the Service. This property is
                                settable.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element name="Obj">
                        <xs:annotation>
                            <xs:documentation>Additional data whose usage varies by the EventNumber
                                and Service. This property is settable.</xs:documentation>
                        </xs:annotation>
                        <xs:complexType>
                            <xs:sequence>
                                <xs:any maxOccurs="unbounded" namespace="##other"
                                    processContents="lax"/>
                            </xs:sequence>
                        </xs:complexType>
                    </xs:element>
                    <xs:element minOccurs="0" name="Properties" type="BumpBarPropertiesType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="ErrorEventType">
        <xs:annotation>
            <xs:documentation>Notifies the application that a Bump Bar device error has been
                detected and a suitable response by the application is necessary to process the
                error condition.</xs:documentation>
        </xs:annotation>
        <xs:sequence>
            <xs:element name="ErrorCode" type="POSErrorTypeCode">
                <xs:annotation>
                    <xs:documentation>Error code causing the error event.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ErrorCodeExtended" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Extended Error code causing the error event. It may contain a
                        Service-specific value.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ErrorLocus" type="ErrorLocusTypeCode">
                <xs:annotation>
                    <xs:documentation>Location of the error.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element name="ErrorResponse" type="ErrorResponseTypeCode">
                <xs:annotation>
                    <xs:documentation>Error response, whose default value may be overridden by the
                        application. (i.e., this property is settable).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element minOccurs="0" name="Properties" type="BumpBarPropertiesType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="OutputCompleteEventType">
        <xs:annotation>
            <xs:documentation>Notifies the application that the queued output request associated
                with the OutputID attribute has completed successfully.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="EventCommonData">
                <xs:sequence>
                    <xs:element name="OutputID" type="xs:int">
                        <xs:annotation>
                            <xs:documentation>The ID number of the asynchronous output request that
                                is complete. The EventUnits property is updated before
                                delivering.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element minOccurs="0" name="Properties" type="BumpBarPropertiesType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="StatusUpdateEventType">
        <xs:annotation>
            <xs:documentation>Notifies the application that the bump bar has had an operation status
                change.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="EventCommonData">
                <xs:sequence>
                    <xs:element name="Status" type="StatusUpdateCommonDataTypeCodes">
                        <xs:annotation>
                            <xs:documentation>Reports a change in the power state of a bump bar
                                unit.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element minOccurs="0" name="Properties" type="BumpBarPropertiesType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:simpleType name="ErrorLocusTypeCode">
        <xs:union memberTypes="ErrorLocusTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="ErrorLocusTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="EL_INPUT"/>
            <xs:enumeration value="EL_INPUT_DATA"/>
        </xs:restriction>
    </xs:simpleType>
    <!--   -->
    <xs:simpleType name="ErrorResponseTypeCode">
        <xs:union memberTypes="ErrorResponseTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="ErrorResponseTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="ER_RETRY"/>
            <xs:enumeration value="ER_CLEAR"/>
            <xs:enumeration value="ER_CONTINUEINPUT"/>
        </xs:restriction>
    </xs:simpleType>
    <!--WSDL Root Element Names-->
    <xs:element name="DataEvent" type="DataEventType"/>
    <xs:element name="DirectIOEvent" type="DirectIOEventType"/>
    <xs:element name="ErrorEvent" type="ErrorEventType"/>
    <xs:element name="OutputCompleteEvent" type="OutputCompleteEventType"/>
    <xs:element name="StatusUpdateEvent" type="StatusUpdateEventType"/>
</xs:schema>
