<?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/CATEvents/"
    xmlns="http://www.nrf-arts.org/UnifiedPOS/CATEvents/"
    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="CurrencyTypeCode">
        <xs:union memberTypes="CurrencyTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="CurrencyTypeCodeEnumeration">
        <xs:annotation>
            <xs:documentation>enum: ISO-4217 / UN/ECE REC 09 Codes</xs:documentation>
        </xs:annotation>
        <xs:restriction base="xs:string">
            <xs:enumeration value="ADP">
                <xs:annotation>
                    <xs:documentation>Andorran Peseta</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AED">
                <xs:annotation>
                    <xs:documentation>UAE Dirham</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AFA">
                <xs:annotation>
                    <xs:documentation>Afghani</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ALL">
                <xs:annotation>
                    <xs:documentation>Leck</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AMD">
                <xs:annotation>
                    <xs:documentation>Armenian Dram</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ANG">
                <xs:annotation>
                    <xs:documentation>Netherlands Antillan Guilder</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AOA">
                <xs:annotation>
                    <xs:documentation>Kwanza</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ARS">
                <xs:annotation>
                    <xs:documentation>Argentine Peso</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ATS">
                <xs:annotation>
                    <xs:documentation>Schilling</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AUD">
                <xs:annotation>
                    <xs:documentation>Australian Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AWG">
                <xs:annotation>
                    <xs:documentation>Aruban Guilder</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="AZM">
                <xs:annotation>
                    <xs:documentation>Azerbaijanian Manat</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BAM">
                <xs:annotation>
                    <xs:documentation>Convertible Marks</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BBD">
                <xs:annotation>
                    <xs:documentation>Barbados Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BDT">
                <xs:annotation>
                    <xs:documentation>Taka</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BEF">
                <xs:annotation>
                    <xs:documentation>Belgian Franc</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BGL">
                <xs:annotation>
                    <xs:documentation>Lev</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BGN">
                <xs:annotation>
                    <xs:documentation>Bulgarian Lev</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BHD">
                <xs:annotation>
                    <xs:documentation>Bahraini Dinar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BIF">
                <xs:annotation>
                    <xs:documentation>Burundi Franc</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BMD">
                <xs:annotation>
                    <xs:documentation>Bermudian Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BND">
                <xs:annotation>
                    <xs:documentation>Brunei Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BOB">
                <xs:annotation>
                    <xs:documentation>Boliviano</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BOV">
                <xs:annotation>
                    <xs:documentation>Mvdol</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BRL">
                <xs:annotation>
                    <xs:documentation>Brazilian Real</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BSD">
                <xs:annotation>
                    <xs:documentation>Bahamian Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BTN">
                <xs:annotation>
                    <xs:documentation>Ngultrum</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BWP">
                <xs:annotation>
                    <xs:documentation>Pula</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BYR">
                <xs:annotation>
                    <xs:documentation>Belarussian Ruble</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="BZD">
                <xs:annotation>
                    <xs:documentation>Belize Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CAD">
                <xs:annotation>
                    <xs:documentation>Canadian Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CDF">
                <xs:annotation>
                    <xs:documentation>Franc Congolais</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CHF">
                <xs:annotation>
                    <xs:documentation>Swiss Franc</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CLF">
                <xs:annotation>
                    <xs:documentation>Unidades de fomento</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CLP">
                <xs:annotation>
                    <xs:documentation>Chilean Peso</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CNY">
                <xs:annotation>
                    <xs:documentation>Yuan Renminbi</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="COP">
                <xs:annotation>
                    <xs:documentation>Colombian Peso</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CRC">
                <xs:annotation>
                    <xs:documentation>Costa Rican Colon</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CUP">
                <xs:annotation>
                    <xs:documentation>Cuban Peso</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CVE">
                <xs:annotation>
                    <xs:documentation>Cape Verde Escudo</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CYP">
                <xs:annotation>
                    <xs:documentation>Cyprus Pound</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CZK">
                <xs:annotation>
                    <xs:documentation>Czech Koruna</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DEM">
                <xs:annotation>
                    <xs:documentation>Deutsche Mark</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DJF">
                <xs:annotation>
                    <xs:documentation>Djibouti Franc</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DKK">
                <xs:annotation>
                    <xs:documentation>Danish Krone</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DOP">
                <xs:annotation>
                    <xs:documentation>Dominican Peso</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="DZD">
                <xs:annotation>
                    <xs:documentation>Algerian Dinar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ECS">
                <xs:annotation>
                    <xs:documentation>Sucre</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ECV">
                <xs:annotation>
                    <xs:documentation>Unidad de Valor Constante (UVC)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EEK">
                <xs:annotation>
                    <xs:documentation>Kroon</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EGP">
                <xs:annotation>
                    <xs:documentation>Egyptian Pound</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ERN">
                <xs:annotation>
                    <xs:documentation>Nakfa</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ESP">
                <xs:annotation>
                    <xs:documentation>Spanish Peseta</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ETB">
                <xs:annotation>
                    <xs:documentation>Ethiopian Birr</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="EUR">
                <xs:annotation>
                    <xs:documentation>euro</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FIM">
                <xs:annotation>
                    <xs:documentation>Markka</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FJD">
                <xs:annotation>
                    <xs:documentation>Fiji Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FKP">
                <xs:annotation>
                    <xs:documentation>Falkland Islands Pound</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="FRF">
                <xs:annotation>
                    <xs:documentation>French Franc</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GBP">
                <xs:annotation>
                    <xs:documentation>Pound Sterling</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GEL">
                <xs:annotation>
                    <xs:documentation>Lari</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GHC">
                <xs:annotation>
                    <xs:documentation>Cedi</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GIP">
                <xs:annotation>
                    <xs:documentation>Gibraltar Pound</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GMD">
                <xs:annotation>
                    <xs:documentation>Dalasi</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GNF">
                <xs:annotation>
                    <xs:documentation>Guinea Franc</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GRD">
                <xs:annotation>
                    <xs:documentation>Drachma</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GTQ">
                <xs:annotation>
                    <xs:documentation>Quetzal</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GWP">
                <xs:annotation>
                    <xs:documentation>Guinea-Bissau Peso</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="GYD">
                <xs:annotation>
                    <xs:documentation>Guyana Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HKD">
                <xs:annotation>
                    <xs:documentation>Hong Kong Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HNL">
                <xs:annotation>
                    <xs:documentation>Lempira</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HRK">
                <xs:annotation>
                    <xs:documentation>Croatian kuna</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HTG">
                <xs:annotation>
                    <xs:documentation>Gourde</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="HUF">
                <xs:annotation>
                    <xs:documentation>Forint</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IDR">
                <xs:annotation>
                    <xs:documentation>Rupiah</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IEP">
                <xs:annotation>
                    <xs:documentation>Irish Pound</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ILS">
                <xs:annotation>
                    <xs:documentation>New Israeli Sheqel</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="INR">
                <xs:annotation>
                    <xs:documentation>Indian Rupee</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IQD">
                <xs:annotation>
                    <xs:documentation>Iraqi Dinar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="IRR">
                <xs:annotation>
                    <xs:documentation>Iranian Rial</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ISK">
                <xs:annotation>
                    <xs:documentation>Iceland Krona</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ITL">
                <xs:annotation>
                    <xs:documentation>Italian Lira</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="JMD">
                <xs:annotation>
                    <xs:documentation>Jamaican Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="JOD">
                <xs:annotation>
                    <xs:documentation>Jordanian Dinar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="JPY">
                <xs:annotation>
                    <xs:documentation>Yen</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KES">
                <xs:annotation>
                    <xs:documentation>Kenyan Shilling</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KGS">
                <xs:annotation>
                    <xs:documentation>Som</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KHR">
                <xs:annotation>
                    <xs:documentation>Riel</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KMF">
                <xs:annotation>
                    <xs:documentation>Comoro Franc</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KPW">
                <xs:annotation>
                    <xs:documentation>North Korean Won</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KRW">
                <xs:annotation>
                    <xs:documentation>Won</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KWD">
                <xs:annotation>
                    <xs:documentation>Kuwaiti Dinar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KYD">
                <xs:annotation>
                    <xs:documentation>Cayman Islands Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="KZT">
                <xs:annotation>
                    <xs:documentation>Tenge</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LAK">
                <xs:annotation>
                    <xs:documentation>Kip</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LBP">
                <xs:annotation>
                    <xs:documentation>Lebanese Pound</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LKR">
                <xs:annotation>
                    <xs:documentation>Sri Lanka Rupee</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LRD">
                <xs:annotation>
                    <xs:documentation>Liberian Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LSL">
                <xs:annotation>
                    <xs:documentation>Loti</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LTL">
                <xs:annotation>
                    <xs:documentation>Lithuanian Litus</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LUF">
                <xs:annotation>
                    <xs:documentation>Luxembourg Franc</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LVL">
                <xs:annotation>
                    <xs:documentation>Latvian Lats</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="LYD">
                <xs:annotation>
                    <xs:documentation>Lybian Dinar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MAD">
                <xs:annotation>
                    <xs:documentation>Moroccan Dirham</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MDL">
                <xs:annotation>
                    <xs:documentation>Moldovan Leu</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MGF">
                <xs:annotation>
                    <xs:documentation>Malagasy Franc</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MKD">
                <xs:annotation>
                    <xs:documentation>Denar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MMK">
                <xs:annotation>
                    <xs:documentation>Kyat</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MNT">
                <xs:annotation>
                    <xs:documentation>Tugrik</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MOP">
                <xs:annotation>
                    <xs:documentation>Pataca</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MRO">
                <xs:annotation>
                    <xs:documentation>Ouguiya</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MTL">
                <xs:annotation>
                    <xs:documentation>Maltese Lira</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MUR">
                <xs:annotation>
                    <xs:documentation>Mauritius Rupee</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MVR">
                <xs:annotation>
                    <xs:documentation>Rufiyaa</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MWK">
                <xs:annotation>
                    <xs:documentation>Kwacha</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MXN">
                <xs:annotation>
                    <xs:documentation>Mexican Peso</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MXV">
                <xs:annotation>
                    <xs:documentation>Mexican Unidad de Inversion (UDI)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MYR">
                <xs:annotation>
                    <xs:documentation>Malaysian Ringgit</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="MZM">
                <xs:annotation>
                    <xs:documentation>Metical</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NAD">
                <xs:annotation>
                    <xs:documentation>Namibia Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NGN">
                <xs:annotation>
                    <xs:documentation>Naira</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NIO">
                <xs:annotation>
                    <xs:documentation>Cordoba Oro</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NLG">
                <xs:annotation>
                    <xs:documentation>Netherlands Guilder</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NOK">
                <xs:annotation>
                    <xs:documentation>Norvegian Krone</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NPR">
                <xs:annotation>
                    <xs:documentation>Nepalese Rupee</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="NZD">
                <xs:annotation>
                    <xs:documentation>New Zealand Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="OMR">
                <xs:annotation>
                    <xs:documentation>Rial Omani</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PAB">
                <xs:annotation>
                    <xs:documentation>Balboa</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PEN">
                <xs:annotation>
                    <xs:documentation>Nuevo Sol</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PGK">
                <xs:annotation>
                    <xs:documentation>Kina</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PHP">
                <xs:annotation>
                    <xs:documentation>Philippine Peso</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PKR">
                <xs:annotation>
                    <xs:documentation>Pakistan Rupee</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PLN">
                <xs:annotation>
                    <xs:documentation>Zloty</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PTE">
                <xs:annotation>
                    <xs:documentation>Portuguese Escudo</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="PYG">
                <xs:annotation>
                    <xs:documentation>Guarani</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="QAR">
                <xs:annotation>
                    <xs:documentation>Qatari Rial</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ROL">
                <xs:annotation>
                    <xs:documentation>Leu</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RUB">
                <xs:annotation>
                    <xs:documentation>Russian Ruble</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RUR">
                <xs:annotation>
                    <xs:documentation>Russian Ruble</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="RWF">
                <xs:annotation>
                    <xs:documentation>Rwanda Franc</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SAR">
                <xs:annotation>
                    <xs:documentation>Saudi Riyal</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SBD">
                <xs:annotation>
                    <xs:documentation>Solomon Islands Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SCR">
                <xs:annotation>
                    <xs:documentation>Seychelles Rupee</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SDD">
                <xs:annotation>
                    <xs:documentation>Sudanese Dinar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SEK">
                <xs:annotation>
                    <xs:documentation>Swedish Krona</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SGD">
                <xs:annotation>
                    <xs:documentation>Singapore Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SHP">
                <xs:annotation>
                    <xs:documentation>Saint Helena Pound</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SIT">
                <xs:annotation>
                    <xs:documentation>Tolar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SKK">
                <xs:annotation>
                    <xs:documentation>Slovak Koruna</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SLL">
                <xs:annotation>
                    <xs:documentation>Leone</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SOS">
                <xs:annotation>
                    <xs:documentation>Somali Shilling</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SRG">
                <xs:annotation>
                    <xs:documentation>Suriname Guilder</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="STD">
                <xs:annotation>
                    <xs:documentation>Dobra</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SVC">
                <xs:annotation>
                    <xs:documentation>El Salvador Colon</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SYP">
                <xs:annotation>
                    <xs:documentation>Syrian Pound</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="SZL">
                <xs:annotation>
                    <xs:documentation>Lilangeni</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="THB">
                <xs:annotation>
                    <xs:documentation>Baht</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TJS">
                <xs:annotation>
                    <xs:documentation>Somoni</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TMM">
                <xs:annotation>
                    <xs:documentation>Manat</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TND">
                <xs:annotation>
                    <xs:documentation>Tunisian Dinar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TOP">
                <xs:annotation>
                    <xs:documentation>Pa´anga</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TPE">
                <xs:annotation>
                    <xs:documentation>Timor Escudo</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TRL">
                <xs:annotation>
                    <xs:documentation>Turkish Lira</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TTD">
                <xs:annotation>
                    <xs:documentation>Trinidad and Tobago Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TWD">
                <xs:annotation>
                    <xs:documentation>New Taiwan Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="TZS">
                <xs:annotation>
                    <xs:documentation>Tanzanian Shilling</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="UAH">
                <xs:annotation>
                    <xs:documentation>Hryvnia</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="UGX">
                <xs:annotation>
                    <xs:documentation>Uganda Shilling</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="USD">
                <xs:annotation>
                    <xs:documentation>US Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="USN">
                <xs:annotation>
                    <xs:documentation>US Dollar (Next day)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="USS">
                <xs:annotation>
                    <xs:documentation>US Dollar (Same day)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="UYU">
                <xs:annotation>
                    <xs:documentation>Peso Uruguayo</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="UZS">
                <xs:annotation>
                    <xs:documentation>Uzbekistan Sum</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VEB">
                <xs:annotation>
                    <xs:documentation>Bolivar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VND">
                <xs:annotation>
                    <xs:documentation>Dong</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="VUV">
                <xs:annotation>
                    <xs:documentation>Vatu</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="WST">
                <xs:annotation>
                    <xs:documentation>Tala</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XAF">
                <xs:annotation>
                    <xs:documentation>CFA Franc BEAC</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XAG">
                <xs:annotation>
                    <xs:documentation>Silver</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XAU">
                <xs:annotation>
                    <xs:documentation>Gold</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XBA">
                <xs:annotation>
                    <xs:documentation>European Composite Unit (EURCO)</xs:documentation>
                    <xs:documentation>European Monetary Unit (E.M.U.-6)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XBB">
                <xs:annotation>
                    <xs:documentation>European Unit of Account 9 (E.U.A.-9)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XBC">
                <xs:annotation>
                    <xs:documentation>European Unit of Account 17 (E.U.A.-17)</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XCD">
                <xs:annotation>
                    <xs:documentation>East Caribbean Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XDR">
                <xs:annotation>
                    <xs:documentation>SDR</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XFO">
                <xs:annotation>
                    <xs:documentation>Gold-Franc</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XFU">
                <xs:annotation>
                    <xs:documentation>UIC-Franc</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XOF">
                <xs:annotation>
                    <xs:documentation>CFA Franc BCEAO</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XPD">
                <xs:annotation>
                    <xs:documentation>Palladium</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XPF">
                <xs:annotation>
                    <xs:documentation>CFP Franc</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XPT">
                <xs:annotation>
                    <xs:documentation>Platinum</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="XTS">
                <xs:annotation>
                    <xs:documentation>Codes Specifically reserved for testing
                        purposes</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YER">
                <xs:annotation>
                    <xs:documentation>Yemeni Rial</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="YUM">
                <xs:annotation>
                    <xs:documentation>Yugoslavian Dinar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ZAR">
                <xs:annotation>
                    <xs:documentation>South Africa Rand</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ZMK">
                <xs:annotation>
                    <xs:documentation>Kwacha</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ZWD">
                <xs:annotation>
                    <xs:documentation>Zimbabwe Dollar</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:complexType name="CurrencyCommonData">
        <xs:annotation>
            <xs:documentation>A currency is a unit of exchange, facilitating the transfer of goods
                and/or services. It is coins and paper bills used as money.</xs:documentation>
        </xs:annotation>
        <xs:simpleContent>
            <xs:extension base="xs:int">
                <xs:attribute form="unqualified" name="CurrencyCode" type="CurrencyTypeCode">
                    <xs:annotation>
                        <xs:documentation> </xs:documentation>
                    </xs:annotation>
                </xs:attribute>
                <xs:attribute form="unqualified" name="Denomination" type="xs:string">
                    <xs:annotation>
                        <xs:documentation>a proper description of a currency amount, usually for
                            coins or banknotes</xs:documentation>
                    </xs:annotation>
                </xs:attribute>
            </xs:extension>
        </xs:simpleContent>
    </xs:complexType>
    <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="CATPropertiesGroup">
        <xs:choice>
            <xs:element form="qualified" name="AsyncMode" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the authorization methods will run asynchronously. If
                        false, the authorization methods will run  synchronously.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="AccountNumber" nillable="true" type="xs:string">
                <xs:annotation>
                    <xs:documentation>This property is initialized to NULL by the open method and is
                        updated when an authorization operation successfully
                        completes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="AdditionalSecurityInformation" nillable="true"
                type="ARTSBinary">
                <xs:annotation>
                    <xs:documentation>An application can send data to the CAT device by setting this
                        property before issuing an authorization method. Also, data obtained from
                        the CAT device and not stored in any other property as the result of an
                        authorization operation (for example, the account code for a loyalty
                        program) can be provided to an application by storing it in this property.
                        Since the data stored here is device specific, this should not be used for
                        any development that requires portability.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="ApprovalCode" nillable="true" type="xs:string">
                <xs:annotation>
                    <xs:documentation>This property is initialized to NULL by the open method and is
                        updated when an authorization operation successfully
                        completes.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="Balance" nillable="true" type="xs:long">
                <xs:annotation>
                    <xs:documentation>Electronic Money Device: The balance of Credit
                        Card.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapAdditionalSecurityInformation" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the AdditionalSecurityInformation property may be
                        utilized; otherwise it is false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapAuthorizeCompletion" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the authorizeCompletion method has been implemented;
                        otherwise it is false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapAuthorizePreSales" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the authorizePreSales method has been implemented;
                        otherwise it is false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapAuthorizeRefund" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the authorizeRefund method has been implemented;
                        otherwise it is false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapAuthorizeVoid" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the authorizeVoid method has been implemented;
                        otherwise it is false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapAuthorizeVoidPreSales" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the authorizeVoidPreSales method has been
                        implemented; otherwise it is false</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapCashDeposit" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>Electronic Money Device: Show the device has charged method by
                        cashDeposit method or not. If true, the cashDeposit method is implemented,
                        otherwise false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapCenterResultCode" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the CenterResultCode property has been implemented;
                        otherwise it is false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapCheckCard" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the checkCard method has been implemented; otherwise
                        it is false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapDailyLog" nillable="true" type="DailyLogTypeCode">
                <xs:annotation>
                    <xs:documentation>Shows the daily log ability of the device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapInstallments" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the item “Installments” which is stored in the
                        DailyLog property as the result of accessDailyLog will be provided;
                        otherwise it is false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapLockTerminal" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>Electronic Money Device: If true, the device can notify the
                        condition of the log by the LogStatus property, otherwise
                        false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapLogStatus" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>Electronic Money Device: If true, the device can notify the
                        condition of the log by the LogStatus property, otherwise
                        false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapPaymentDetail" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the PaymentDetail property has been implemented;
                        otherwise it is false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapTaxOthers" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the item “TaxOthers” which is stored in the DailyLog
                        property as the result of access DailyLog will be provided; otherwise it is
                        false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapTransactionNumber" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the TransactionNumber property has been implemented;
                        otherwise it is false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapTrainingMode" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, the TrainingMode property has been implemented;
                        otherwise it is false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CapUnlockTerminal" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>Electronic Money Device: If true, the device has a security
                        lock and the device can release the lock using the unlockTerminal method,
                        otherwise false.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CardCompanyID" nillable="true" type="xs:string">
                <xs:annotation>
                    <xs:documentation>This property is updated when an authorization operation
                        successfully completes. It shows credit card company ID.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="CenterResultCode" nillable="true" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Contains the code from the approval agency. Check the approval
                        agency for the actual codes to be stored.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="DailyLog" nillable="true" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Stores the result of the accessDailyLog
                        method.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="LogStatus" nillable="true" type="LogStatusTypeCode">
                <xs:annotation>
                    <xs:documentation>Electronic Money Device: This property shows the status of the
                        DealingLog of the device.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="PaymentCondition" nillable="true"
                type="PaymentConditionTypeCode">
                <xs:annotation>
                    <xs:documentation>Holds the payment condition of the most recent successful
                        authorization operation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="PaymentDetail" nillable="true" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Contains payment condition details as the result of an
                        authorization operation. Payment details vary depending on the value of
                        PaymentCondition.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="PaymentMedia" nillable="true"
                type="PaymentMediaTypeCode">
                <xs:annotation>
                    <xs:documentation>Holds the payment media type that the approval method should
                        approve.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="SequenceNumber" nillable="true" type="xs:int">
                <xs:annotation>
                    <xs:documentation>Stores a “sequence number” as the result of each method call.
                        This number needs to be checked by an application to see if it matches with
                        the argument sequenceNumber of the originating method.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="SettledAmount" nillable="true" type="xs:long">
                <xs:annotation>
                    <xs:documentation>Electronic Money Device: Setting real amount of the
                        settlement.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="SlipNumber" nillable="true" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Stores a “slip number” as the result of each authorization
                        operation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="TrainingMode" type="xs:boolean">
                <xs:annotation>
                    <xs:documentation>If true, each operation will be run in training mode;
                        otherwise each operation will be run in normal mode.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="TransactionNumber" nillable="true" type="xs:string">
                <xs:annotation>
                    <xs:documentation>Stores a “transaction number” as the result of each
                        authorization operation.</xs:documentation>
                </xs:annotation>
            </xs:element>
            <xs:element form="qualified" name="TransactionType" nillable="true"
                type="TransactionTypeCode">
                <xs:annotation>
                    <xs:documentation>Stores a “transaction type” as the result of each
                        authorization operation.</xs:documentation>
                </xs:annotation>
            </xs:element>
        </xs:choice>
    </xs:group>
    <xs:simpleType name="LogStatusTypeCode">
        <xs:union memberTypes="LogStatusTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="LogStatusTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="CAT_LOGSTATUS_OK"/>
            <xs:enumeration value="CAT_LOGSTATUS_NEARFULL"/>
            <xs:enumeration value="CAT_LOGSTATUS_FULL"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="DailyLogTypeCode">
        <xs:union memberTypes="DailyLogTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="DailyLogTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="CAT_DL_NONE"/>
            <xs:enumeration value="CAT_DL_REPORTING"/>
            <xs:enumeration value="CAT_DL_SETTLEMENT"/>
            <xs:enumeration value="CAT_DL_REPORTING_SETTLEMENT"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="PaymentConditionTypeCode">
        <xs:union memberTypes="PaymentConditionTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="PaymentConditionTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="CAT_PAYMENT_LUMP"/>
            <xs:enumeration value="CAT_PAYMENT_BONUS_1"/>
            <xs:enumeration value="CAT_PAYMENT_BONUS_2"/>
            <xs:enumeration value="CAT_PAYMENT_BONUS_3"/>
            <xs:enumeration value="CAT_PAYMENT_BONUS_4"/>
            <xs:enumeration value="CAT_PAYMENT_BONUS_5"/>
            <xs:enumeration value="CAT_PAYMENT_INSTALLMENT_1"/>
            <xs:enumeration value="CAT_PAYMENT_INSTALLMENT_2"/>
            <xs:enumeration value="CAT_PAYMENT_INSTALLMENT_3"/>
            <xs:enumeration value="CAT_PAYMENT_BONUS_COMBINATION_1"/>
            <xs:enumeration value="CAT_PAYMENT_BONUS_COMBINATION_2"/>
            <xs:enumeration value="CAT_PAYMENT_BONUS_COMBINATION_3"/>
            <xs:enumeration value="CAT_PAYMENT_BONUS_COMBINATION_4"/>
            <xs:enumeration value="CAT_PAYMENT_REVOLVING"/>
            <xs:enumeration value="CAT_PAYMENT_DEBIT"/>
            <xs:enumeration value="CAT_PAYMENT_ELECTRONIC_MONEY"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="PaymentMediaTypeCode">
        <xs:union memberTypes="PaymentMediaTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="PaymentMediaTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="CAT_MEDIA_UNSPECIFIED"/>
            <xs:enumeration value="CAT_MEDIA_CREDIT"/>
            <xs:enumeration value="CAT_MEDIA_DEBIT"/>
            <xs:enumeration value="CAT_MEDIA_ELECTRONIC_MONEY"/>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="TransactionTypeCode">
        <xs:union memberTypes="TransactionTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="TransactionTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="CAT_TRANSACTION_SALES"/>
            <xs:enumeration value="CAT_TRANSACTION_VOID"/>
            <xs:enumeration value="CAT_TRANSACTION_REFUND"/>
            <xs:enumeration value="CAT_TRANSACTION_COMPLETION"/>
            <xs:enumeration value="CAT_TRANSACTION_PRESALES"/>
            <xs:enumeration value="CAT_TRANSACTION_CHECKCARD"/>
            <xs:enumeration value="CAT_TRANSACTION_VOIDPRESALES"/>
            <xs:enumeration value="CAT_TRANSACTION_CASHDEPOSIT"/>
        </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="CATPropertiesType">
        <xs:choice maxOccurs="unbounded" minOccurs="0">
            <xs:group ref="XMLPOSCommonPropertiesGroup"/>
            <xs:group ref="CATPropertiesGroup"/>
        </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="CATEvent">
        <xs:complexType>
            <xs:sequence>
                <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 CAT 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 CAT error has been
                            detected and 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 there is a change in the
                            power status of the CAT 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:complexType>
    </xs:element>
    <xs:complexType name="DirectIOEventType">
        <xs:annotation>
            <xs:documentation>Provides Service information directly to the application. This event
                provides a means for a vendor-specific CAT 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="CATPropertiesType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="ErrorEventType">
        <xs:annotation>
            <xs:documentation>Notifies the application that a CAT error has been detected and
                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="ErrorExtendedTypeCode">
                <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="CATPropertiesType"/>
        </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="CATPropertiesType"/>
                </xs:sequence>
            </xs:extension>
        </xs:complexContent>
    </xs:complexType>
    <xs:complexType name="StatusUpdateEventType">
        <xs:annotation>
            <xs:documentation>Notifies the application that there is a change in the power status of
                the CAT device.</xs:documentation>
        </xs:annotation>
        <xs:complexContent>
            <xs:extension base="EventCommonData">
                <xs:sequence>
                    <xs:element name="Status" type="StatusTypeCode">
                        <xs:annotation>
                            <xs:documentation>Reports a change in the power state of the
                                CATdevice.</xs:documentation>
                        </xs:annotation>
                    </xs:element>
                    <xs:element minOccurs="0" name="Properties" type="CATPropertiesType"/>
                </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_OUTPUT">
                <xs:annotation>
                    <xs:documentation>An error occurred during asynchronous
                        action.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </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:annotation>
                    <xs:documentation>Retries the asynchronous processing. The error state is
                        exited.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ER_CLEAR">
                <xs:annotation>
                    <xs:documentation>Clear the asynchronous processing. The error state is
                        exited.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="ErrorExtendedTypeCode">
        <xs:union memberTypes="ErrorExtendedTypeCodeEnumeration TypeCodeExtension"/>
    </xs:simpleType>
    <xs:simpleType name="ErrorExtendedTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="ECAT_CENTERERROR">
                <xs:annotation>
                    <xs:documentation>An error was returned from the approval agency. The detail
                        error code is defined in CenterResultCode.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ECAT_COMMANDERROR">
                <xs:annotation>
                    <xs:documentation>The command sent to CAT is wrong. This error is never returned
                        so long as CAT control is working correctly.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ECAT_RESET">
                <xs:annotation>
                    <xs:documentation>CAT was stopped during processing by CAT reset key (stop key)
                        and so on.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ECAT_COMMUNICATIONERROR">
                <xs:annotation>
                    <xs:documentation>Communication error has occurred between the approval agency
                        and CAT.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ECAT_DAILYLOGOVERFLOW">
                <xs:annotation>
                    <xs:documentation>Daily log was too big to be stored. Keeping daily log has been
                        stopped and the value of DailyLog property is uncertain.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ECAT_DEFICIENT">
                <xs:annotation>
                    <xs:documentation>Electronic Money Device: Because the balance is insufficient,
                        it cannot close settlement.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="ECAT_OVERDEPOSIT">
                <xs:annotation>
                    <xs:documentation>Electronic Money Device: A failure will occur if a settlement
                        amount is attempted that is over the chargeable amount of the charge
                        account.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <xs:simpleType name="StatusTypeCode">
        <xs:union
            memberTypes="StatusTypeCodeEnumeration TypeCodeExtension StatusUpdateCommonDataTypeCodes"
        />
    </xs:simpleType>
    <xs:simpleType name="StatusTypeCodeEnumeration">
        <xs:restriction base="xs:NMTOKEN">
            <xs:enumeration value="CAT_LOGSTATUS_OK">
                <xs:annotation>
                    <xs:documentation>DealingLog is enough capacity.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CAT_LOGSTATUS_NEARFULL">
                <xs:annotation>
                    <xs:documentation>DealingLog is nearly full.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
            <xs:enumeration value="CAT_LOGSTATUS_FULL">
                <xs:annotation>
                    <xs:documentation>DealingLog is full.</xs:documentation>
                </xs:annotation>
            </xs:enumeration>
        </xs:restriction>
    </xs:simpleType>
    <!--WSDL Root Element Names-->
    <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>
