<?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/UnifiedPOS/BiometricsEvents/"
    xmlns="http://www.nrf-arts.org/UnifiedPOS/BiometricsEvents/"
    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:simpleType name="ARTSBinary">
        <xs:restriction base="xs:string">
            <xs:pattern value="(\\u[0-9  | a-f]{4,4})*"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:group name="BiometricsPropertiesGroup">
        <xs:choice>
            <xs:element default="0" form="qualified" name="Algorithm" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Contains the biometric algorithm currently in use for
                        generating the biometrics template. The values can be set to index the
                        values contained in AlgorithmList.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="AlgorithmList" nillable="true" type="AlgorithmType">
                <xs:annotation>
                    <xs:documentation>Contains the list of algorithms that are supported by the
                        device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="BIR" nillable="true" type="ARTSBinary">
                <xs:annotation>
                    <xs:documentation>This standard uses the term template to refer to the biometric
                        enrollment data for a user. The term biometric information record (BIR)
                        refers to any biometric data that is returned to the application; including
                        raw data, intermediate data, processed sample(s) ready for verification or
                        identification, as well as enrollment data.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapPrematchData" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the Service is capable of using MOC (Match-On-Card)
                        SmartCard technology to generate a processed BIR based on prematch data
                        stored on a SmartCard.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapRawSensorData" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the Service is able to return unprocessed raw data
                        from the biometrics sensor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapRealTimeData" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the device is able to supply raw biometrics data as
                        the biometrics information is being captured (“real
                        time”).</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapSensorColor" nillable="true"
                type="CapSensorColorTypeCode">
                <xs:annotation>
                    <xs:documentation>This capability indicates if this device supports image
                        formats other than bi-tonal.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapSensorOrientation" nillable="true"
                type="CapSensorOrientationTypeCode">
                <xs:annotation>
                    <xs:documentation>This capability indicates the ability of the sensor image to
                        be rotated prior to processing.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapSensorType" nillable="true"
                type="CapSensorTypeTypeCode">
                <xs:annotation>
                    <xs:documentation>This capability indicates the types of biometrics data that
                        can be captured by the attached sensor.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapTemplateAdaptation" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the Service is able to return an adapted BIR that is
                        the result of updating a reference BIR with information taken from a sample
                        BIR or capture BIR. The purpose of this adaptation is to keep the reference
                        BIR current as biometric data shifts over time.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="RawSensorData" nillable="true" type="ARTSBinary">
                <xs:annotation>
                    <xs:documentation>Holds the biometrics image data as raw pixel data scan lines
                        from the top, left to the bottom, right. SensorHeight and SensorWidth define
                        the number of pixels.  SensorBPP defines the number of bits per pixel.
                        SensorColor defines the interpretation of the pixel data.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="SensorBPP" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Holds the Bit Per Pixel (BPP) encoding of the
                        RawSensorData.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="SensorColor" nillable="true"
                type="SensorColorTypeCode">
                <xs:annotation>
                    <xs:documentation>This property is used to select the image capture mode for
                        subsequent biometric capture operations. Certain SensorType devices may not
                        work with all the “colors” or color image type may not make sense. Changing
                        the SensorColor property will not affect any previously stored data
                        currently residing in the RawSensorData property or BIR
                        property.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="SensorHeight" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Holds the height of the RawSensorData in
                        pixels.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="SensorOrientation" nillable="true"
                type="SensorOrientationTypeCode">
                <xs:annotation>
                    <xs:documentation>Holds the requested orientation adjustment to the received
                        sensor data prior to BIR creation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="SensorType" nillable="true" type="SensorTypeTypeCode">
                <xs:annotation>
                    <xs:documentation>Holds the type of biometrics sensor being
                        accessed.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="SensorWidth" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Holds the width of the RawSensorData in
                        pixels.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element default="false" form="qualified" name="RealTimeDataEnabled"
                type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true and CapRealTimeData is true, a series of partial
                        biometric data events is enqueued as the biometric is captured until
                        biometric capture is terminated.  Otherwise, the captured biometric data is
                        enqueued as a single StatusUpdateEvent when biometric capture is
                        terminated.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:choice>
    </xs:group>
    <xs:complexType name="AlgorithmType">
        <xs:sequence>
            <xs:element form="qualified" maxOccurs="unbounded" name="Algorithm" type="xs:int"/>
        </xs:sequence>
    </xs:complexType>
    <xs:simpleType name="CapSensorColorTypeCode">
        <xs:union memberTypes="CapSensorColorTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="CapSensorColorTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="BIO_CSC_MONO"/>
            <xs:enumeration value="BIO_CSC_GRAYSCALE"/>
            <xs:enumeration value="BIO_CSC_16"/>
            <xs:enumeration value="BIO_CSC_256"/>
            <xs:enumeration value="BIO_CSC_FULL"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="SensorColorTypeCode">
        <xs:union memberTypes="SensorColorTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="SensorColorTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="BIO_SC_MONO"/>
            <xs:enumeration value="BIO_SC_GRAYSCALE"/>
            <xs:enumeration value="BIO_SC_16"/>
            <xs:enumeration value="BIO_SC_256"/>
            <xs:enumeration value="BIO_SC_FULL"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="CapSensorOrientationTypeCode">
        <xs:union memberTypes="CapSensorOrientationTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="CapSensorOrientationTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="BIO_CSO_NORMAL"/>
            <xs:enumeration value="BIO_CSO_RIGHT"/>
            <xs:enumeration value="BIO_CSO_INVERTED"/>
            <xs:enumeration value="BIO_CSO_LEFT"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="SensorOrientationTypeCode">
        <xs:union memberTypes="SensorOrientationTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="SensorOrientationTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="BIO_SO_NORMAL"/>
            <xs:enumeration value="BIO_SO_RIGHT"/>
            <xs:enumeration value="BIO_SO_INVERTED"/>
            <xs:enumeration value="BIO_SO_LEFT"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="CapSensorTypeTypeCode">
        <xs:union memberTypes="CapSensorTypeTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="CapSensorTypeTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="BIO_CST_FACIAL_FEATURES"/>
            <xs:enumeration value="BIO_CST_VOICE"/>
            <xs:enumeration value="BIO_CST_FINGERPRINT"/>
            <xs:enumeration value="BIO_CST_IRIS"/>
            <xs:enumeration value="BIO_CST_RETINA"/>
            <xs:enumeration value="BIO_CST_HAND_GEOMETRY"/>
            <xs:enumeration value="BIO_CST_SIGNATURE_DYNAMICS"/>
            <xs:enumeration value="BIO_CST_KEYSTOKE_DYNAMICS"/>
            <xs:enumeration value="BIO_CST_LIP_MOVEMENT"/>
            <xs:enumeration value="BIO_CST_THERMAL_FACE_IMAGE"/>
            <xs:enumeration value="BIO_CST_THERMAL_HAND_IMAGE"/>
            <xs:enumeration value="BIO_CST_GAIT"/>
            <xs:enumeration value="BIO_CST_PASSWORD"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="SensorTypeTypeCode">
        <xs:union memberTypes="SensorTypeTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="SensorTypeTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="BIO_ST_FACIAL_FEATURES"/>
            <xs:enumeration value="BIO_ST_VOICE"/>
            <xs:enumeration value="BIO_ST_FINGERPRINT"/>
            <xs:enumeration value="BIO_ST_IRIS"/>
            <xs:enumeration value="BIO_ST_RETINA"/>
            <xs:enumeration value="BIO_ST_HAND_GEOMETRY"/>
            <xs:enumeration value="BIO_ST_SIGNATURE_DYNAMICS"/>
            <xs:enumeration value="BIO_ST_KEYSTOKE_DYNAMICS"/>
            <xs:enumeration value="BIO_ST_LIP_MOVEMENT"/>
            <xs:enumeration value="BIO_ST_THERMAL_FACE_IMAGE"/>
            <xs:enumeration value="BIO_ST_THERMAL_HAND_IMAGE"/>
            <xs:enumeration value="BIO_ST_GAIT"/>
            <xs:enumeration value="BIO_ST_PASSWORD"/>
        </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="BiometricsPropertiesType">
        <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:group ref="XMLPOSCommonPropertiesGroup"/>
            <xs:group ref="BiometricsPropertiesGroup"/>
        </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="BiometricsEvent">
        <xs:complexType>
            <xs:sequence>
                <xs:element maxOccurs="unbounded" minOccurs="0" name="DataEvent"
                    type="DataEventType">
                    <xs:annotation>
                        <xs:documentation>The properties BIR and RawSensorData are set to
                            appropriate values prior to a DataEvent being delivered to the
                            application.</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 Biometrics Capture
                            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 Biometrics 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="StatusUpdateEvent"
                    type="StatusUpdateEventType">
                    <xs:annotation>
                        <xs:documentation>Notifies the application that there is a change in the
                            power status of the Biometric device.</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>The properties BIR and RawSensorData are set to appropriate values
                prior to a DataEvent being delivered to the application.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="EventCommonData">
                <xs:sequence>
                    <xs:element name="Status" type="StatusTypeCode"/>
                    <xs:element minOccurs="0" name="Properties" type="BiometricsPropertiesType"/>
                </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 Biometrics Capture 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 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="BiometricsPropertiesType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="ErrorEventType">
        <xs:annotation>
            <xs:documentation>Notifies the application that a Biometrics 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="BiometricsPropertiesType"/>
        </xs:sequence>
    </xs:complexType>
    <xs:complexType name="StatusUpdateEventType">
        <xs:annotation>
            <xs:documentation>Notifies the application that there is a change in the power status of
                the Biometric device.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="EventCommonData">
                <xs:sequence>
                    <xs:element name="Status" type="StatusUpdateStatusTypeCode">
                        <xs:annotation>
                            <xs:documentation>Reports a change in the power state of a Biometrics
                                device or reports a requested user interaction with the Biometrics
                                sensor to complete the capture.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element minOccurs="0" name="Properties" type="BiometricsPropertiesType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:simpleType name="StatusTypeCode">
        <xs:union memberTypes="StatusTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="StatusTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="BIO_DATA_ENROLL"/>
            <xs:enumeration value="BIO_DATA_VERIFY"/>
        </xs:restriction>
    </xs:simpleType>
    <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_CLEAR"/>
            <xs:enumeration value="ER_CONTINUEINPUT"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="StatusUpdateStatusTypeCode">
        <xs:union
            memberTypes="StatusUpdateStatusTypeCodeEnumeration TypeCodeExtension StatusUpdateCommonDataTypeCodes"
        />
    </xs:simpleType>
    <xs:simpleType name="StatusUpdateStatusTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="BIO_SUE_RAW_DATA">
                <xs:annotation>
                    <xs:documentation>Raw image data is available.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_MOVE_LEFT">
                <xs:annotation>
                    <xs:documentation>The position was too far to the right.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_MOVE_RIGHT">
                <xs:annotation>
                    <xs:documentation>The position was too far to the left.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_MOVE_DOWN">
                <xs:annotation>
                    <xs:documentation>The position was too high.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_MOVE_UP">
                <xs:annotation>
                    <xs:documentation>The position was too low.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_MOVE_CLOSER">
                <xs:annotation>
                    <xs:documentation>The position was too far away.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_MOVE_AWAY">
                <xs:annotation>
                    <xs:documentation>The position was too near (close).</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_MOVE_BACKWARD">
                <xs:annotation>
                    <xs:documentation>The position was too far forward.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_MOVE_FORWARD">
                <xs:annotation>
                    <xs:documentation>The position was too far backward.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_MOVE_SLOWER">
                <xs:annotation>
                    <xs:documentation>The motion was too fast, move slower.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_MOVE_FASTER">
                <xs:annotation>
                    <xs:documentation>The motion was too slow, move faster.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_SENSOR_DIRTY">
                <xs:annotation>
                    <xs:documentation>The sensor is dirty and requires cleaning.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_FAILED_READ">
                <xs:annotation>
                    <xs:documentation> Unable to capture data from the sensor, please retry the
                        operation.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_SENSOR_READY">
                <xs:annotation>
                    <xs:documentation> The sensor is ready to scan a Biometric
                        object</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIO_SUE_SENSOR_COMPLETE">
                <xs:annotation>
                    <xs:documentation> The sensor reports that the scan of a Biometric object is
                        complete.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </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="StatusUpdateEvent" type="StatusUpdateEventType"/>
</xs:schema>
